diff --git a/packages/NAudio.1.8.2/NAudio.1.8.2.nupkg b/packages/NAudio.1.8.2/NAudio.1.8.2.nupkg new file mode 100644 index 0000000..aa77052 Binary files /dev/null and b/packages/NAudio.1.8.2/NAudio.1.8.2.nupkg differ diff --git a/packages/NAudio.1.8.2/lib/NAudio.XML b/packages/NAudio.1.8.2/lib/NAudio.XML new file mode 100644 index 0000000..dcc9342 --- /dev/null +++ b/packages/NAudio.1.8.2/lib/NAudio.XML @@ -0,0 +1,22583 @@ + + + + NAudio + + + + + a-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts an a-law encoded byte to a 16 bit linear sample + + a-law encoded byte + Linear sample + + + + A-law encoder + + + + + Encodes a single 16 bit sample to a-law + + 16 bit PCM sample + a-law encoded byte + + + + SpanDSP - a series of DSP components for telephony + + g722_decode.c - The ITU G.722 codec, decode part. + + Written by Steve Underwood <steveu@coppice.org> + + Copyright (C) 2005 Steve Underwood + Ported to C# by Mark Heath 2011 + + Despite my general liking of the GPL, I place my own contributions + to this code in the public domain for the benefit of all mankind - + even the slimy ones who might try to proprietize my work and use it + to my detriment. + + Based in part on a single channel G.722 codec which is: + Copyright (c) CMU 1993 + Computer Science, Speech Group + Chengxiang Lu and Alex Hauptmann + + + + + hard limits to 16 bit samples + + + + + Decodes a buffer of G722 + + Codec state + Output buffer (to contain decompressed PCM samples) + + Number of bytes in input G722 data to decode + Number of samples written into output buffer + + + + Encodes a buffer of G722 + + Codec state + Output buffer (to contain encoded G722) + PCM 16 bit samples to encode + Number of samples in the input buffer to encode + Number of encoded bytes written into output buffer + + + + Stores state to be used between calls to Encode or Decode + + + + + ITU Test Mode + TRUE if the operating in the special ITU test mode, with the band split filters disabled. + + + + + TRUE if the G.722 data is packed + + + + + 8kHz Sampling + TRUE if encode from 8k samples/second + + + + + Bits Per Sample + 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. + + + + + Signal history for the QMF (x) + + + + + Band + + + + + In bit buffer + + + + + Number of bits in InBuffer + + + + + Out bit buffer + + + + + Number of bits in OutBuffer + + + + + Creates a new instance of G722 Codec State for a + new encode or decode session + + Bitrate (typically 64000) + Special options + + + + Band data for G722 Codec + + + + s + + + sp + + + sz + + + r + + + a + + + ap + + + p + + + d + + + b + + + bp + + + sg + + + nb + + + det + + + + G722 Flags + + + + + None + + + + + Using a G722 sample rate of 8000 + + + + + Packed + + + + + mu-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts a mu-law encoded byte to a 16 bit linear sample + + mu-law encoded byte + Linear sample + + + + mu-law encoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + Encodes a single 16 bit sample to mu-law + + 16 bit PCM sample + mu-law encoded byte + + + + Audio Capture Client + + + + + Gets a pointer to the buffer + + Pointer to the buffer + + + + Gets a pointer to the buffer + + Number of frames to read + Buffer flags + Pointer to the buffer + + + + Gets the size of the next packet + + + + + Release buffer + + Number of frames written + + + + Release the COM object + + + + + Windows CoreAudio AudioClient + + + + + Retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams. + Can be called before initialize + + + + + Initializes the Audio Client + + Share Mode + Stream Flags + Buffer Duration + Periodicity + Wave Format + Audio Session GUID (can be null) + + + + Retrieves the size (maximum capacity) of the audio buffer associated with the endpoint. (must initialize first) + + + + + Retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized. + + + + + Retrieves the number of frames of padding in the endpoint buffer (must initialize first) + + + + + Retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer. + (can be called before initialize) + + + + + Gets the minimum device period + (can be called before initialize) + + + + + Returns the AudioStreamVolume service for this AudioClient. + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Gets the AudioClockClient service + + + + + Gets the AudioRenderClient service + + + + + Gets the AudioCaptureClient service + + + + + Determines whether if the specified output format is supported + + The share mode. + The desired format. + True if the format is supported + + + + Determines if the specified output format is supported in shared mode + + Share Mode + Desired Format + Output The closest match format. + True if the format is supported + + + + Starts the audio stream + + + + + Stops the audio stream. + + + + + Set the Event Handle for buffer synchro. + + The Wait Handle to setup + + + + Resets the audio stream + Reset is a control method that the client calls to reset a stopped audio stream. + Resetting the stream flushes all pending data and resets the audio clock stream + position to 0. This method fails if it is called on a stream that is not stopped + + + + + Dispose + + + + + Audio Client Buffer Flags + + + + + None + + + + + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY + + + + + AUDCLNT_BUFFERFLAGS_SILENT + + + + + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR + + + + + The AudioClientProperties structure is used to set the parameters that describe the properties of the client's audio stream. + + http://msdn.microsoft.com/en-us/library/windows/desktop/hh968105(v=vs.85).aspx + + + + The size of the buffer for the audio stream. + + + + + Boolean value to indicate whether or not the audio stream is hardware-offloaded + + + + + An enumeration that is used to specify the category of the audio stream. + + + + + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + + AUDCLNT_SHAREMODE + + + + + AUDCLNT_SHAREMODE_SHARED, + + + + + AUDCLNT_SHAREMODE_EXCLUSIVE + + + + + AUDCLNT_STREAMFLAGS + + + + + None + + + + + AUDCLNT_STREAMFLAGS_CROSSPROCESS + + + + + AUDCLNT_STREAMFLAGS_LOOPBACK + + + + + AUDCLNT_STREAMFLAGS_EVENTCALLBACK + + + + + AUDCLNT_STREAMFLAGS_NOPERSIST + + + + + Defines values that describe the characteristics of an audio stream. + + + + + No stream options. + + + + + The audio stream is a 'raw' stream that bypasses all signal processing except for endpoint specific, always-on processing in the APO, driver, and hardware. + + + + + Audio Clock Client + + + + + Characteristics + + + + + Frequency + + + + + Get Position + + + + + Adjusted Position + + + + + Can Adjust Position + + + + + Dispose + + + + + Audio Endpoint Volume Channel + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + Volume Level + + + + + Volume Level Scalar + + + + + Audio Endpoint Volume Channels + + + + + Channel Count + + + + + Indexer - get a specific channel + + + + + Audio Endpoint Volume Notifiaction Delegate + + Audio Volume Notification Data + + + + Audio Endpoint Volume Step Information + + + + + Step + + + + + StepCount + + + + + Audio Endpoint Volume Volume Range + + + + + Minimum Decibels + + + + + Maximum Decibels + + + + + Increment Decibels + + + + + Audio Meter Information Channels + + + + + Metering Channel Count + + + + + Get Peak value + + Channel index + Peak value + + + + Audio Render Client + + + + + Gets a pointer to the buffer + + Number of frames requested + Pointer to the buffer + + + + Release buffer + + Number of frames written + Buffer flags + + + + Release the COM object + + + + + AudioSessionControl object for information + regarding an audio session + + + + + Constructor. + + + + + + Dispose + + + + + Finalizer + + + + + Audio meter information of the audio session. + + + + + Simple audio volume of the audio session (for volume and mute status). + + + + + The current state of the audio session. + + + + + The name of the audio session. + + + + + the path to the icon shown in the mixer. + + + + + The session identifier of the audio session. + + + + + The session instance identifier of the audio session. + + + + + The process identifier of the audio session. + + + + + Is the session a system sounds session. + + + + + the grouping param for an audio session grouping + + + + + + For chanigng the grouping param and supplying the context of said change + + + + + + + Registers an even client for callbacks + + + + + + Unregisters an event client from receiving callbacks + + + + + + AudioSessionEvents callback implementation + + + + + Constructor. + + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + AudioSessionManager + + Designed to manage audio sessions and in particuar the + SimpleAudioVolume interface to adjust a session volume + + + + + Session created delegate + + + + + Occurs when audio session has been added (for example run another program that use audio playback). + + + + + SimpleAudioVolume object + for adjusting the volume for the user session + + + + + AudioSessionControl object + for registring for callbacks and other session information + + + + + Refresh session of current device. + + + + + Returns list of sessions of current device. + + + + + Dispose. + + + + + Finalizer. + + + + + Specifies the category of an audio stream. + + + + + Other audio stream. + + + + + Media that will only stream when the app is in the foreground. + + + + + Media that can be streamed when the app is in the background. + + + + + Real-time communications, such as VOIP or chat. + + + + + Alert sounds. + + + + + Sound effects. + + + + + Game sound effects. + + + + + Background audio for games. + + + + + Manages the AudioStreamVolume for the . + + + + + Verify that the channel index is valid. + + + + + + + Return the current stream volumes for all channels + + An array of volume levels between 0.0 and 1.0 for each channel in the audio stream. + + + + Returns the current number of channels in this audio stream. + + + + + Return the current volume for the requested channel. + + The 0 based index into the channels. + The volume level for the channel between 0.0 and 1.0. + + + + Set the volume level for each channel of the audio stream. + + An array of volume levels (between 0.0 and 1.0) one for each channel. + + A volume level MUST be supplied for reach channel in the audio stream. + + + Thrown when does not contain elements. + + + + + Sets the volume level for one channel in the audio stream. + + The 0-based index into the channels to adjust the volume of. + The volume level between 0.0 and 1.0 for this channel of the audio stream. + + + + Dispose + + + + + Release/cleanup objects during Dispose/finalization. + + True if disposing and false if being finalized. + + + + Audio Volume Notification Data + + + + + Event Context + + + + + Muted + + + + + Guid that raised the event + + + + + Master Volume + + + + + Channels + + + + + Channel Volume + + + + + Audio Volume Notification Data + + + + + + + + + + Audio Client WASAPI Error Codes (HResult) + + + + + AUDCLNT_E_NOT_INITIALIZED + + + + + AUDCLNT_E_UNSUPPORTED_FORMAT + + + + + AUDCLNT_E_DEVICE_IN_USE + + + + + AUDCLNT_E_RESOURCES_INVALIDATED + + + + + Defined in AudioClient.h + + + + + Defined in AudioClient.h + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier for the audio session. + + Receives the session identifier. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier of the audio session instance. + + Receives the identifier of a particular instance. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the process identifier of the audio session. + + Receives the process identifier of the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Indicates whether the session is a system sounds session. + + An HRESULT code indicating whether the operation succeeded of failed. + + + + Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. + + A variable that enables or disables system auto-ducking. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Defines constants that indicate the current state of an audio session. + + + MSDN Reference: http://msdn.microsoft.com/en-us/library/dd370792.aspx + + + + + The audio session is inactive. + + + + + The audio session is active. + + + + + The audio session has expired. + + + + + Defines constants that indicate a reason for an audio session being disconnected. + + + MSDN Reference: Unknown + + + + + The user removed the audio endpoint device. + + + + + The Windows audio service has stopped. + + + + + The stream format changed for the device that the audio session is connected to. + + + + + The user logged off the WTS session that the audio session was running in. + + + + + The WTS session that the audio session was running in was disconnected. + + + + + The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + interface to receive session related events + + + + + notification of volume changes including muting of audio session + + the current volume + the current mute state, true muted, false otherwise + + + + notification of display name changed + + the current display name + + + + notification of icon path changed + + the current icon path + + + + notification of the client that the volume level of an audio channel in the session submix has changed + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + + + + notification of the client that the grouping parameter for the session has changed + + >The new grouping parameter for the session. + + + + notification of the client that the stream-activity state of the session has changed + + The new session state. + + + + notification of the client that the session has been disconnected + + The reason that the audio session was disconnected. + + + + Windows CoreAudio IAudioSessionManager interface + Defined in AudioPolicy.h + + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionNotification interface + Defined in AudioPolicy.h + + + + + + + session being added + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio ISimpleAudioVolume interface + Defined in AudioClient.h + + + + + Sets the master volume level for the audio session. + + The new volume level expressed as a normalized value between 0.0 and 1.0. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the client volume level for the audio session. + + Receives the volume level expressed as a normalized value between 0.0 and 1.0. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Sets the muting state for the audio session. + + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the current muting state for the audio session. + + Receives the muting state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + is defined in WTypes.h + + + + + Windows CoreAudio IAudioClient interface + Defined in AudioClient.h + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + + defined in MMDeviceAPI.h + + + + + IMMNotificationClient + + + + + Device State Changed + + + + + Device Added + + + + + Device Removed + + + + + Default Device Changed + + + + + Property Value Changed + + + + + + + is defined in propsys.h + + + + + implements IMMDeviceEnumerator + + + + + MMDevice STGM enumeration + + + + + from Propidl.h. + http://msdn.microsoft.com/en-us/library/aa380072(VS.85).aspx + contains a union so we have to do an explicit layout + + + + + Creates a new PropVariant containing a long value + + + + + Helper method to gets blob data + + + + + Interprets a blob as an array of structs + + + + + Gets the type of data in this PropVariant + + + + + Property value + + + + + allows freeing up memory, might turn this into a Dispose method? + + + + + Clears with a known pointer + + + + + Multimedia Device Collection + + + + + Device count + + + + + Get device by index + + Device index + Device at the specified index + + + + Get Enumerator + + Device enumerator + + + + Property Keys + + + + + PKEY_DeviceInterface_FriendlyName + + + + + PKEY_AudioEndpoint_FormFactor + + + + + PKEY_AudioEndpoint_ControlPanelPageProvider + + + + + PKEY_AudioEndpoint_Association + + + + + PKEY_AudioEndpoint_PhysicalSpeakers + + + + + PKEY_AudioEndpoint_GUID + + + + + PKEY_AudioEndpoint_Disable_SysFx + + + + + PKEY_AudioEndpoint_FullRangeSpeakers + + + + + PKEY_AudioEndpoint_Supports_EventDriven_Mode + + + + + PKEY_AudioEndpoint_JackSubType + + + + + PKEY_AudioEngine_DeviceFormat + + + + + PKEY_AudioEngine_OEMFormat + + + + + PKEY _Devie_FriendlyName + + + + + PKEY _Device_IconPath + + + + + Collection of sessions. + + + + + Returns session at index. + + + + + + + Number of current sessions. + + + + + Windows CoreAudio SimpleAudioVolume + + + + + Creates a new Audio endpoint volume + + ISimpleAudioVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Allows the user to adjust the volume from + 0.0 to 1.0 + + + + + Mute + + + + + Represents state of a capture device + + + + + Not recording + + + + + Beginning to record + + + + + Recording in progress + + + + + Requesting stop + + + + + Audio Capture using Wasapi + See http://msdn.microsoft.com/en-us/library/dd370800%28VS.85%29.aspx + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + Length of the audio buffer in milliseconds. A lower value means lower latency but increased CPU usage. + + + + Share Mode - set before calling StartRecording + + + + + Current Capturing State + + + + + Capturing wave format + + + + + Gets the default audio capture device + + The default audio capture device + + + + To allow overrides to specify different flags (e.g. loopback) + + + + + Start Capturing + + + + + Stop Capturing (requests a stop, wait for RecordingStopped event to know it has finished) + + + + + Dispose + + + + + Audio Endpoint Volume + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + On Volume Notification + + + + + Volume Range + + + + + Hardware Support + + + + + Step Information + + + + + Channels + + + + + Master Volume Level + + + + + Master Volume Level Scalar + + + + + Mute + + + + + Volume Step Up + + + + + Volume Step Down + + + + + Creates a new Audio endpoint volume + + IAudioEndpointVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Audio Meter Information + + + + + Peak Values + + + + + Hardware Support + + + + + Master Peak Value + + + + + Device State + + + + + DEVICE_STATE_ACTIVE + + + + + DEVICE_STATE_DISABLED + + + + + DEVICE_STATE_NOTPRESENT + + + + + DEVICE_STATE_UNPLUGGED + + + + + DEVICE_STATEMASK_ALL + + + + + Endpoint Hardware Support + + + + + Volume + + + + + Mute + + + + + Meter + + + + + The EDataFlow enumeration defines constants that indicate the direction + in which audio data flows between an audio endpoint device and an application + + + + + Audio rendering stream. + Audio data flows from the application to the audio endpoint device, which renders the stream. + + + + + Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, + to the application + + + + + Audio rendering or capture stream. Audio data can flow either from the application to the audio + endpoint device, or from the audio endpoint device to the application. + + + + + PROPERTYKEY is defined in wtypes.h + + + + + Format ID + + + + + Property ID + + + + + + + + + + + The ERole enumeration defines constants that indicate the role + that the system has assigned to an audio endpoint device + + + + + Games, system notification sounds, and voice commands. + + + + + Music, movies, narration, and live music recording + + + + + Voice communications (talking to another person). + + + + + MM Device + + + + + Audio Client + + + + + Audio Meter Information + + + + + Audio Endpoint Volume + + + + + AudioSessionManager instance + + + + + Properties + + + + + Friendly name for the endpoint + + + + + Friendly name of device + + + + + Icon path of device + + + + + Device ID + + + + + Data Flow + + + + + Device State + + + + + To string + + + + + Dispose + + + + + Finalizer + + + + + MM Device Enumerator + + + + + Creates a new MM Device Enumerator + + + + + Enumerate Audio Endpoints + + Desired DataFlow + State Mask + Device Collection + + + + Get Default Endpoint + + Data Flow + Role + Device + + + + Check to see if a default audio end point exists without needing an exception. + + Data Flow + Role + True if one exists, and false if one does not exist. + + + + Get device by ID + + Device ID + Device + + + + Registers a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + Unregisters a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + + + + Called to dispose/finalize contained objects. + + True if disposing, false if called from a finalizer. + + + + Property Store class, only supports reading properties at the moment. + + + + + Property Count + + + + + Gets property by index + + Property index + The property + + + + Contains property guid + + Looks for a specific key + True if found + + + + Indexer by guid + + Property Key + Property or null if not found + + + + Gets property key at sepecified index + + Index + Property key + + + + Gets property value at specified index + + Index + Property value + + + + Creates a new property store + + IPropertyStore COM interface + + + + Property Store Property + + + + + Property Key + + + + + Property Value + + + + + Envelope generator (ADSR) + + + + + Envelope State + + + + + Idle + + + + + Attack + + + + + Decay + + + + + Sustain + + + + + Release + + + + + Creates and Initializes an Envelope Generator + + + + + Attack Rate (seconds * SamplesPerSecond) + + + + + Decay Rate (seconds * SamplesPerSecond) + + + + + Release Rate (seconds * SamplesPerSecond) + + + + + Sustain Level (1 = 100%) + + + + + Sets the attack curve + + + + + Sets the decay release curve + + + + + Read the next volume multiplier from the envelope generator + + A volume multiplier + + + + Trigger the gate + + If true, enter attack phase, if false enter release phase (unless already idle) + + + + Current envelope state + + + + + Reset to idle state + + + + + Get the current output level + + + + + Fully managed resampler, based on Cockos WDL Resampler + + + + + Creates a new Resampler + + + + + sets the mode + if sinc set, it overrides interp or filtercnt + + + + + Sets the filter parameters + used for filtercnt>0 but not sinc + + + + + Set feed mode + + if true, that means the first parameter to ResamplePrepare will specify however much input you have, not how much you want + + + + Reset + + + + + Prepare + note that it is safe to call ResamplePrepare without calling ResampleOut (the next call of ResamplePrepare will function as normal) + nb inbuffer was WDL_ResampleSample **, returning a place to put the in buffer, so we return a buffer and offset + + req_samples is output samples desired if !wantInputDriven, or if wantInputDriven is input samples that we have + + + + returns number of samples desired (put these into *inbuffer) + + + + SMB Pitch Shifter + + + + + Pitch Shift + + + + + Pitch Shift + + + + + Short Time Fourier Transform + + + + + BiQuad filter + + + + + Passes a single sample through the filter + + Input sample + Output sample + + + + Set this up as a low pass filter + + Sample Rate + Cut-off Frequency + Bandwidth + + + + Set this up as a peaking EQ + + Sample Rate + Centre Frequency + Bandwidth (Q) + Gain in decibels + + + + Set this as a high pass filter + + + + + Create a low pass filter + + + + + Create a High pass filter + + + + + Create a bandpass filter with constant skirt gain + + + + + Create a bandpass filter with constant peak gain + + + + + Creates a notch filter + + + + + Creaes an all pass filter + + + + + Create a Peaking EQ + + + + + H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) + + + + a "shelf slope" parameter (for shelving EQ only). + When S = 1, the shelf slope is as steep as it can be and remain monotonically + increasing or decreasing gain with frequency. The shelf slope, in dB/octave, + remains proportional to S for all other values for a fixed f0/Fs and dBgain. + Gain in decibels + + + + H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) + + + + + + + + + + Type to represent complex number + + + + + Real Part + + + + + Imaginary Part + + + + + Summary description for FastFourierTransform. + + + + + This computes an in-place complex-to-complex FFT + x and y are the real and imaginary arrays of 2^m points. + + + + + Applies a Hamming Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hamming window + + + + Applies a Hann Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hann window + + + + Applies a Blackman-Harris Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Blackmann-Harris window + + + + Summary description for ImpulseResponseConvolution. + + + + + A very simple mono convolution algorithm + + + This will be very slow + + + + + This is actually a downwards normalize for data that will clip + + + + + http://tech.ebu.ch/docs/tech/tech3306-2009.pdf + + + + + WaveFormat + + + + + Data Chunk Position + + + + + Data Chunk Length + + + + + Riff Chunks + + + + + Represents an entry in a Cakewalk drum map + + + + + User customisable note name + + + + + Input MIDI note number + + + + + Output MIDI note number + + + + + Output port + + + + + Output MIDI Channel + + + + + Velocity adjustment + + + + + Velocity scaling - in percent + + + + + Describes this drum map entry + + + + + Represents a Cakewalk Drum Map file (.map) + + + + + Parses a Cakewalk Drum Map file + + Path of the .map file + + + + The drum mappings in this drum map + + + + + Describes this drum map + + + + + MP3 Frame decompressor using the Windows Media MP3 Decoder DMO object + + + + + Initializes a new instance of the DMO MP3 Frame decompressor + + + + + + Converted PCM WaveFormat + + + + + Decompress a single frame of MP3 + + + + + Alerts us that a reposition has occured so the MP3 decoder needs to reset its state + + + + + Dispose of this obejct and clean up resources + + + + + Audio Subtype GUIDs + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372553%28v=vs.85%29.aspx + + + + + Advanced Audio Coding (AAC). + + + + + Not used + + + + + Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). + + + + + Encrypted audio data used with secure audio path. + + + + + Digital Theater Systems (DTS) audio. + + + + + Uncompressed IEEE floating-point audio. + + + + + MPEG Audio Layer-3 (MP3). + + + + + MPEG-1 audio payload. + + + + + Windows Media Audio 9 Voice codec. + + + + + Uncompressed PCM audio. + + + + + Windows Media Audio 9 Professional codec over S/PDIF. + + + + + Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. + + + + + Dolby Digital (AC-3). + + + + + MPEG-4 and AAC Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + μ-law coding + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Adaptive delta pulse code modulation (ADPCM) + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Dolby Digital Plus formatted for HDMI output. + http://msdn.microsoft.com/en-us/library/windows/hardware/ff538392(v=vs.85).aspx + Reference : internet + + + + + MSAudio1 - unknown meaning + Reference : wmcodecdsp.h + + + + + IMA ADPCM ACM Wrapper + + + + + WMSP2 - unknown meaning + Reference: wmsdkidl.h + + + + + Creates an instance of either the sink writer or the source reader. + + + + + Creates an instance of the sink writer or source reader, given a URL. + + + + + Creates an instance of the sink writer or source reader, given an IUnknown pointer. + + + + + CLSID_MFReadWriteClassFactory + + + + + Media Foundation Errors + + + + RANGES + 14000 - 14999 = General Media Foundation errors + 15000 - 15999 = ASF parsing errors + 16000 - 16999 = Media Source errors + 17000 - 17999 = MEDIAFOUNDATION Network Error Events + 18000 - 18999 = MEDIAFOUNDATION WMContainer Error Events + 19000 - 19999 = MEDIAFOUNDATION Media Sink Error Events + 20000 - 20999 = Renderer errors + 21000 - 21999 = Topology Errors + 25000 - 25999 = Timeline Errors + 26000 - 26999 = Unused + 28000 - 28999 = Transform errors + 29000 - 29999 = Content Protection errors + 40000 - 40999 = Clock errors + 41000 - 41999 = MF Quality Management Errors + 42000 - 42999 = MF Transcode API Errors + + + + + MessageId: MF_E_PLATFORM_NOT_INITIALIZED + + MessageText: + + Platform not initialized. Please call MFStartup().%0 + + + + + MessageId: MF_E_BUFFERTOOSMALL + + MessageText: + + The buffer was too small to carry out the requested action.%0 + + + + + MessageId: MF_E_INVALIDREQUEST + + MessageText: + + The request is invalid in the current state.%0 + + + + + MessageId: MF_E_INVALIDSTREAMNUMBER + + MessageText: + + The stream number provided was invalid.%0 + + + + + MessageId: MF_E_INVALIDMEDIATYPE + + MessageText: + + The data specified for the media type is invalid, inconsistent, or not supported by this object.%0 + + + + + MessageId: MF_E_NOTACCEPTING + + MessageText: + + The callee is currently not accepting further input.%0 + + + + + MessageId: MF_E_NOT_INITIALIZED + + MessageText: + + This object needs to be initialized before the requested operation can be carried out.%0 + + + + + MessageId: MF_E_UNSUPPORTED_REPRESENTATION + + MessageText: + + The requested representation is not supported by this object.%0 + + + + + MessageId: MF_E_NO_MORE_TYPES + + MessageText: + + An object ran out of media types to suggest therefore the requested chain of streaming objects cannot be completed.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SERVICE + + MessageText: + + The object does not support the specified service.%0 + + + + + MessageId: MF_E_UNEXPECTED + + MessageText: + + An unexpected error has occurred in the operation requested.%0 + + + + + MessageId: MF_E_INVALIDNAME + + MessageText: + + Invalid name.%0 + + + + + MessageId: MF_E_INVALIDTYPE + + MessageText: + + Invalid type.%0 + + + + + MessageId: MF_E_INVALID_FILE_FORMAT + + MessageText: + + The file does not conform to the relevant file format specification. + + + + + MessageId: MF_E_INVALIDINDEX + + MessageText: + + Invalid index.%0 + + + + + MessageId: MF_E_INVALID_TIMESTAMP + + MessageText: + + An invalid timestamp was given.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SCHEME + + MessageText: + + The scheme of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_BYTESTREAM_TYPE + + MessageText: + + The byte stream type of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_TIME_FORMAT + + MessageText: + + The given time format is unsupported.%0 + + + + + MessageId: MF_E_NO_SAMPLE_TIMESTAMP + + MessageText: + + The Media Sample does not have a timestamp.%0 + + + + + MessageId: MF_E_NO_SAMPLE_DURATION + + MessageText: + + The Media Sample does not have a duration.%0 + + + + + MessageId: MF_E_INVALID_STREAM_DATA + + MessageText: + + The request failed because the data in the stream is corrupt.%0\n. + + + + + MessageId: MF_E_RT_UNAVAILABLE + + MessageText: + + Real time services are not available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE + + MessageText: + + The specified rate is not supported.%0 + + + + + MessageId: MF_E_THINNING_UNSUPPORTED + + MessageText: + + This component does not support stream-thinning.%0 + + + + + MessageId: MF_E_REVERSE_UNSUPPORTED + + MessageText: + + The call failed because no reverse playback rates are available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE_TRANSITION + + MessageText: + + The requested rate transition cannot occur in the current state.%0 + + + + + MessageId: MF_E_RATE_CHANGE_PREEMPTED + + MessageText: + + The requested rate change has been pre-empted and will not occur.%0 + + + + + MessageId: MF_E_NOT_FOUND + + MessageText: + + The specified object or value does not exist.%0 + + + + + MessageId: MF_E_NOT_AVAILABLE + + MessageText: + + The requested value is not available.%0 + + + + + MessageId: MF_E_NO_CLOCK + + MessageText: + + The specified operation requires a clock and no clock is available.%0 + + + + + MessageId: MF_S_MULTIPLE_BEGIN + + MessageText: + + This callback and state had already been passed in to this event generator earlier.%0 + + + + + MessageId: MF_E_MULTIPLE_BEGIN + + MessageText: + + This callback has already been passed in to this event generator.%0 + + + + + MessageId: MF_E_MULTIPLE_SUBSCRIBERS + + MessageText: + + Some component is already listening to events on this event generator.%0 + + + + + MessageId: MF_E_TIMER_ORPHANED + + MessageText: + + This timer was orphaned before its callback time arrived.%0 + + + + + MessageId: MF_E_STATE_TRANSITION_PENDING + + MessageText: + + A state transition is already pending.%0 + + + + + MessageId: MF_E_UNSUPPORTED_STATE_TRANSITION + + MessageText: + + The requested state transition is unsupported.%0 + + + + + MessageId: MF_E_UNRECOVERABLE_ERROR_OCCURRED + + MessageText: + + An unrecoverable error has occurred.%0 + + + + + MessageId: MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS + + MessageText: + + The provided sample has too many buffers.%0 + + + + + MessageId: MF_E_SAMPLE_NOT_WRITABLE + + MessageText: + + The provided sample is not writable.%0 + + + + + MessageId: MF_E_INVALID_KEY + + MessageText: + + The specified key is not valid. + + + + + MessageId: MF_E_BAD_STARTUP_VERSION + + MessageText: + + You are calling MFStartup with the wrong MF_VERSION. Mismatched bits? + + + + + MessageId: MF_E_UNSUPPORTED_CAPTION + + MessageText: + + The caption of the given URL is unsupported.%0 + + + + + MessageId: MF_E_INVALID_POSITION + + MessageText: + + The operation on the current offset is not permitted.%0 + + + + + MessageId: MF_E_ATTRIBUTENOTFOUND + + MessageText: + + The requested attribute was not found.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_ALLOWED + + MessageText: + + The specified property type is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_SUPPORTED + + MessageText: + + The specified property type is not supported.%0 + + + + + MessageId: MF_E_PROPERTY_EMPTY + + MessageText: + + The specified property is empty.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_EMPTY + + MessageText: + + The specified property is not empty.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_NOT_ALLOWED + + MessageText: + + The vector property specified is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_REQUIRED + + MessageText: + + A vector property is required in this context.%0 + + + + + MessageId: MF_E_OPERATION_CANCELLED + + MessageText: + + The operation is cancelled.%0 + + + + + MessageId: MF_E_BYTESTREAM_NOT_SEEKABLE + + MessageText: + + The provided bytestream was expected to be seekable and it is not.%0 + + + + + MessageId: MF_E_DISABLED_IN_SAFEMODE + + MessageText: + + The Media Foundation platform is disabled when the system is running in Safe Mode.%0 + + + + + MessageId: MF_E_CANNOT_PARSE_BYTESTREAM + + MessageText: + + The Media Source could not parse the byte stream.%0 + + + + + MessageId: MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS + + MessageText: + + Mutually exclusive flags have been specified to source resolver. This flag combination is invalid.%0 + + + + + MessageId: MF_E_MEDIAPROC_WRONGSTATE + + MessageText: + + MediaProc is in the wrong state%0 + + + + + MessageId: MF_E_RT_THROUGHPUT_NOT_AVAILABLE + + MessageText: + + Real time I/O service can not provide requested throughput.%0 + + + + + MessageId: MF_E_RT_TOO_MANY_CLASSES + + MessageText: + + The workqueue cannot be registered with more classes.%0 + + + + + MessageId: MF_E_RT_WOULDBLOCK + + MessageText: + + This operation cannot succeed because another thread owns this object.%0 + + + + + MessageId: MF_E_NO_BITPUMP + + MessageText: + + Internal. Bitpump not found.%0 + + + + + MessageId: MF_E_RT_OUTOFMEMORY + + MessageText: + + No more RT memory available.%0 + + + + + MessageId: MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED + + MessageText: + + An MMCSS class has not been set for this work queue.%0 + + + + + MessageId: MF_E_INSUFFICIENT_BUFFER + + MessageText: + + Insufficient memory for response.%0 + + + + + MessageId: MF_E_CANNOT_CREATE_SINK + + MessageText: + + Activate failed to create mediasink. Call OutputNode::GetUINT32(MF_TOPONODE_MAJORTYPE) for more information. %0 + + + + + MessageId: MF_E_BYTESTREAM_UNKNOWN_LENGTH + + MessageText: + + The length of the provided bytestream is unknown.%0 + + + + + MessageId: MF_E_SESSION_PAUSEWHILESTOPPED + + MessageText: + + The media session cannot pause from a stopped state.%0 + + + + + MessageId: MF_S_ACTIVATE_REPLACED + + MessageText: + + The activate could not be created in the remote process for some reason it was replaced with empty one.%0 + + + + + MessageId: MF_E_FORMAT_CHANGE_NOT_SUPPORTED + + MessageText: + + The data specified for the media type is supported, but would require a format change, which is not supported by this object.%0 + + + + + MessageId: MF_E_INVALID_WORKQUEUE + + MessageText: + + The operation failed because an invalid combination of workqueue ID and flags was specified.%0 + + + + + MessageId: MF_E_DRM_UNSUPPORTED + + MessageText: + + No DRM support is available.%0 + + + + + MessageId: MF_E_UNAUTHORIZED + + MessageText: + + This operation is not authorized.%0 + + + + + MessageId: MF_E_OUT_OF_RANGE + + MessageText: + + The value is not in the specified or valid range.%0 + + + + + MessageId: MF_E_INVALID_CODEC_MERIT + + MessageText: + + The registered codec merit is not valid.%0 + + + + + MessageId: MF_E_HW_MFT_FAILED_START_STREAMING + + MessageText: + + Hardware MFT failed to start streaming due to lack of hardware resources.%0 + + + + + MessageId: MF_S_ASF_PARSEINPROGRESS + + MessageText: + + Parsing is still in progress and is not yet complete.%0 + + + + + MessageId: MF_E_ASF_PARSINGINCOMPLETE + + MessageText: + + Not enough data have been parsed to carry out the requested action.%0 + + + + + MessageId: MF_E_ASF_MISSINGDATA + + MessageText: + + There is a gap in the ASF data provided.%0 + + + + + MessageId: MF_E_ASF_INVALIDDATA + + MessageText: + + The data provided are not valid ASF.%0 + + + + + MessageId: MF_E_ASF_OPAQUEPACKET + + MessageText: + + The packet is opaque, so the requested information cannot be returned.%0 + + + + + MessageId: MF_E_ASF_NOINDEX + + MessageText: + + The requested operation failed since there is no appropriate ASF index.%0 + + + + + MessageId: MF_E_ASF_OUTOFRANGE + + MessageText: + + The value supplied is out of range for this operation.%0 + + + + + MessageId: MF_E_ASF_INDEXNOTLOADED + + MessageText: + + The index entry requested needs to be loaded before it can be available.%0 + + + + + MessageId: MF_E_ASF_TOO_MANY_PAYLOADS + + MessageText: + + The packet has reached the maximum number of payloads.%0 + + + + + MessageId: MF_E_ASF_UNSUPPORTED_STREAM_TYPE + + MessageText: + + Stream type is not supported.%0 + + + + + MessageId: MF_E_ASF_DROPPED_PACKET + + MessageText: + + One or more ASF packets were dropped.%0 + + + + + MessageId: MF_E_NO_EVENTS_AVAILABLE + + MessageText: + + There are no events available in the queue.%0 + + + + + MessageId: MF_E_INVALID_STATE_TRANSITION + + MessageText: + + A media source cannot go from the stopped state to the paused state.%0 + + + + + MessageId: MF_E_END_OF_STREAM + + MessageText: + + The media stream cannot process any more samples because there are no more samples in the stream.%0 + + + + + MessageId: MF_E_SHUTDOWN + + MessageText: + + The request is invalid because Shutdown() has been called.%0 + + + + + MessageId: MF_E_MP3_NOTFOUND + + MessageText: + + The MP3 object was not found.%0 + + + + + MessageId: MF_E_MP3_OUTOFDATA + + MessageText: + + The MP3 parser ran out of data before finding the MP3 object.%0 + + + + + MessageId: MF_E_MP3_NOTMP3 + + MessageText: + + The file is not really a MP3 file.%0 + + + + + MessageId: MF_E_MP3_NOTSUPPORTED + + MessageText: + + The MP3 file is not supported.%0 + + + + + MessageId: MF_E_NO_DURATION + + MessageText: + + The Media stream has no duration.%0 + + + + + MessageId: MF_E_INVALID_FORMAT + + MessageText: + + The Media format is recognized but is invalid.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_FOUND + + MessageText: + + The property requested was not found.%0 + + + + + MessageId: MF_E_PROPERTY_READ_ONLY + + MessageText: + + The property is read only.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_ALLOWED + + MessageText: + + The specified property is not allowed in this context.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NOT_STARTED + + MessageText: + + The media source is not started.%0 + + + + + MessageId: MF_E_UNSUPPORTED_FORMAT + + MessageText: + + The Media format is recognized but not supported.%0 + + + + + MessageId: MF_E_MP3_BAD_CRC + + MessageText: + + The MPEG frame has bad CRC.%0 + + + + + MessageId: MF_E_NOT_PROTECTED + + MessageText: + + The file is not protected.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_WRONGSTATE + + MessageText: + + The media source is in the wrong state%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED + + MessageText: + + No streams are selected in source presentation descriptor.%0 + + + + + MessageId: MF_E_CANNOT_FIND_KEYFRAME_SAMPLE + + MessageText: + + No key frame sample was found.%0 + + + + + MessageId: MF_E_NETWORK_RESOURCE_FAILURE + + MessageText: + + An attempt to acquire a network resource failed.%0 + + + + + MessageId: MF_E_NET_WRITE + + MessageText: + + Error writing to the network.%0 + + + + + MessageId: MF_E_NET_READ + + MessageText: + + Error reading from the network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_NETWORK + + MessageText: + + Internal. Entry cannot complete operation without network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_ASYNC + + MessageText: + + Internal. Async op is required.%0 + + + + + MessageId: MF_E_NET_BWLEVEL_NOT_SUPPORTED + + MessageText: + + Internal. Bandwidth levels are not supported.%0 + + + + + MessageId: MF_E_NET_STREAMGROUPS_NOT_SUPPORTED + + MessageText: + + Internal. Stream groups are not supported.%0 + + + + + MessageId: MF_E_NET_MANUALSS_NOT_SUPPORTED + + MessageText: + + Manual stream selection is not supported.%0 + + + + + MessageId: MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR + + MessageText: + + Invalid presentation descriptor.%0 + + + + + MessageId: MF_E_NET_CACHESTREAM_NOT_FOUND + + MessageText: + + Cannot find cache stream.%0 + + + + + MessageId: MF_I_MANUAL_PROXY + + MessageText: + + The proxy setting is manual.%0 + + + + duplicate removed + MessageId=17011 Severity=Informational Facility=MEDIAFOUNDATION SymbolicName=MF_E_INVALID_REQUEST + Language=English + The request is invalid in the current state.%0 + . + + MessageId: MF_E_NET_REQUIRE_INPUT + + MessageText: + + Internal. Entry cannot complete operation without input.%0 + + + + + MessageId: MF_E_NET_REDIRECT + + MessageText: + + The client redirected to another server.%0 + + + + + MessageId: MF_E_NET_REDIRECT_TO_PROXY + + MessageText: + + The client is redirected to a proxy server.%0 + + + + + MessageId: MF_E_NET_TOO_MANY_REDIRECTS + + MessageText: + + The client reached maximum redirection limit.%0 + + + + + MessageId: MF_E_NET_TIMEOUT + + MessageText: + + The server, a computer set up to offer multimedia content to other computers, could not handle your request for multimedia content in a timely manner. Please try again later.%0 + + + + + MessageId: MF_E_NET_CLIENT_CLOSE + + MessageText: + + The control socket is closed by the client.%0 + + + + + MessageId: MF_E_NET_BAD_CONTROL_DATA + + MessageText: + + The server received invalid data from the client on the control connection.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_SERVER + + MessageText: + + The server is not a compatible streaming media server.%0 + + + + + MessageId: MF_E_NET_UNSAFE_URL + + MessageText: + + Url.%0 + + + + + MessageId: MF_E_NET_CACHE_NO_DATA + + MessageText: + + Data is not available.%0 + + + + + MessageId: MF_E_NET_EOL + + MessageText: + + End of line.%0 + + + + + MessageId: MF_E_NET_BAD_REQUEST + + MessageText: + + The request could not be understood by the server.%0 + + + + + MessageId: MF_E_NET_INTERNAL_SERVER_ERROR + + MessageText: + + The server encountered an unexpected condition which prevented it from fulfilling the request.%0 + + + + + MessageId: MF_E_NET_SESSION_NOT_FOUND + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_NET_NOCONNECTION + + MessageText: + + There is no connection established with the Windows Media server. The operation failed.%0 + + + + + MessageId: MF_E_NET_CONNECTION_FAILURE + + MessageText: + + The network connection has failed.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_PUSHSERVER + + MessageText: + + The Server service that received the HTTP push request is not a compatible version of Windows Media Services (WMS). This error may indicate the push request was received by IIS instead of WMS. Ensure WMS is started and has the HTTP Server control protocol properly enabled and try again.%0 + + + + + MessageId: MF_E_NET_SERVER_ACCESSDENIED + + MessageText: + + The Windows Media server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_PROXY_ACCESSDENIED + + MessageText: + + The proxy server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_CANNOTCONNECT + + MessageText: + + Unable to establish a connection to the server.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_TEMPLATE + + MessageText: + + The specified push template is invalid.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_PUBLISHING_POINT + + MessageText: + + The specified push publishing point is invalid.%0 + + + + + MessageId: MF_E_NET_BUSY + + MessageText: + + The requested resource is in use.%0 + + + + + MessageId: MF_E_NET_RESOURCE_GONE + + MessageText: + + The Publishing Point or file on the Windows Media Server is no longer available.%0 + + + + + MessageId: MF_E_NET_ERROR_FROM_PROXY + + MessageText: + + The proxy experienced an error while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_PROXY_TIMEOUT + + MessageText: + + The proxy did not receive a timely response while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_SERVER_UNAVAILABLE + + MessageText: + + The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.%0 + + + + + MessageId: MF_E_NET_TOO_MUCH_DATA + + MessageText: + + The encoding process was unable to keep up with the amount of supplied data.%0 + + + + + MessageId: MF_E_NET_SESSION_INVALID + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_OFFLINE_MODE + + MessageText: + + The requested URL is not available in offline mode.%0 + + + + + MessageId: MF_E_NET_UDP_BLOCKED + + MessageText: + + A device in the network is blocking UDP traffic.%0 + + + + + MessageId: MF_E_NET_UNSUPPORTED_CONFIGURATION + + MessageText: + + The specified configuration value is not supported.%0 + + + + + MessageId: MF_E_NET_PROTOCOL_DISABLED + + MessageText: + + The networking protocol is disabled.%0 + + + + + MessageId: MF_E_ALREADY_INITIALIZED + + MessageText: + + This object has already been initialized and cannot be re-initialized at this time.%0 + + + + + MessageId: MF_E_BANDWIDTH_OVERRUN + + MessageText: + + The amount of data passed in exceeds the given bitrate and buffer window.%0 + + + + + MessageId: MF_E_LATE_SAMPLE + + MessageText: + + The sample was passed in too late to be correctly processed.%0 + + + + + MessageId: MF_E_FLUSH_NEEDED + + MessageText: + + The requested action cannot be carried out until the object is flushed and the queue is emptied.%0 + + + + + MessageId: MF_E_INVALID_PROFILE + + MessageText: + + The profile is invalid.%0 + + + + + MessageId: MF_E_INDEX_NOT_COMMITTED + + MessageText: + + The index that is being generated needs to be committed before the requested action can be carried out.%0 + + + + + MessageId: MF_E_NO_INDEX + + MessageText: + + The index that is necessary for the requested action is not found.%0 + + + + + MessageId: MF_E_CANNOT_INDEX_IN_PLACE + + MessageText: + + The requested index cannot be added in-place to the specified ASF content.%0 + + + + + MessageId: MF_E_MISSING_ASF_LEAKYBUCKET + + MessageText: + + The ASF leaky bucket parameters must be specified in order to carry out this request.%0 + + + + + MessageId: MF_E_INVALID_ASF_STREAMID + + MessageText: + + The stream id is invalid. The valid range for ASF stream id is from 1 to 127.%0 + + + + + MessageId: MF_E_STREAMSINK_REMOVED + + MessageText: + + The requested Stream Sink has been removed and cannot be used.%0 + + + + + MessageId: MF_E_STREAMSINKS_OUT_OF_SYNC + + MessageText: + + The various Stream Sinks in this Media Sink are too far out of sync for the requested action to take place.%0 + + + + + MessageId: MF_E_STREAMSINKS_FIXED + + MessageText: + + Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.%0 + + + + + MessageId: MF_E_STREAMSINK_EXISTS + + MessageText: + + The given Stream Sink already exists.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_CANCELED + + MessageText: + + Sample allocations have been canceled.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_EMPTY + + MessageText: + + The sample allocator is currently empty, due to outstanding requests.%0 + + + + + MessageId: MF_E_SINK_ALREADYSTOPPED + + MessageText: + + When we try to sopt a stream sink, it is already stopped %0 + + + + + MessageId: MF_E_ASF_FILESINK_BITRATE_UNKNOWN + + MessageText: + + The ASF file sink could not reserve AVIO because the bitrate is unknown.%0 + + + + + MessageId: MF_E_SINK_NO_STREAMS + + MessageText: + + No streams are selected in sink presentation descriptor.%0 + + + + + MessageId: MF_S_SINK_NOT_FINALIZED + + MessageText: + + The sink has not been finalized before shut down. This may cause sink generate a corrupted content.%0 + + + + + MessageId: MF_E_METADATA_TOO_LONG + + MessageText: + + A metadata item was too long to write to the output container.%0 + + + + + MessageId: MF_E_SINK_NO_SAMPLES_PROCESSED + + MessageText: + + The operation failed because no samples were processed by the sink.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_PROCAMP_HW + + MessageText: + + There is no available procamp hardware with which to perform color correction.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_DEINTERLACE_HW + + MessageText: + + There is no available deinterlacing hardware with which to deinterlace the video stream.%0 + + + + + MessageId: MF_E_VIDEO_REN_COPYPROT_FAILED + + MessageText: + + A video stream requires copy protection to be enabled, but there was a failure in attempting to enable copy protection.%0 + + + + + MessageId: MF_E_VIDEO_REN_SURFACE_NOT_SHARED + + MessageText: + + A component is attempting to access a surface for sharing that is not shared.%0 + + + + + MessageId: MF_E_VIDEO_DEVICE_LOCKED + + MessageText: + + A component is attempting to access a shared device that is already locked by another component.%0 + + + + + MessageId: MF_E_NEW_VIDEO_DEVICE + + MessageText: + + The device is no longer available. The handle should be closed and a new one opened.%0 + + + + + MessageId: MF_E_NO_VIDEO_SAMPLE_AVAILABLE + + MessageText: + + A video sample is not currently queued on a stream that is required for mixing.%0 + + + + + MessageId: MF_E_NO_AUDIO_PLAYBACK_DEVICE + + MessageText: + + No audio playback device was found.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE + + MessageText: + + The requested audio playback device is currently in use.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED + + MessageText: + + The audio playback device is no longer present.%0 + + + + + MessageId: MF_E_AUDIO_SERVICE_NOT_RUNNING + + MessageText: + + The audio service is not running.%0 + + + + + MessageId: MF_E_TOPO_INVALID_OPTIONAL_NODE + + MessageText: + + The topology contains an invalid optional node. Possible reasons are incorrect number of outputs and inputs or optional node is at the beginning or end of a segment. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_FIND_DECRYPTOR + + MessageText: + + No suitable transform was found to decrypt the content. %0 + + + + + MessageId: MF_E_TOPO_CODEC_NOT_FOUND + + MessageText: + + No suitable transform was found to encode or decode the content. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_CONNECT + + MessageText: + + Unable to find a way to connect nodes%0 + + + + + MessageId: MF_E_TOPO_UNSUPPORTED + + MessageText: + + Unsupported operations in topoloader%0 + + + + + MessageId: MF_E_TOPO_INVALID_TIME_ATTRIBUTES + + MessageText: + + The topology or its nodes contain incorrectly set time attributes%0 + + + + + MessageId: MF_E_TOPO_LOOPS_IN_TOPOLOGY + + MessageText: + + The topology contains loops, which are unsupported in media foundation topologies%0 + + + + + MessageId: MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_STREAM_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a stream descriptor%0 + + + + + MessageId: MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED + + MessageText: + + A stream descriptor was set on a source stream node but it was not selected on the presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_SOURCE + + MessageText: + + A source stream node in the topology does not have a source%0 + + + + + MessageId: MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED + + MessageText: + + The topology loader does not support sink activates on output nodes.%0 + + + + + MessageId: MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID + + MessageText: + + The sequencer cannot find a segment with the given ID.%0\n. + + + + + MessageId: MF_S_SEQUENCER_CONTEXT_CANCELED + + MessageText: + + The context was canceled.%0\n. + + + + + MessageId: MF_E_NO_SOURCE_IN_CACHE + + MessageText: + + Cannot find source in source cache.%0\n. + + + + + MessageId: MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM + + MessageText: + + Cannot update topology flags.%0\n. + + + + + MessageId: MF_E_TRANSFORM_TYPE_NOT_SET + + MessageText: + + A valid type has not been set for this stream or a stream that it depends on.%0 + + + + + MessageId: MF_E_TRANSFORM_STREAM_CHANGE + + MessageText: + + A stream change has occurred. Output cannot be produced until the streams have been renegotiated.%0 + + + + + MessageId: MF_E_TRANSFORM_INPUT_REMAINING + + MessageText: + + The transform cannot take the requested action until all of the input data it currently holds is processed or flushed.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_MISSING + + MessageText: + + The transform requires a profile but no profile was supplied or found.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT + + MessageText: + + The transform requires a profile but the supplied profile was invalid or corrupt.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_TRUNCATED + + MessageText: + + The transform requires a profile but the supplied profile ended unexpectedly while parsing.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED + + MessageText: + + The property ID does not match any property supported by the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG + + MessageText: + + The variant does not have the type expected for this property ID.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE + + MessageText: + + An attempt was made to set the value on a read-only property.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM + + MessageText: + + The array property value has an unexpected number of dimensions.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG + + MessageText: + + The array or blob property value has an unexpected size.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE + + MessageText: + + The property value is out of range for this transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE + + MessageText: + + The property value is incompatible with some other property or mediatype set on the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set output mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set input mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION + + MessageText: + + The requested operation is not supported for the currently set combination of mediatypes.%0 + + + + + MessageId: MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES + + MessageText: + + The requested feature is not supported in combination with some other currently enabled feature.%0 + + + + + MessageId: MF_E_TRANSFORM_NEED_MORE_INPUT + + MessageText: + + The transform cannot produce output until it gets more input samples.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG + + MessageText: + + The requested operation is not supported for the current speaker configuration.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING + + MessageText: + + The transform cannot accept mediatype changes in the middle of processing.%0 + + + + + MessageId: MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT + + MessageText: + + The caller should not propagate this event to downstream components.%0 + + + + + MessageId: MF_E_UNSUPPORTED_D3D_TYPE + + MessageText: + + The input type is not supported for D3D device.%0 + + + + + MessageId: MF_E_TRANSFORM_ASYNC_LOCKED + + MessageText: + + The caller does not appear to support this transform's asynchronous capabilities.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER + + MessageText: + + An audio compression manager driver could not be initialized by the transform.%0 + + + + + MessageId: MF_E_LICENSE_INCORRECT_RIGHTS + + MessageText: + + You are not allowed to open this file. Contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_OUTOFDATE + + MessageText: + + The license for this media file has expired. Get a new license or contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_REQUIRED + + MessageText: + + You need a license to perform the requested operation on this media file.%0 + + + + + MessageId: MF_E_DRM_HARDWARE_INCONSISTENT + + MessageText: + + The licenses for your media files are corrupted. Contact Microsoft product support.%0 + + + + + MessageId: MF_E_NO_CONTENT_PROTECTION_MANAGER + + MessageText: + + The APP needs to provide IMFContentProtectionManager callback to access the protected media file.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NO_RIGHTS + + MessageText: + + Client does not have rights to restore licenses.%0 + + + + + MessageId: MF_E_BACKUP_RESTRICTED_LICENSE + + MessageText: + + Licenses are restricted and hence can not be backed up.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION + + MessageText: + + License restore requires machine to be individualized.%0 + + + + + MessageId: MF_S_PROTECTION_NOT_REQUIRED + + MessageText: + + Protection for stream is not required.%0 + + + + + MessageId: MF_E_COMPONENT_REVOKED + + MessageText: + + Component is revoked.%0 + + + + + MessageId: MF_E_TRUST_DISABLED + + MessageText: + + Trusted functionality is currently disabled on this component.%0 + + + + + MessageId: MF_E_WMDRMOTA_NO_ACTION + + MessageText: + + No Action is set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_ALREADY_SET + + MessageText: + + Action is already set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE + + MessageText: + + DRM Heaader is not available.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED + + MessageText: + + Current encryption scheme is not supported.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_MISMATCH + + MessageText: + + Action does not match with current configuration.%0 + + + + + MessageId: MF_E_WMDRMOTA_INVALID_POLICY + + MessageText: + + Invalid policy for WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_POLICY_UNSUPPORTED + + MessageText: + + The policies that the Input Trust Authority requires to be enforced are unsupported by the outputs.%0 + + + + + MessageId: MF_E_OPL_NOT_SUPPORTED + + MessageText: + + The OPL that the license requires to be enforced are not supported by the Input Trust Authority.%0 + + + + + MessageId: MF_E_TOPOLOGY_VERIFICATION_FAILED + + MessageText: + + The topology could not be successfully verified.%0 + + + + + MessageId: MF_E_SIGNATURE_VERIFICATION_FAILED + + MessageText: + + Signature verification could not be completed successfully for this component.%0 + + + + + MessageId: MF_E_DEBUGGING_NOT_ALLOWED + + MessageText: + + Running this process under a debugger while using protected content is not allowed.%0 + + + + + MessageId: MF_E_CODE_EXPIRED + + MessageText: + + MF component has expired.%0 + + + + + MessageId: MF_E_GRL_VERSION_TOO_LOW + + MessageText: + + The current GRL on the machine does not meet the minimum version requirements.%0 + + + + + MessageId: MF_E_GRL_RENEWAL_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any renewal entries for the specified revocation.%0 + + + + + MessageId: MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any extensible entries for the specified extension GUID.%0 + + + + + MessageId: MF_E_KERNEL_UNTRUSTED + + MessageText: + + The kernel isn't secure for high security level content.%0 + + + + + MessageId: MF_E_PEAUTH_UNTRUSTED + + MessageText: + + The response from protected environment driver isn't valid.%0 + + + + + MessageId: MF_E_NON_PE_PROCESS + + MessageText: + + A non-PE process tried to talk to PEAuth.%0 + + + + + MessageId: MF_E_REBOOT_REQUIRED + + MessageText: + + We need to reboot the machine.%0 + + + + + MessageId: MF_S_WAIT_FOR_POLICY_SET + + MessageText: + + Protection for this stream is not guaranteed to be enforced until the MEPolicySet event is fired.%0 + + + + + MessageId: MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT + + MessageText: + + This video stream is disabled because it is being sent to an unknown software output.%0 + + + + + MessageId: MF_E_GRL_INVALID_FORMAT + + MessageText: + + The GRL file is not correctly formed, it may have been corrupted or overwritten.%0 + + + + + MessageId: MF_E_GRL_UNRECOGNIZED_FORMAT + + MessageText: + + The GRL file is in a format newer than those recognized by this GRL Reader.%0 + + + + + MessageId: MF_E_ALL_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and required all processes that can run protected media to restart.%0 + + + + + MessageId: MF_E_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and the current process needs to restart.%0 + + + + + MessageId: MF_E_USERMODE_UNTRUSTED + + MessageText: + + The user space is untrusted for protected content play.%0 + + + + + MessageId: MF_E_PEAUTH_SESSION_NOT_STARTED + + MessageText: + + PEAuth communication session hasn't been started.%0 + + + + + MessageId: MF_E_PEAUTH_PUBLICKEY_REVOKED + + MessageText: + + PEAuth's public key is revoked.%0 + + + + + MessageId: MF_E_GRL_ABSENT + + MessageText: + + The GRL is absent.%0 + + + + + MessageId: MF_S_PE_TRUSTED + + MessageText: + + The Protected Environment is trusted.%0 + + + + + MessageId: MF_E_PE_UNTRUSTED + + MessageText: + + The Protected Environment is untrusted.%0 + + + + + MessageId: MF_E_PEAUTH_NOT_STARTED + + MessageText: + + The Protected Environment Authorization service (PEAUTH) has not been started.%0 + + + + + MessageId: MF_E_INCOMPATIBLE_SAMPLE_PROTECTION + + MessageText: + + The sample protection algorithms supported by components are not compatible.%0 + + + + + MessageId: MF_E_PE_SESSIONS_MAXED + + MessageText: + + No more protected environment sessions can be supported.%0 + + + + + MessageId: MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED + + MessageText: + + WMDRM ITA does not allow protected content with high security level for this release.%0 + + + + + MessageId: MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED + + MessageText: + + WMDRM ITA cannot allow the requested action for the content as one or more components is not properly signed.%0 + + + + + MessageId: MF_E_ITA_UNSUPPORTED_ACTION + + MessageText: + + WMDRM ITA does not support the requested action.%0 + + + + + MessageId: MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS + + MessageText: + + WMDRM ITA encountered an error in parsing the Secure Audio Path parameters.%0 + + + + + MessageId: MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS + + MessageText: + + The Policy Manager action passed in is invalid.%0 + + + + + MessageId: MF_E_BAD_OPL_STRUCTURE_FORMAT + + MessageText: + + The structure specifying Output Protection Level is not the correct format.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID + + MessageText: + + WMDRM ITA does not recognize the Explicite Analog Video Output Protection guid specified in the license.%0 + + + + + MessageId: MF_E_NO_PMP_HOST + + MessageText: + + IMFPMPHost object not available.%0 + + + + + MessageId: MF_E_ITA_OPL_DATA_NOT_INITIALIZED + + MessageText: + + WMDRM ITA could not initialize the Output Protection Level data.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Analog Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Digital Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_CLOCK_INVALID_CONTINUITY_KEY + + MessageText: + + The continuity key supplied is not currently valid.%0 + + + + + MessageId: MF_E_CLOCK_NO_TIME_SOURCE + + MessageText: + + No Presentation Time Source has been specified.%0 + + + + + MessageId: MF_E_CLOCK_STATE_ALREADY_SET + + MessageText: + + The clock is already in the requested state.%0 + + + + + MessageId: MF_E_CLOCK_NOT_SIMPLE + + MessageText: + + The clock has too many advanced features to carry out the request.%0 + + + + + MessageId: MF_S_CLOCK_STOPPED + + MessageText: + + Timer::SetTimer returns this success code if called happened while timer is stopped. Timer is not going to be dispatched until clock is running%0 + + + + + MessageId: MF_E_NO_MORE_DROP_MODES + + MessageText: + + The component does not support any more drop modes.%0 + + + + + MessageId: MF_E_NO_MORE_QUALITY_LEVELS + + MessageText: + + The component does not support any more quality levels.%0 + + + + + MessageId: MF_E_DROPTIME_NOT_SUPPORTED + + MessageText: + + The component does not support drop time functionality.%0 + + + + + MessageId: MF_E_QUALITYKNOB_WAIT_LONGER + + MessageText: + + Quality Manager needs to wait longer before bumping the Quality Level up.%0 + + + + + MessageId: MF_E_QM_INVALIDSTATE + + MessageText: + + Quality Manager is in an invalid state. Quality Management is off at this moment.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_CONTAINERTYPE + + MessageText: + + No transcode output container type is specified.%0 + + + + + MessageId: MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS + + MessageText: + + The profile does not have a media type configuration for any selected source streams.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_MATCHING_ENCODER + + MessageText: + + Cannot find an encoder MFT that accepts the user preferred output type.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_INITIALIZED + + MessageText: + + Memory allocator is not initialized.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_COMMITED + + MessageText: + + Memory allocator is not committed yet.%0 + + + + + MessageId: MF_E_ALLOCATOR_ALREADY_COMMITED + + MessageText: + + Memory allocator has already been committed.%0 + + + + + MessageId: MF_E_STREAM_ERROR + + MessageText: + + An error occurred in media stream.%0 + + + + + MessageId: MF_E_INVALID_STREAM_STATE + + MessageText: + + Stream is not in a state to handle the request.%0 + + + + + MessageId: MF_E_HW_STREAM_NOT_CONNECTED + + MessageText: + + Hardware stream is not connected yet.%0 + + + + + Major Media Types + http://msdn.microsoft.com/en-us/library/windows/desktop/aa367377%28v=vs.85%29.aspx + + + + + Default + + + + + Audio + + + + + Video + + + + + Protected Media + + + + + Synchronized Accessible Media Interchange (SAMI) captions. + + + + + Script stream + + + + + Still image stream. + + + + + HTML stream. + + + + + Binary stream. + + + + + A stream that contains data files. + + + + + IMFActivate, defined in mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Creates the object associated with this activation object. + + + + + Shuts down the created object. + + + + + Detaches the created object from the activation object. + + + + + Represents a generic collection of IUnknown pointers. + + + + + Retrieves the number of objects in the collection. + + + + + Retrieves an object in the collection. + + + + + Adds an object to the collection. + + + + + Removes an object from the collection. + + + + + Removes an object from the collection. + + + + + Removes all items from the collection. + + + + + IMFMediaEvent - Represents an event generated by a Media Foundation object. Use this interface to get information about the event. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms702249%28v=vs.85%29.aspx + Mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the event type. + + + virtual HRESULT STDMETHODCALLTYPE GetType( + /* [out] */ __RPC__out MediaEventType *pmet) = 0; + + + + + Retrieves the extended type of the event. + + + virtual HRESULT STDMETHODCALLTYPE GetExtendedType( + /* [out] */ __RPC__out GUID *pguidExtendedType) = 0; + + + + + Retrieves an HRESULT that specifies the event status. + + + virtual HRESULT STDMETHODCALLTYPE GetStatus( + /* [out] */ __RPC__out HRESULT *phrStatus) = 0; + + + + + Retrieves the value associated with the event, if any. + + + virtual HRESULT STDMETHODCALLTYPE GetValue( + /* [out] */ __RPC__out PROPVARIANT *pvValue) = 0; + + + + + Implemented by the Microsoft Media Foundation sink writer object. + + + + + Adds a stream to the sink writer. + + + + + Sets the input format for a stream on the sink writer. + + + + + Initializes the sink writer for writing. + + + + + Delivers a sample to the sink writer. + + + + + Indicates a gap in an input stream. + + + + + Places a marker in the specified stream. + + + + + Notifies the media sink that a stream has reached the end of a segment. + + + + + Flushes one or more streams. + + + + + (Finalize) Completes all writing operations on the sink writer. + + + + + Queries the underlying media sink or encoder for an interface. + + + + + Gets statistics about the performance of the sink writer. + + + + + IMFTransform, defined in mftransform.h + + + + + Retrieves the minimum and maximum number of input and output streams. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( + /* [out] */ __RPC__out DWORD *pdwInputMinimum, + /* [out] */ __RPC__out DWORD *pdwInputMaximum, + /* [out] */ __RPC__out DWORD *pdwOutputMinimum, + /* [out] */ __RPC__out DWORD *pdwOutputMaximum) = 0; + + + + + Retrieves the current number of input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + /* [out] */ __RPC__out DWORD *pcInputStreams, + /* [out] */ __RPC__out DWORD *pcOutputStreams) = 0; + + + + + Retrieves the stream identifiers for the input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( + DWORD dwInputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwInputIDArraySize) DWORD *pdwInputIDs, + DWORD dwOutputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwOutputIDArraySize) DWORD *pdwOutputIDs) = 0; + + + + + Gets the buffer requirements and other information for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( + DWORD dwInputStreamID, + /* [out] */ __RPC__out MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the buffer requirements and other information for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( + DWORD dwOutputStreamID, + /* [out] */ __RPC__out MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the global attribute store for this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetAttributes( + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an input stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Removes an input stream from this MFT. + + + virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( + DWORD dwStreamID) = 0; + + + + + Adds one or more new input streams to this MFT. + + + virtual HRESULT STDMETHODCALLTYPE AddInputStreams( + DWORD cStreams, + /* [in] */ __RPC__in DWORD *adwStreamIDs) = 0; + + + + + Gets an available media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( + DWORD dwInputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Retrieves an available media type for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( + DWORD dwOutputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Sets, tests, or clears the media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetInputType( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Sets, tests, or clears the media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetOutputType( + DWORD dwOutputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Gets the current media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Gets the current media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Queries whether an input stream on this Media Foundation transform (MFT) can accept more data. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStatus( + DWORD dwInputStreamID, + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Queries whether the Media Foundation transform (MFT) is ready to produce output data. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Sets the range of time stamps the client needs for output. + + + virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( + LONGLONG hnsLowerBound, + LONGLONG hnsUpperBound) = 0; + + + + + Sends an event to an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessEvent( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaEvent *pEvent) = 0; + + + + + Sends a message to the Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFT_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + + + + Delivers data to an input stream on this Media Foundation transform (MFT). + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessInput( + DWORD dwInputStreamID, + IMFSample *pSample, + DWORD dwFlags) = 0; + + + + + Generates output from the current input data. + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessOutput( + DWORD dwFlags, + DWORD cOutputBufferCount, + /* [size_is][out][in] */ MFT_OUTPUT_DATA_BUFFER *pOutputSamples, + /* [out] */ DWORD *pdwStatus) = 0; + + + + + See mfobjects.h + + + + + Unknown event type. + + + + + Signals a serious error. + + + + + Custom event type. + + + + + A non-fatal error occurred during streaming. + + + + + Session Unknown + + + + + Raised after the IMFMediaSession::SetTopology method completes asynchronously + + + + + Raised by the Media Session when the IMFMediaSession::ClearTopologies method completes asynchronously. + + + + + Raised when the IMFMediaSession::Start method completes asynchronously. + + + + + Raised when the IMFMediaSession::Pause method completes asynchronously. + + + + + Raised when the IMFMediaSession::Stop method completes asynchronously. + + + + + Raised when the IMFMediaSession::Close method completes asynchronously. + + + + + Raised by the Media Session when it has finished playing the last presentation in the playback queue. + + + + + Raised by the Media Session when the playback rate changes. + + + + + Raised by the Media Session when it completes a scrubbing request. + + + + + Raised by the Media Session when the session capabilities change. + + + + + Raised by the Media Session when the status of a topology changes. + + + + + Raised by the Media Session when a new presentation starts. + + + + + Raised by a media source a new presentation is ready. + + + + + License acquisition is about to begin. + + + + + License acquisition is complete. + + + + + Individualization is about to begin. + + + + + Individualization is complete. + + + + + Signals the progress of a content enabler object. + + + + + A content enabler object's action is complete. + + + + + Raised by a trusted output if an error occurs while enforcing the output policy. + + + + + Contains status information about the enforcement of an output policy. + + + + + A media source started to buffer data. + + + + + A media source stopped buffering data. + + + + + The network source started opening a URL. + + + + + The network source finished opening a URL. + + + + + Raised by a media source at the start of a reconnection attempt. + + + + + Raised by a media source at the end of a reconnection attempt. + + + + + Raised by the enhanced video renderer (EVR) when it receives a user event from the presenter. + + + + + Raised by the Media Session when the format changes on a media sink. + + + + + Source Unknown + + + + + Raised when a media source starts without seeking. + + + + + Raised by a media stream when the source starts without seeking. + + + + + Raised when a media source seeks to a new position. + + + + + Raised by a media stream after a call to IMFMediaSource::Start causes a seek in the stream. + + + + + Raised by a media source when it starts a new stream. + + + + + Raised by a media source when it restarts or seeks a stream that is already active. + + + + + Raised by a media source when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media source when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media source when a presentation ends. + + + + + Raised by a media stream when the stream ends. + + + + + Raised when a media stream delivers a new sample. + + + + + Signals that a media stream does not have data available at a specified time. + + + + + Raised by a media stream when it starts or stops thinning the stream. + + + + + Raised by a media stream when the media type of the stream changes. + + + + + Raised by a media source when the playback rate changes. + + + + + Raised by the sequencer source when a segment is completed and is followed by another segment. + + + + + Raised by a media source when the source's characteristics change. + + + + + Raised by a media source to request a new playback rate. + + + + + Raised by a media source when it updates its metadata. + + + + + Raised by the sequencer source when the IMFSequencerSource::UpdateTopology method completes asynchronously. + + + + + Sink Unknown + + + + + Raised by a stream sink when it completes the transition to the running state. + + + + + Raised by a stream sink when it completes the transition to the stopped state. + + + + + Raised by a stream sink when it completes the transition to the paused state. + + + + + Raised by a stream sink when the rate has changed. + + + + + Raised by a stream sink to request a new media sample from the pipeline. + + + + + Raised by a stream sink after the IMFStreamSink::PlaceMarker method is called. + + + + + Raised by a stream sink when the stream has received enough preroll data to begin rendering. + + + + + Raised by a stream sink when it completes a scrubbing request. + + + + + Raised by a stream sink when the sink's media type is no longer valid. + + + + + Raised by the stream sinks of the EVR if the video device changes. + + + + + Provides feedback about playback quality to the quality manager. + + + + + Raised when a media sink becomes invalid. + + + + + The audio session display name changed. + + + + + The volume or mute state of the audio session changed + + + + + The audio device was removed. + + + + + The Windows audio server system was shut down. + + + + + The grouping parameters changed for the audio session. + + + + + The audio session icon changed. + + + + + The default audio format for the audio device changed. + + + + + The audio session was disconnected from a Windows Terminal Services session + + + + + The audio session was preempted by an exclusive-mode connection. + + + + + Trust Unknown + + + + + The output policy for a stream changed. + + + + + Content protection message + + + + + The IMFOutputTrustAuthority::SetPolicy method completed. + + + + + DRM License Backup Completed + + + + + DRM License Backup Progress + + + + + DRM License Restore Completed + + + + + DRM License Restore Progress + + + + + DRM License Acquisition Completed + + + + + DRM Individualization Completed + + + + + DRM Individualization Progress + + + + + DRM Proximity Completed + + + + + DRM License Store Cleaned + + + + + DRM Revocation Download Completed + + + + + Transform Unknown + + + + + Sent by an asynchronous MFT to request a new input sample. + + + + + Sent by an asynchronous MFT when new output data is available from the MFT. + + + + + Sent by an asynchronous Media Foundation transform (MFT) when a drain operation is complete. + + + + + Sent by an asynchronous MFT in response to an MFT_MESSAGE_COMMAND_MARKER message. + + + + + Media Foundation attribute guids + http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx + + + + + Specifies whether an MFT performs asynchronous processing. + + + + + Enables the use of an asynchronous MFT. + + + + + Contains flags for an MFT activation object. + + + + + Specifies the category for an MFT. + + + + + Contains the class identifier (CLSID) of an MFT. + + + + + Contains the registered input types for a Media Foundation transform (MFT). + + + + + Contains the registered output types for a Media Foundation transform (MFT). + + + + + Contains the symbolic link for a hardware-based MFT. + + + + + Contains the display name for a hardware-based MFT. + + + + + Contains a pointer to the stream attributes of the connected stream on a hardware-based MFT. + + + + + Specifies whether a hardware-based MFT is connected to another hardware-based MFT. + + + + + Specifies the preferred output format for an encoder. + + + + + Specifies whether an MFT is registered only in the application's process. + + + + + Contains configuration properties for an encoder. + + + + + Specifies whether a hardware device source uses the system time for time stamps. + + + + + Contains an IMFFieldOfUseMFTUnlock pointer, which can be used to unlock the MFT. + + + + + Contains the merit value of a hardware codec. + + + + + Specifies whether a decoder is optimized for transcoding rather than for playback. + + + + + Contains a pointer to the proxy object for the application's presentation descriptor. + + + + + Contains a pointer to the presentation descriptor from the protected media path (PMP). + + + + + Specifies the duration of a presentation, in 100-nanosecond units. + + + + + Specifies the total size of the source file, in bytes. + + + + + Specifies the audio encoding bit rate for the presentation, in bits per second. + + + + + Specifies the video encoding bit rate for the presentation, in bits per second. + + + + + Specifies the MIME type of the content. + + + + + Specifies when a presentation was last modified. + + + + + The identifier of the playlist element in the presentation. + + + + + Contains the preferred RFC 1766 language of the media source. + + + + + The time at which the presentation must begin, relative to the start of the media source. + + + + + Specifies whether the audio streams in the presentation have a variable bit rate. + + + + + Media type Major Type + + + + + Media Type subtype + + + + + Audio block alignment + + + + + Audio average bytes per second + + + + + Audio number of channels + + + + + Audio samples per second + + + + + Audio bits per sample + + + + + Enables the source reader or sink writer to use hardware-based Media Foundation transforms (MFTs). + + + + + Contains additional format data for a media type. + + + + + Specifies for a media type whether each sample is independent of the other samples in the stream. + + + + + Specifies for a media type whether the samples have a fixed size. + + + + + Contains a DirectShow format GUID for a media type. + + + + + Specifies the preferred legacy format structure to use when converting an audio media type. + + + + + Specifies for a media type whether the media data is compressed. + + + + + Approximate data rate of the video stream, in bits per second, for a video media type. + + + + + Specifies the payload type of an Advanced Audio Coding (AAC) stream. + 0 - The stream contains raw_data_block elements only + 1 - Audio Data Transport Stream (ADTS). The stream contains an adts_sequence, as defined by MPEG-2. + 2 - Audio Data Interchange Format (ADIF). The stream contains an adif_sequence, as defined by MPEG-2. + 3 - The stream contains an MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + + + + + Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream, as defined by ISO/IEC 14496-3. + + + + + Main interface for using Media Foundation with NAudio + + + + + initializes MediaFoundation - only needs to be called once per process + + + + + Enumerate the installed MediaFoundation transforms in the specified category + + A category from MediaFoundationTransformCategories + + + + + uninitializes MediaFoundation + + + + + Creates a Media type + + + + + Creates a media type from a WaveFormat + + + + + Creates a memory buffer of the specified size + + Memory buffer size in bytes + The memory buffer + + + + Creates a sample object + + The sample object + + + + Creates a new attributes store + + Initial size + The attributes store + + + + Creates a media foundation byte stream based on a stream object + (usable with WinRT streams) + + The input stream + A media foundation byte stream + + + + Creates a source reader based on a byte stream + + The byte stream + A media foundation source reader + + + + Interop definitions for MediaFoundation + thanks to Lucian Wischik for the initial work on many of these definitions (also various interfaces) + n.b. the goal is to make as much of this internal as possible, and provide + better .NET APIs using the MediaFoundationApi class instead + + + + + Initializes Microsoft Media Foundation. + + + + + Shuts down the Microsoft Media Foundation platform + + + + + Creates an empty media type. + + + + + Initializes a media type from a WAVEFORMATEX structure. + + + + + Converts a Media Foundation audio media type to a WAVEFORMATEX structure. + + TODO: try making second parameter out WaveFormatExtraData + + + + Creates the source reader from a URL. + + + + + Creates the source reader from a byte stream. + + + + + Creates the sink writer from a URL or byte stream. + + + + + Creates a Microsoft Media Foundation byte stream that wraps an IRandomAccessStream object. + + + + + Gets a list of Microsoft Media Foundation transforms (MFTs) that match specified search criteria. + + + + + Creates an empty media sample. + + + + + Allocates system memory and creates a media buffer to manage it. + + + + + Creates an empty attribute store. + + + + + Gets a list of output formats from an audio encoder. + + + + + All streams + + + + + First audio stream + + + + + First video stream + + + + + Media source + + + + + Media Foundation SDK Version + + + + + Media Foundation API Version + + + + + Media Foundation Version + + + + + Provides a generic way to store key/value pairs on an object. + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704598%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + IMFByteStream + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms698720%28v=vs.85%29.aspx + + + + + Retrieves the characteristics of the byte stream. + virtual HRESULT STDMETHODCALLTYPE GetCapabilities(/*[out]*/ __RPC__out DWORD *pdwCapabilities) = 0; + + + + + Retrieves the length of the stream. + virtual HRESULT STDMETHODCALLTYPE GetLength(/*[out]*/ __RPC__out QWORD *pqwLength) = 0; + + + + + Sets the length of the stream. + virtual HRESULT STDMETHODCALLTYPE SetLength(/*[in]*/ QWORD qwLength) = 0; + + + + + Retrieves the current read or write position in the stream. + virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(/*[out]*/ __RPC__out QWORD *pqwPosition) = 0; + + + + + Sets the current read or write position. + virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(/*[in]*/ QWORD qwPosition) = 0; + + + + + Queries whether the current position has reached the end of the stream. + virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(/*[out]*/ __RPC__out BOOL *pfEndOfStream) = 0; + + + + + Reads data from the stream. + virtual HRESULT STDMETHODCALLTYPE Read(/*[size_is][out]*/ __RPC__out_ecount_full(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbRead) = 0; + + + + + Begins an asynchronous read operation from the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginRead(/*[out]*/ _Out_writes_bytes_(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous read operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndRead(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbRead) = 0; + + + + + Writes data to the stream. + virtual HRESULT STDMETHODCALLTYPE Write(/*[size_is][in]*/ __RPC__in_ecount_full(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbWritten) = 0; + + + + + Begins an asynchronous write operation to the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginWrite(/*[in]*/ _In_reads_bytes_(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous write operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndWrite(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbWritten) = 0; + + + + + Moves the current position in the stream by a specified offset. + virtual HRESULT STDMETHODCALLTYPE Seek(/*[in]*/ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, /*[in]*/ LONGLONG llSeekOffset, /*[in]*/ DWORD dwSeekFlags, /*[out]*/ __RPC__out QWORD *pqwCurrentPosition) = 0; + + + + + Clears any internal buffers used by the stream. + virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; + + + + + Closes the stream and releases any resources associated with the stream. + virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; + + + + + IMFMediaBuffer + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms696261%28v=vs.85%29.aspx + + + + + Gives the caller access to the memory in the buffer. + + + + + Unlocks a buffer that was previously locked. + + + + + Retrieves the length of the valid data in the buffer. + + + + + Sets the length of the valid data in the buffer. + + + + + Retrieves the allocated size of the buffer. + + + + + Represents a description of a media format. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms704850%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the major type of the format. + + + + + Queries whether the media type is a compressed format. + + + + + Compares two media types and determines whether they are identical. + + + + + Retrieves an alternative representation of the media type. + + + + + Frees memory that was allocated by the GetRepresentation method. + + + + + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms702192%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves flags associated with the sample. + + + + + Sets flags associated with the sample. + + + + + Retrieves the presentation time of the sample. + + + + + Sets the presentation time of the sample. + + + + + Retrieves the duration of the sample. + + + + + Sets the duration of the sample. + + + + + Retrieves the number of buffers in the sample. + + + + + Retrieves a buffer from the sample. + + + + + Converts a sample with multiple buffers into a sample with a single buffer. + + + + + Adds a buffer to the end of the list of buffers in the sample. + + + + + Removes a buffer at a specified index from the sample. + + + + + Removes all buffers from the sample. + + + + + Retrieves the total length of the valid data in all of the buffers in the sample. + + + + + Copies the sample data to a buffer. + + + + + IMFSourceReader interface + http://msdn.microsoft.com/en-us/library/windows/desktop/dd374655%28v=vs.85%29.aspx + + + + + Queries whether a stream is selected. + + + + + Selects or deselects one or more streams. + + + + + Gets a format that is supported natively by the media source. + + + + + Gets the current media type for a stream. + + + + + Sets the media type for a stream. + + + + + Seeks to a new position in the media source. + + + + + Reads the next sample from the media source. + + + + + Flushes one or more streams. + + + + + Queries the underlying media source or decoder for an interface. + + + + + Gets an attribute from the underlying media source. + + + + + Contains flags that indicate the status of the IMFSourceReader::ReadSample method + http://msdn.microsoft.com/en-us/library/windows/desktop/dd375773(v=vs.85).aspx + + + + + No Error + + + + + An error occurred. If you receive this flag, do not make any further calls to IMFSourceReader methods. + + + + + The source reader reached the end of the stream. + + + + + One or more new streams were created + + + + + The native format has changed for one or more streams. The native format is the format delivered by the media source before any decoders are inserted. + + + + + The current media has type changed for one or more streams. To get the current media type, call the IMFSourceReader::GetCurrentMediaType method. + + + + + There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. + + + + + All transforms inserted by the application have been removed for a particular stream. + + + + + Media Foundation Transform Categories + + + + + MFT_CATEGORY_VIDEO_DECODER + + + + + MFT_CATEGORY_VIDEO_ENCODER + + + + + MFT_CATEGORY_VIDEO_EFFECT + + + + + MFT_CATEGORY_MULTIPLEXER + + + + + MFT_CATEGORY_DEMULTIPLEXER + + + + + MFT_CATEGORY_AUDIO_DECODER + + + + + MFT_CATEGORY_AUDIO_ENCODER + + + + + MFT_CATEGORY_AUDIO_EFFECT + + + + + MFT_CATEGORY_VIDEO_PROCESSOR + + + + + MFT_CATEGORY_OTHER + + + + + Contains information about an input stream on a Media Foundation transform (MFT) + + + + + Maximum amount of time between an input sample and the corresponding output sample, in 100-nanosecond units. + + + + + Bitwise OR of zero or more flags from the _MFT_INPUT_STREAM_INFO_FLAGS enumeration. + + + + + The minimum size of each input buffer, in bytes. + + + + + Maximum amount of input data, in bytes, that the MFT holds to perform lookahead. + + + + + The memory alignment required for input buffers. If the MFT does not require a specific alignment, the value is zero. + + + + + Contains information about an output buffer for a Media Foundation transform. + + + + + Output stream identifier. + + + + + Pointer to the IMFSample interface. + + + + + Before calling ProcessOutput, set this member to zero. + + + + + Before calling ProcessOutput, set this member to NULL. + + + + + Contains information about an output stream on a Media Foundation transform (MFT). + + + + + Bitwise OR of zero or more flags from the _MFT_OUTPUT_STREAM_INFO_FLAGS enumeration. + + + + + Minimum size of each output buffer, in bytes. + + + + + The memory alignment required for output buffers. + + + + + Defines messages for a Media Foundation transform (MFT). + + + + + Requests the MFT to flush all stored data. + + + + + Requests the MFT to drain any stored data. + + + + + Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA). + + + + + Drop samples - requires Windows 7 + + + + + Command Tick - requires Windows 8 + + + + + Notifies the MFT that streaming is about to begin. + + + + + Notifies the MFT that streaming is about to end. + + + + + Notifies the MFT that an input stream has ended. + + + + + Notifies the MFT that the first sample is about to be processed. + + + + + Marks a point in the stream. This message applies only to asynchronous MFTs. Requires Windows 7 + + + + + Contains media type information for registering a Media Foundation transform (MFT). + + + + + The major media type. + + + + + The Media Subtype + + + + + Contains statistics about the performance of the sink writer. + + + + + The size of the structure, in bytes. + + + + + The time stamp of the most recent sample given to the sink writer. + + + + + The time stamp of the most recent sample to be encoded. + + + + + The time stamp of the most recent sample given to the media sink. + + + + + The time stamp of the most recent stream tick. + + + + + The system time of the most recent sample request from the media sink. + + + + + The number of samples received. + + + + + The number of samples encoded. + + + + + The number of samples given to the media sink. + + + + + The number of stream ticks received. + + + + + The amount of data, in bytes, currently waiting to be processed. + + + + + The total amount of data, in bytes, that has been sent to the media sink. + + + + + The number of pending sample requests. + + + + + The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. + + + + + Contains flags for registering and enumeration Media Foundation transforms (MFTs). + + + + + None + + + + + The MFT performs synchronous data processing in software. + + + + + The MFT performs asynchronous data processing in software. + + + + + The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. + + + + + The MFT that must be unlocked by the application before use. + + + + + For enumeration, include MFTs that were registered in the caller's process. + + + + + The MFT is optimized for transcoding rather than playback. + + + + + For enumeration, sort and filter the results. + + + + + Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER. + + + + + Indicates the status of an input stream on a Media Foundation transform (MFT). + + + + + None + + + + + The input stream can receive more data at this time. + + + + + Describes an input stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of input data must contain complete, unbroken units of data. + + + + + Each media sample that the client provides as input must contain exactly one unit of data, as defined for the MFT_INPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All input samples must be the same size. + + + + + MTF Input Stream Holds buffers + + + + + The MFT does not hold input samples after the IMFTransform::ProcessInput method returns. + + + + + This input stream can be removed by calling IMFTransform::DeleteInputStream. + + + + + This input stream is optional. + + + + + The MFT can perform in-place processing. + + + + + Defines flags for the IMFTransform::ProcessOutput method. + + + + + None + + + + + The MFT can still generate output from this stream without receiving any more input. + + + + + The format has changed on this output stream, or there is a new preferred format for this stream. + + + + + The MFT has removed this output stream. + + + + + There is no sample ready for this stream. + + + + + Indicates whether a Media Foundation transform (MFT) can produce output data. + + + + + None + + + + + There is a sample available for at least one output stream. + + + + + Describes an output stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of output data from the MFT contains complete, unbroken units of data. + + + + + Each output sample contains exactly one unit of data, as defined for the MFT_OUTPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All output samples are the same size. + + + + + The MFT can discard the output data from this output stream, if requested by the client. + + + + + This output stream is optional. + + + + + The MFT provides the output samples for this stream, either by allocating them internally or by operating directly on the input samples. + + + + + The MFT can either provide output samples for this stream or it can use samples that the client allocates. + + + + + The MFT does not require the client to process the output for this stream. + + + + + The MFT might remove this output stream during streaming. + + + + + Defines flags for processing output samples in a Media Foundation transform (MFT). + + + + + None + + + + + Do not produce output for streams in which the pSample member of the MFT_OUTPUT_DATA_BUFFER structure is NULL. + + + + + Regenerates the last output sample. + + + + + Process Output Status flags + + + + + None + + + + + The Media Foundation transform (MFT) has created one or more new output streams. + + + + + Defines flags for the setting or testing the media type on a Media Foundation transform (MFT). + + + + + None + + + + + Test the proposed media type, but do not set it. + + + + + Media Type helper class, simplifying working with IMFMediaType + (will probably change in the future, to inherit from an attributes class) + Currently does not release the COM object, so you must do that yourself + + + + + Wraps an existing IMFMediaType object + + The IMFMediaType object + + + + Creates and wraps a new IMFMediaType object + + + + + Creates and wraps a new IMFMediaType object based on a WaveFormat + + WaveFormat + + + + Tries to get a UINT32 value, returning a default value if it doesn't exist + + Attribute key + Default value + Value or default if key doesn't exist + + + + The Sample Rate (valid for audio media types) + + + + + The number of Channels (valid for audio media types) + + + + + The number of bits per sample (n.b. not always valid for compressed audio types) + + + + + The average bytes per second (valid for audio media types) + + + + + The Media Subtype. For audio, is a value from the AudioSubtypes class + + + + + The Major type, e.g. audio or video (from the MediaTypes class) + + + + + Access to the actual IMFMediaType object + Use to pass to MF APIs or Marshal.ReleaseComObject when you are finished with it + + + + + An abstract base class for simplifying working with Media Foundation Transforms + You need to override the method that actually creates and configures the transform + + + + + The Source Provider + + + + + The Output WaveFormat + + + + + Constructs a new MediaFoundationTransform wrapper + Will read one second at a time + + The source provider for input data to the transform + The desired output format + + + + To be implemented by overriding classes. Create the transform object, set up its input and output types, + and configure any custom properties in here + + An object implementing IMFTrasform + + + + Disposes this MediaFoundation transform + + + + + Disposes this Media Foundation Transform + + + + + Destructor + + + + + The output WaveFormat of this Media Foundation Transform + + + + + Reads data out of the source, passing it through the transform + + Output buffer + Offset within buffer to write to + Desired byte count + Number of bytes read + + + + Attempts to read from the transform + Some useful info here: + http://msdn.microsoft.com/en-gb/library/windows/desktop/aa965264%28v=vs.85%29.aspx#process_data + + + + + + Indicate that the source has been repositioned and completely drain out the transforms buffers + + + + + Represents a MIDI meta event with raw data + + + + + Raw data contained in the meta event + + + + + Creates a meta event with raw data + + + + + Creates a deep clone of this MIDI event. + + + + + Describes this meta event + + + + + + + + + + MIDI In Message Information + + + + + Create a new MIDI In Message EventArgs + + + + + + + The Raw message received from the MIDI In API + + + + + The raw message interpreted as a MidiEvent + + + + + The timestamp in milliseconds for this message + + + + + Represents a MIDI Channel AfterTouch Event. + + + + + Creates a new ChannelAfterTouchEvent from raw MIDI data + + A binary reader + + + + Creates a new Channel After-Touch Event + + Absolute time + Channel + After-touch pressure + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The aftertouch pressure value + + + + + Represents a MIDI control change event + + + + + Reads a control change event from a MIDI stream + + Binary reader on the MIDI stream + + + + Creates a control change event + + Time + MIDI Channel Number + The MIDI Controller + Controller value + + + + Describes this control change event + + A string describing this event + + + + + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The controller number + + + + + The controller value + + + + + Represents a MIDI key signature event event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new Key signature event with the specified data + + + + + Creates a deep clone of this MIDI event. + + + + + Number of sharps or flats + + + + + Major or Minor key + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI meta event + + + + + Gets the type of this meta event + + + + + Empty constructor + + + + + Custom constructor for use by derived types, who will manage the data themselves + + Meta event type + Meta data length + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Reads a meta-event from a stream + + A binary reader based on the stream of MIDI data + A new MetaEvent object + + + + Describes this meta event + + + + + + + + + + MIDI MetaEvent Type + + + + Track sequence number + + + Text event + + + Copyright + + + Sequence track name + + + Track instrument name + + + Lyric + + + Marker + + + Cue point + + + Program (patch) name + + + Device (port) name + + + MIDI Channel (not official?) + + + MIDI Port (not official?) + + + End track + + + Set tempo + + + SMPTE offset + + + Time signature + + + Key signature + + + Sequencer specific + + + + MIDI command codes + + + + Note Off + + + Note On + + + Key After-touch + + + Control change + + + Patch change + + + Channel after-touch + + + Pitch wheel change + + + Sysex message + + + Eox (comes at end of a sysex message) + + + Timing clock (used when synchronization is required) + + + Start sequence + + + Continue sequence + + + Stop sequence + + + Auto-Sensing + + + Meta-event + + + + MidiController enumeration + http://www.midi.org/techspecs/midimessages.php#3 + + + + Bank Select (MSB) + + + Modulation (MSB) + + + Breath Controller + + + Foot controller (MSB) + + + Main volume + + + Pan + + + Expression + + + Bank Select LSB + + + Sustain + + + Portamento On/Off + + + Sostenuto On/Off + + + Soft Pedal On/Off + + + Legato Footswitch + + + Reset all controllers + + + All notes off + + + + Represents an individual MIDI event + + + + The MIDI command code + + + + Creates a MidiEvent from a raw message received using + the MME MIDI In APIs + + The short MIDI message + A new MIDI Event + + + + Constructs a MidiEvent from a BinaryStream + + The binary stream of MIDI data + The previous MIDI event (pass null for first event) + A new MidiEvent + + + + Converts this MIDI event to a short message (32 bit integer) that + can be sent by the Windows MIDI out short message APIs + Cannot be implemented for all MIDI messages + + A short message + + + + Default constructor + + + + + Creates a MIDI event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + + + + Creates a deep clone of this MIDI event. + + + + + The MIDI Channel Number for this event (1-16) + + + + + The Delta time for this event + + + + + The absolute time for this event + + + + + The command code for this event + + + + + Whether this is a note off event + + + + + Whether this is a note on event + + + + + Determines if this is an end track event + + + + + Displays a summary of the MIDI event + + A string containing a brief description of this MIDI event + + + + Utility function that can read a variable length integer from a binary stream + + The binary stream + The integer read + + + + Writes a variable length integer to a binary stream + + Binary stream + The value to write + + + + Exports this MIDI event's data + Overriden in derived classes, but they should call this version + + Absolute time used to calculate delta. + Is updated ready for the next delta calculation + Stream to write to + + + + A helper class to manage collection of MIDI events + It has the ability to organise them in tracks + + + + + Creates a new Midi Event collection + + Initial file type + Delta Ticks Per Quarter Note + + + + The number of tracks + + + + + The absolute time that should be considered as time zero + Not directly used here, but useful for timeshifting applications + + + + + The number of ticks per quarter note + + + + + Gets events on a specified track + + Track number + The list of events + + + + Gets events on a specific track + + Track number + The list of events + + + + Adds a new track + + The new track event list + + + + Adds a new track + + Initial events to add to the new track + The new track event list + + + + Removes a track + + Track number to remove + + + + Clears all events + + + + + The MIDI file type + + + + + Adds an event to the appropriate track depending on file type + + The event to be added + The original (or desired) track number + When adding events in type 0 mode, the originalTrack parameter + is ignored. If in type 1 mode, it will use the original track number to + store the new events. If the original track was 0 and this is a channel based + event, it will create new tracks if necessary and put it on the track corresponding + to its channel number + + + + Sorts, removes empty tracks and adds end track markers + + + + + Gets an enumerator for the lists of track events + + + + + Gets an enumerator for the lists of track events + + + + + Utility class for comparing MidiEvent objects + + + + + Compares two MidiEvents + Sorts by time, with EndTrack always sorted to the end + + + + + Class able to read a MIDI file + + + + + Opens a MIDI file for reading + + Name of MIDI file + + + + MIDI File format + + + + + Opens a MIDI file for reading + + Name of MIDI file + If true will error on non-paired note events + + + + Opens a MIDI file stream for reading + + The input stream containing a MIDI file + If true will error on non-paired note events + + + + The collection of events in this MIDI file + + + + + Number of tracks in this MIDI file + + + + + Delta Ticks Per Quarter Note + + + + + Describes the MIDI file + + A string describing the MIDI file and its events + + + + Exports a MIDI file + + Filename to export to + Events to export + + + + Represents a MIDI in device + + + + + Called when a MIDI message is received + + + + + An invalid MIDI message + + + + + Gets the number of MIDI input devices available in the system + + + + + Opens a specified MIDI in device + + The device number + + + + Closes this MIDI in device + + + + + Closes this MIDI in device + + + + + Start the MIDI in device + + + + + Stop the MIDI in device + + + + + Reset the MIDI in device + + + + + Gets the MIDI in device info + + + + + Closes the MIDI out device + + True if called from Dispose + + + + Cleanup + + + + + MIDI In Device Capabilities + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name + + + + + Support - Reserved + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + MIM_OPEN + + + + + MIM_CLOSE + + + + + MIM_DATA + + + + + MIM_LONGDATA + + + + + MIM_ERROR + + + + + MIM_LONGERROR + + + + + MIM_MOREDATA + + + + + MOM_OPEN + + + + + MOM_CLOSE + + + + + MOM_DONE + + + + + Represents a MIDI message + + + + + Creates a new MIDI message + + Status + Data parameter 1 + Data parameter 2 + + + + Creates a new MIDI message from a raw message + + A packed MIDI message from an MMIO function + + + + Creates a Note On message + + Note number (0 to 127) + Volume (0 to 127) + MIDI channel (1 to 16) + A new MidiMessage object + + + + Creates a Note Off message + + Note number + Volume + MIDI channel (1-16) + A new MidiMessage object + + + + Creates a patch change message + + The patch number + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Creates a Control Change message + + The controller number to change + The value to set the controller to + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Returns the raw MIDI message data + + + + + Represents a MIDI out device + + + + + Gets the number of MIDI devices available in the system + + + + + Gets the MIDI Out device info + + + + + Opens a specified MIDI out device + + The device number + + + + Closes this MIDI out device + + + + + Closes this MIDI out device + + + + + Gets or sets the volume for this MIDI out device + + + + + Resets the MIDI out device + + + + + Sends a MIDI out message + + Message + Parameter 1 + Parameter 2 + + + + Sends a MIDI message to the MIDI out device + + The message to send + + + + Closes the MIDI out device + + True if called from Dispose + + + + Send a long message, for example sysex. + + The bytes to send. + + + + Cleanup + + + + + class representing the capabilities of a MIDI out device + MIDIOUTCAPS: http://msdn.microsoft.com/en-us/library/dd798467%28VS.85%29.aspx + + + + + MIDICAPS_VOLUME + + + + + separate left-right volume control + MIDICAPS_LRVOLUME + + + + + MIDICAPS_CACHE + + + + + MIDICAPS_STREAM + driver supports midiStreamOut directly + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + Returns the number of supported voices + + + + + Gets the polyphony of the device + + + + + Returns true if the device supports all channels + + + + + Queries whether a particular channel is supported + + Channel number to test + True if the channel is supported + + + + Returns true if the device supports patch caching + + + + + Returns true if the device supports separate left and right volume + + + + + Returns true if the device supports MIDI stream out + + + + + Returns true if the device supports volume control + + + + + Returns the type of technology used by this MIDI out device + + + + + Represents the different types of technology used by a MIDI out device + + from mmsystem.h + + + The device is a MIDI port + + + The device is a MIDI synth + + + The device is a square wave synth + + + The device is an FM synth + + + The device is a MIDI mapper + + + The device is a WaveTable synth + + + The device is a software synth + + + + Represents a note MIDI event + + + + + Reads a NoteEvent from a stream of MIDI data + + Binary Reader for the stream + + + + Creates a MIDI Note Event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + MIDI Note Number + MIDI Note Velocity + + + + + + + + + The MIDI note number + + + + + The note velocity + + + + + The note name + + + + + Describes the Note Event + + Note event as a string + + + + + + + + + Represents a MIDI note on event + + + + + Reads a new Note On event from a stream of MIDI data + + Binary reader on the MIDI data stream + + + + Creates a NoteOn event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI note number + MIDI note velocity + MIDI note duration + + + + Creates a deep clone of this MIDI event. + + + + + The associated Note off event + + + + + Get or set the Note Number, updating the off event at the same time + + + + + Get or set the channel, updating the off event at the same time + + + + + The duration of this note + + + There must be a note off event + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI patch change event + + + + + Gets the default MIDI instrument names + + + + + Reads a new patch change event from a MIDI stream + + Binary reader for the MIDI stream + + + + Creates a new patch change event + + Time of the event + Channel number + Patch number + + + + The Patch Number + + + + + Describes this patch change event + + String describing the patch change event + + + + Gets as a short message for sending with the midiOutShortMsg API + + short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI pitch wheel change event + + + + + Reads a pitch wheel change event from a MIDI stream + + The MIDI stream to read from + + + + Creates a new pitch wheel change event + + Absolute event time + Channel + Pitch wheel value + + + + Describes this pitch wheel change event + + String describing this pitch wheel change event + + + + Pitch Wheel Value 0 is minimum, 0x2000 (8192) is default, 0x3FFF (16383) is maximum + + + + + Gets a short message + + Integer to sent as short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a Sequencer Specific event + + + + + Reads a new sequencer specific event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new Sequencer Specific event + + The sequencer specific data + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this sequencer specific + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Creates a new time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a deep clone of this MIDI event. + + + + + Hours + + + + + Minutes + + + + + Seconds + + + + + Frames + + + + + SubFrames + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI sysex message + + + + + Reads a sysex message from a MIDI stream + + Stream of MIDI data + a new sysex message + + + + Creates a deep clone of this MIDI event. + + + + + Describes this sysex message + + A string describing the sysex message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI tempo event + + + + + Reads a new tempo event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new tempo event with specified settings + + Microseconds per quarter note + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Describes this tempo event + + String describing the tempo event + + + + Microseconds per quarter note + + + + + Tempo + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI text event + + + + + Reads a new text event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TextEvent + + The text in this type + MetaEvent type (must be one that is + associated with text data) + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this text event + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TimeSignatureEvent + + Time at which to create this event + Numerator + Denominator + Ticks in Metronome Click + No of 32nd Notes in Quarter Click + + + + Creates a deep clone of this MIDI event. + + + + + Numerator (number of beats in a bar) + + + + + Denominator (Beat unit), + 1 means 2, 2 means 4 (crochet), 3 means 8 (quaver), 4 means 16 and 5 means 32 + + + + + Ticks in a metronome click + + + + + Number of 32nd notes in a quarter note + + + + + The time signature + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI track sequence number event event + + + + + Creates a new track sequence number event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a deep clone of this MIDI event. + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Chunk Identifier helpers + + + + + Chunk identifier to Int32 (replaces mmioStringToFOURCC) + + four character chunk identifier + Chunk identifier as int 32 + + + + Allows us to add descriptions to interop members + + + + + The description + + + + + Field description + + + + + String representation + + + + + + these will become extension methods once we move to .NET 3.5 + + + + + Checks if the buffer passed in is entirely full of nulls + + + + + Converts to a string containing the buffer described in hex + + + + + Decodes the buffer using the specified encoding, stopping at the first null + + + + + Concatenates the given arrays into a single array. + + The arrays to concatenate + The concatenated resulting array. + + + + Helper to get descriptions + + + + + Describes the Guid by looking for a FieldDescription attribute on the specified class + + + + + Support for Marshal Methods in both UWP and .NET 3.5 + + + + + SizeOf a structure + + + + + Offset of a field in a structure + + + + + Pointer to Structure + + + + + WavePosition extension methods + + + + + Get Position as timespan + + + + + Methods for converting between IEEE 80-bit extended double precision + and standard C# double precision. + + + + + Converts a C# double precision number to an 80-bit + IEEE extended double precision number (occupying 10 bytes). + + The double precision number to convert to IEEE extended. + An array of 10 bytes containing the IEEE extended number. + + + + Converts an IEEE 80-bit extended precision number to a + C# double precision number. + + The 80-bit IEEE extended number (as an array of 10 bytes). + A C# double precision number that is a close representation of the IEEE extended number. + + + + General purpose native methods for internal NAudio use + + + + + Helper methods for working with audio buffers + + + + + Ensures the buffer is big enough + + + + + + + + Ensures the buffer is big enough + + + + + + + + An encoding for use with file types that have one byte per character + + + + + The one and only instance of this class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A very basic circular buffer implementation + + + + + Create a new circular buffer + + Max buffer size in bytes + + + + Write data to the buffer + + Data to write + Offset into data + Number of bytes to write + number of bytes written + + + + Read from the buffer + + Buffer to read into + Offset into read buffer + Bytes to read + Number of bytes actually read + + + + Maximum length of this circular buffer + + + + + Number of bytes currently stored in the circular buffer + + + + + Resets the buffer + + + + + Advances the buffer, discarding bytes + + Bytes to advance + + + + A util class for conversions + + + + + linear to dB conversion + + linear value + decibel value + + + + dB to linear conversion + + decibel value + linear value + + + + HResult + + + + + S_OK + + + + + S_FALSE + + + + + E_INVALIDARG (from winerror.h) + + + + + MAKE_HRESULT macro + + + + + Helper to deal with the fact that in Win Store apps, + the HResult property name has changed + + COM Exception + The HResult + + + + Pass-through stream that ignores Dispose + Useful for dealing with MemoryStreams that you want to re-use + + + + + The source stream all other methods fall through to + + + + + If true the Dispose will be ignored, if false, will pass through to the SourceStream + Set to true by default + + + + + Creates a new IgnoreDisposeStream + + The source stream + + + + Can Read + + + + + Can Seek + + + + + Can write to the underlying stream + + + + + Flushes the underlying stream + + + + + Gets the length of the underlying stream + + + + + Gets or sets the position of the underlying stream + + + + + Reads from the underlying stream + + + + + Seeks on the underlying stream + + + + + Sets the length of the underlying stream + + + + + Writes to the underlying stream + + + + + Dispose - by default (IgnoreDispose = true) will do nothing, + leaving the underlying stream undisposed + + + + + In-place and stable implementation of MergeSort + + + + + MergeSort a list of comparable items + + + + + MergeSort a list + + + + + A thread-safe Progress Log Control + + + + + Creates a new progress log control + + + + + The contents of the log as text + + + + + Log a message + + + + + Clear the log + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ASIO 64 bit value + Unfortunately the ASIO API was implemented it before compiler supported consistently 64 bit + integer types. By using the structure the data layout on a little-endian system like the + Intel x86 architecture will result in a "non native" storage of the 64 bit data. The most + significant 32 bit are stored first in memory, the least significant bits are stored in the + higher memory space. However each 32 bit is stored in the native little-endian fashion + + + + + most significant bits (Bits 32..63) + + + + + least significant bits (Bits 0..31) + + + + + ASIO Callbacks + + + + + ASIO Buffer Switch Callback + + + + + ASIO Sample Rate Did Change Callback + + + + + ASIO Message Callback + + + + + ASIO Buffer Switch Time Info Callback + + + + + Buffer switch callback + void (*bufferSwitch) (long doubleBufferIndex, AsioBool directProcess); + + + + + Sample Rate Changed callback + void (*sampleRateDidChange) (AsioSampleRate sRate); + + + + + ASIO Message callback + long (*asioMessage) (long selector, long value, void* message, double* opt); + + + + + ASIO Buffer Switch Time Info Callback + AsioTime* (*bufferSwitchTimeInfo) (AsioTime* params, long doubleBufferIndex, AsioBool directProcess); + + + + + ASIO Channel Info + + + + + on input, channel index + + + + + Is Input + + + + + Is Active + + + + + Channel Info + + + + + ASIO Sample Type + + + + + Name + + + + + ASIODriverCapability holds all the information from the AsioDriver. + Use ASIODriverExt to get the Capabilities + + + + + Drive Name + + + + + Number of Input Channels + + + + + Number of Output Channels + + + + + Input Latency + + + + + Output Latency + + + + + Buffer Minimum Size + + + + + Buffer Maximum Size + + + + + Buffer Preferred Size + + + + + Buffer Granularity + + + + + Sample Rate + + + + + Input Channel Info + + + + + Output Channel Info + + + + + ASIO Error Codes + + + + + This value will be returned whenever the call succeeded + + + + + unique success return value for ASIOFuture calls + + + + + hardware input or output is not present or available + + + + + hardware is malfunctioning (can be returned by any ASIO function) + + + + + input parameter invalid + + + + + hardware is in a bad mode or used in a bad mode + + + + + hardware is not running when sample position is inquired + + + + + sample clock or rate cannot be determined or is not present + + + + + not enough memory for completing the request + + + + + ASIO Message Selector + + + + + selector in <value>, returns 1L if supported, + + + + + returns engine (host) asio implementation version, + + + + + request driver reset. if accepted, this + + + + + not yet supported, will currently always return 0L. + + + + + the driver went out of sync, such that + + + + + the drivers latencies have changed. The engine + + + + + if host returns true here, it will expect the + + + + + supports timecode + + + + + unused - value: number of commands, message points to mmc commands + + + + + kAsioSupportsXXX return 1 if host supports this + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + driver detected an overload + + + + + ASIO Sample Type + + + + + Int 16 MSB + + + + + Int 24 MSB (used for 20 bits as well) + + + + + Int 32 MSB + + + + + IEEE 754 32 bit float + + + + + IEEE 754 64 bit double float + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + Int 16 LSB + + + + + Int 24 LSB + used for 20 bits as well + + + + + Int 32 LSB + + + + + IEEE 754 32 bit float, as found on Intel x86 architecture + + + + + IEEE 754 64 bit double float, as found on Intel x86 architecture + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + DSD 1 bit data, 8 samples per byte. First sample in Least significant bit. + + + + + DSD 1 bit data, 8 samples per byte. First sample in Most significant bit. + + + + + DSD 8 bit data, 1 sample per byte. No Endianness required. + + + + + Main AsioDriver Class. To use this class, you need to query first the GetAsioDriverNames() and + then use the GetAsioDriverByName to instantiate the correct AsioDriver. + This is the first AsioDriver binding fully implemented in C#! + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Gets the ASIO driver names installed. + + a list of driver names. Use this name to GetAsioDriverByName + + + + Instantiate a AsioDriver given its name. + + The name of the driver + an AsioDriver instance + + + + Instantiate the ASIO driver by GUID. + + The GUID. + an AsioDriver instance + + + + Inits the AsioDriver.. + + The sys handle. + + + + + Gets the name of the driver. + + + + + + Gets the driver version. + + + + + + Gets the error message. + + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Gets the number of channels. + + The num input channels. + The num output channels. + + + + Gets the latencies (n.b. does not throw an exception) + + The input latency. + The output latency. + + + + Gets the size of the buffer. + + Size of the min. + Size of the max. + Size of the preferred. + The granularity. + + + + Determines whether this instance can use the specified sample rate. + + The sample rate. + + true if this instance [can sample rate] the specified sample rate; otherwise, false. + + + + + Gets the sample rate. + + + + + + Sets the sample rate. + + The sample rate. + + + + Gets the clock sources. + + The clocks. + The num sources. + + + + Sets the clock source. + + The reference. + + + + Gets the sample position. + + The sample pos. + The time stamp. + + + + Gets the channel info. + + The channel number. + if set to true [true for input info]. + Channel Info + + + + Creates the buffers. + + The buffer infos. + The num channels. + Size of the buffer. + The callbacks. + + + + Disposes the buffers. + + + + + Controls the panel. + + + + + Futures the specified selector. + + The selector. + The opt. + + + + Notifies OutputReady to the AsioDriver. + + + + + + Releases this instance. + + + + + Handles the exception. Throws an exception based on the error. + + The error to check. + Method name + + + + Inits the vTable method from GUID. This is a tricky part of this class. + + The ASIO GUID. + + + + Internal VTable structure to store all the delegates to the C++ COM method. + + + + + Callback used by the AsioDriverExt to get wave data + + + + + AsioDriverExt is a simplified version of the AsioDriver. It provides an easier + way to access the capabilities of the Driver and implement the callbacks necessary + for feeding the driver. + Implementation inspired from Rob Philpot's with a managed C++ ASIO wrapper BlueWave.Interop.Asio + http://www.codeproject.com/KB/mcpp/Asio.Net.aspx + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Initializes a new instance of the class based on an already + instantiated AsioDriver instance. + + A AsioDriver already instantiated. + + + + Allows adjustment of which is the first output channel we write to + + Output Channel offset + Input Channel offset + + + + Gets the driver used. + + The ASIOdriver. + + + + Starts playing the buffers. + + + + + Stops playing the buffers. + + + + + Shows the control panel. + + + + + Releases this instance. + + + + + Determines whether the specified sample rate is supported. + + The sample rate. + + true if [is sample rate supported]; otherwise, false. + + + + + Sets the sample rate. + + The sample rate. + + + + Gets or sets the fill buffer callback. + + The fill buffer callback. + + + + Gets the capabilities of the AsioDriver. + + The capabilities. + + + + Creates the buffers for playing. + + The number of outputs channels. + The number of input channel. + if set to true [use max buffer size] else use Prefered size + + + + Builds the capabilities internally. + + + + + Callback called by the AsioDriver on fill buffer demand. Redirect call to external callback. + + Index of the double buffer. + if set to true [direct process]. + + + + Callback called by the AsioDriver on event "Samples rate changed". + + The sample rate. + + + + Asio message call back. + + The selector. + The value. + The message. + The opt. + + + + + Buffers switch time info call back. + + The asio time param. + Index of the double buffer. + if set to true [direct process]. + + + + + This class stores convertors for different interleaved WaveFormat to ASIOSampleType separate channel + format. + + + + + Selects the sample convertor based on the input WaveFormat and the output ASIOSampleTtype. + + The wave format. + The type. + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Generic converter 24 LSB + + + + + Generic convertor for float + + + + + ASIO common Exception. + + + + + Gets the name of the error. + + The error. + the name of the error + + + + Flags for use with acmDriverAdd + + + + + ACM_DRIVERADDF_LOCAL + + + + + ACM_DRIVERADDF_GLOBAL + + + + + ACM_DRIVERADDF_FUNCTION + + + + + ACM_DRIVERADDF_NOTIFYHWND + + + + + Represents an installed ACM Driver + + + + + Helper function to determine whether a particular codec is installed + + The short name of the function + Whether the codec is installed + + + + Attempts to add a new ACM driver from a file + + Full path of the .acm or dll file containing the driver + Handle to the driver + + + + Removes a driver previously added using AddLocalDriver + + Local driver to remove + + + + Show Format Choose Dialog + + Owner window handle, can be null + Window title + Enumeration flags. None to get everything + Enumeration format. Only needed with certain enumeration flags + The selected format + Textual description of the selected format + Textual description of the selected format tag + True if a format was selected + + + + Gets the maximum size needed to store a WaveFormat for ACM interop functions + + + + + Finds a Driver by its short name + + Short Name + The driver, or null if not found + + + + Gets a list of the ACM Drivers installed + + + + + The callback for acmDriverEnum + + + + + Creates a new ACM Driver object + + Driver handle + + + + The short name of this driver + + + + + The full name of this driver + + + + + The driver ID + + + + + ToString + + + + + The list of FormatTags for this ACM Driver + + + + + Gets all the supported formats for a given format tag + + Format tag + Supported formats + + + + Opens this driver + + + + + Closes this driver + + + + + Dispose + + + + + Interop structure for ACM driver details (ACMDRIVERDETAILS) + http://msdn.microsoft.com/en-us/library/dd742889%28VS.85%29.aspx + + + + + DWORD cbStruct + + + + + FOURCC fccType + + + + + FOURCC fccComp + + + + + WORD wMid; + + + + + WORD wPid + + + + + DWORD vdwACM + + + + + DWORD vdwDriver + + + + + DWORD fdwSupport; + + + + + DWORD cFormatTags + + + + + DWORD cFilterTags + + + + + HICON hicon + + + + + TCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; + + + + + TCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; + + + + + TCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; + + + + + TCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; + + + + + TCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; + + + + + ACMDRIVERDETAILS_SHORTNAME_CHARS + + + + + ACMDRIVERDETAILS_LONGNAME_CHARS + + + + + ACMDRIVERDETAILS_COPYRIGHT_CHARS + + + + + ACMDRIVERDETAILS_LICENSING_CHARS + + + + + ACMDRIVERDETAILS_FEATURES_CHARS + + + + + Flags indicating what support a particular ACM driver has + + + + ACMDRIVERDETAILS_SUPPORTF_CODEC - Codec + + + ACMDRIVERDETAILS_SUPPORTF_CONVERTER - Converter + + + ACMDRIVERDETAILS_SUPPORTF_FILTER - Filter + + + ACMDRIVERDETAILS_SUPPORTF_HARDWARE - Hardware + + + ACMDRIVERDETAILS_SUPPORTF_ASYNC - Async + + + ACMDRIVERDETAILS_SUPPORTF_LOCAL - Local + + + ACMDRIVERDETAILS_SUPPORTF_DISABLED - Disabled + + + + ACM_DRIVERENUMF_NOLOCAL, Only global drivers should be included in the enumeration + + + + + ACM_DRIVERENUMF_DISABLED, Disabled ACM drivers should be included in the enumeration + + + + + ACM Format + + + + + Format Index + + + + + Format Tag + + + + + Support Flags + + + + + WaveFormat + + + + + WaveFormat Size + + + + + Format Description + + + + + ACMFORMATCHOOSE + http://msdn.microsoft.com/en-us/library/dd742911%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD fdwStyle; + + + + + HWND hwndOwner; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + LPCTSTR pszTitle; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + LPTSTR pszName; + n.b. can be written into + + + + + DWORD cchName + Should be at least 128 unless name is zero + + + + + DWORD fdwEnum; + + + + + LPWAVEFORMATEX pwfxEnum; + + + + + HINSTANCE hInstance; + + + + + LPCTSTR pszTemplateName; + + + + + LPARAM lCustData; + + + + + ACMFORMATCHOOSEHOOKPROC pfnHook; + + + + + None + + + + + ACMFORMATCHOOSE_STYLEF_SHOWHELP + + + + + ACMFORMATCHOOSE_STYLEF_ENABLEHOOK + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE + + + + + ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT + + + + + ACMFORMATCHOOSE_STYLEF_CONTEXTHELP + + + + + ACMFORMATDETAILS + http://msdn.microsoft.com/en-us/library/dd742913%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD dwFormatIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD fdwSupport; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + ACMFORMATDETAILS_FORMAT_CHARS + + + + + Format Enumeration Flags + + + + + None + + + + + ACM_FORMATENUMF_CONVERT + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will only enumerate destination formats that can be converted from the given pwfx format. + + + + + ACM_FORMATENUMF_HARDWARE + The enumerator should only enumerate formats that are supported as native input or output formats on one or more of the installed waveform-audio devices. This flag provides a way for an application to choose only formats native to an installed waveform-audio device. This flag must be used with one or both of the ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT flags. Specifying both ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT will enumerate only formats that can be opened for input or output. This is true regardless of whether this flag is specified. + + + + + ACM_FORMATENUMF_INPUT + Enumerator should enumerate only formats that are supported for input (recording). + + + + + ACM_FORMATENUMF_NCHANNELS + The nChannels member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_NSAMPLESPERSEC + The nSamplesPerSec member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_OUTPUT + Enumerator should enumerate only formats that are supported for output (playback). + + + + + ACM_FORMATENUMF_SUGGEST + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate all suggested destination formats for the given pwfx format. This mechanism can be used instead of the acmFormatSuggest function to allow an application to choose the best suggested format for conversion. The dwFormatIndex member will always be set to zero on return. + + + + + ACM_FORMATENUMF_WBITSPERSAMPLE + The wBitsPerSample member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_WFORMATTAG + The wFormatTag member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. The dwFormatTag member of the ACMFORMATDETAILS structure must be equal to the wFormatTag member. + + + + + ACM_FORMATSUGGESTF_WFORMATTAG + + + + + ACM_FORMATSUGGESTF_NCHANNELS + + + + + ACM_FORMATSUGGESTF_NSAMPLESPERSEC + + + + + ACM_FORMATSUGGESTF_WBITSPERSAMPLE + + + + + ACM_FORMATSUGGESTF_TYPEMASK + + + + + ACM Format Tag + + + + + Format Tag Index + + + + + Format Tag + + + + + Format Size + + + + + Support Flags + + + + + Standard Formats Count + + + + + Format Description + + + + + DWORD cbStruct; + + + + + DWORD dwFormatTagIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD cbFormatSize; + + + + + DWORD fdwSupport; + + + + + DWORD cStandardFormats; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + ACMFORMATTAGDETAILS_FORMATTAG_CHARS + + + + + Interop definitions for Windows ACM (Audio Compression Manager) API + + + + + http://msdn.microsoft.com/en-us/library/dd742910%28VS.85%29.aspx + UINT ACMFORMATCHOOSEHOOKPROC acmFormatChooseHookProc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + + + + + http://msdn.microsoft.com/en-us/library/dd742916%28VS.85%29.aspx + MMRESULT acmFormatSuggest( + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + DWORD cbwfxDst, + DWORD fdwSuggest); + + + + + http://msdn.microsoft.com/en-us/library/dd742928%28VS.85%29.aspx + MMRESULT acmStreamOpen( + LPHACMSTREAM phas, + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + LPWAVEFILTER pwfltr, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + + + + + A version with pointers for troubleshooting + + + + + AcmStream encapsulates an Audio Compression Manager Stream + used to convert audio from one format to another + + + + + Creates a new ACM stream to convert one format to another. Note that + not all conversions can be done in one step + + The source audio format + The destination audio format + + + + Creates a new ACM stream to convert one format to another, using a + specified driver identified and wave filter + + the driver identifier + the source format + the wave filter + + + + Returns the number of output bytes for a given number of input bytes + + Number of input bytes + Number of output bytes + + + + Returns the number of source bytes for a given number of destination bytes + + Number of destination bytes + Number of source bytes + + + + Suggests an appropriate PCM format that the compressed format can be converted + to in one step + + The compressed format + The PCM format + + + + Returns the Source Buffer. Fill this with data prior to calling convert + + + + + Returns the Destination buffer. This will contain the converted data + after a successful call to Convert + + + + + Report that we have repositioned in the source stream + + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of source bytes actually converted + The number of converted bytes in the DestinationBuffer + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of converted bytes in the DestinationBuffer + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + ACMSTREAMHEADER_STATUSF_DONE + + + + + ACMSTREAMHEADER_STATUSF_PREPARED + + + + + ACMSTREAMHEADER_STATUSF_INQUEUE + + + + + Interop structure for ACM stream headers. + ACMSTREAMHEADER + http://msdn.microsoft.com/en-us/library/dd742926%28VS.85%29.aspx + + + + + ACM_STREAMOPENF_QUERY, ACM will be queried to determine whether it supports the given conversion. A conversion stream will not be opened, and no handle will be returned in the phas parameter. + + + + + ACM_STREAMOPENF_ASYNC, Stream conversion should be performed asynchronously. If this flag is specified, the application can use a callback function to be notified when the conversion stream is opened and closed and after each buffer is converted. In addition to using a callback function, an application can examine the fdwStatus member of the ACMSTREAMHEADER structure for the ACMSTREAMHEADER_STATUSF_DONE flag. + + + + + ACM_STREAMOPENF_NONREALTIME, ACM will not consider time constraints when converting the data. By default, the driver will attempt to convert the data in real time. For some formats, specifying this flag might improve the audio quality or other characteristics. + + + + + CALLBACK_TYPEMASK, callback type mask + + + + + CALLBACK_NULL, no callback + + + + + CALLBACK_WINDOW, dwCallback is a HWND + + + + + CALLBACK_TASK, dwCallback is a HTASK + + + + + CALLBACK_FUNCTION, dwCallback is a FARPROC + + + + + CALLBACK_THREAD, thread ID replaces 16 bit task + + + + + CALLBACK_EVENT, dwCallback is an EVENT Handle + + + + + ACM_STREAMSIZEF_SOURCE + + + + + ACM_STREAMSIZEF_DESTINATION + + + + + Summary description for WaveFilter. + + + + + cbStruct + + + + + dwFilterTag + + + + + fdwFilter + + + + + reserved + + + + + ADSR sample provider allowing you to specify attack, decay, sustain and release values + + + + + Creates a new AdsrSampleProvider with default values + + + + + Attack time in seconds + + + + + Release time in seconds + + + + + Reads audio from this sample provider + + + + + Enters the Release phase + + + + + The output WaveFormat + + + + + Sample Provider to concatenate multiple sample providers together + + + + + Creates a new ConcatenatingSampleProvider + + The source providers to play one after the other. Must all share the same sample rate and channel count + + + + The WaveFormat of this Sample Provider + + + + + Read Samples from this sample provider + + + + + Sample Provider to allow fading in and out + + + + + Creates a new FadeInOutSampleProvider + + The source stream with the audio to be faded in or out + If true, we start faded out + + + + Requests that a fade-in begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Requests that a fade-out begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Reads samples from this sample provider + + Buffer to read into + Offset within buffer to write to + Number of samples desired + Number of samples read + + + + WaveFormat of this SampleProvider + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing sample provider, allowing re-patching of input channels to different + output channels + + Input sample providers. Must all be of the same sample rate, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads samples from this sample provider + + Buffer to be filled with sample data + Offset into buffer to start writing to, usually 0 + Number of samples required + Number of samples read + + + + The output WaveFormat for this SampleProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Allows you to: + 1. insert a pre-delay of silence before the source begins + 2. skip over a certain amount of the beginning of the source + 3. only play a set amount from the source + 4. insert silence at the end after the source is complete + + + + + Number of samples of silence to insert before playing source + + + + + Amount of silence to insert before playing + + + + + Number of samples in source to discard + + + + + Amount of audio to skip over from the source before beginning playback + + + + + Number of samples to read from source (if 0, then read it all) + + + + + Amount of audio to take from the source (TimeSpan.Zero means play to end) + + + + + Number of samples of silence to insert after playing source + + + + + Amount of silence to insert after playing source + + + + + Creates a new instance of offsetSampleProvider + + The Source Sample Provider to read from + + + + The WaveFormat of this SampleProvider + + + + + Reads from this sample provider + + Sample buffer + Offset within sample buffer to read to + Number of samples required + Number of samples read + + + + Converts an IWaveProvider containing 32 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm32BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Utility class for converting to SampleProvider + + + + + Helper function to go from IWaveProvider to a SampleProvider + Must already be PCM or IEEE float + + The WaveProvider to convert + A sample provider + + + + Converts a sample provider to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts a sample provider to 24 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream, clipping if necessary + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + The Format of this IWaveProvider + + + + + + Volume of this channel. 1.0 = full scale, 0.0 to mute + + + + + Signal Generator + Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep. + + + Posibility to change ISampleProvider + Example : + --------- + WaveOut _waveOutGene = new WaveOut(); + WaveGenerator wg = new SignalGenerator(); + wg.Type = ... + wg.Frequency = ... + wg ... + _waveOutGene.Init(wg); + _waveOutGene.Play(); + + + + + Initializes a new instance for the Generator (Default :: 44.1Khz, 2 channels, Sinus, Frequency = 440, Gain = 1) + + + + + Initializes a new instance for the Generator (UserDef SampleRate & Channels) + + Desired sample rate + Number of channels + + + + The waveformat of this WaveProvider (same as the source) + + + + + Frequency for the Generator. (20.0 - 20000.0 Hz) + Sin, Square, Triangle, SawTooth, Sweep (Start Frequency). + + + + + Return Log of Frequency Start (Read only) + + + + + End Frequency for the Sweep Generator. (Start Frequency in Frequency) + + + + + Return Log of Frequency End (Read only) + + + + + Gain for the Generator. (0.0 to 1.0) + + + + + Channel PhaseReverse + + + + + Type of Generator. + + + + + Length Seconds for the Sweep Generator. + + + + + Reads from this provider. + + + + + Private :: Random for WhiteNoise & Pink Noise (Value form -1 to 1) + + Random value from -1 to +1 + + + + Signal Generator type + + + + + Pink noise + + + + + White noise + + + + + Sweep + + + + + Sine wave + + + + + Square wave + + + + + Triangle Wave + + + + + Sawtooth wave + + + + + Author: Freefall + Date: 05.08.16 + Based on: the port of Stephan M. Bernsee´s pitch shifting class + Port site: https://sites.google.com/site/mikescoderama/pitch-shifting + Test application and github site: https://github.com/Freefall63/NAudio-Pitchshifter + + NOTE: I strongly advice to add a Limiter for post-processing. + For my needs the FastAttackCompressor1175 provides acceptable results: + https://github.com/Jiyuu/SkypeFX/blob/master/JSNet/FastAttackCompressor1175.cs + + UPDATE: Added a simple Limiter based on the pydirac implementation. + https://github.com/echonest/remix/blob/master/external/pydirac225/source/Dirac_LE.cpp + + + + + + Creates a new SMB Pitch Shifting Sample Provider with default settings + + Source provider + + + + Creates a new SMB Pitch Shifting Sample Provider with custom settings + + Source provider + FFT Size (any power of two <= 4096: 4096, 2048, 1024, 512, ...) + Oversampling (number of overlapping windows) + Initial pitch (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + Read from this sample provider + + + + + WaveFormat + + + + + Pitch Factor (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + + Takes a stereo input and turns it to mono + + + + + Creates a new mono ISampleProvider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this SampleProvider + + + + + Helper class turning an already 64 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Fully managed resampling sample provider, based on the WDL Resampler + + + + + Constructs a new resampler + + Source to resample + Desired output sample rate + + + + Reads from this sample provider + + + + + Output WaveFormat + + + + + Sample provider interface to make WaveChannel32 extensible + Still a bit ugly, hence internal at the moment - and might even make these into + bit depth converting WaveProviders + + + + + A sample provider mixer, allowing inputs to be added and removed + + + + + Creates a new MixingSampleProvider, with no inputs, but a specified WaveFormat + + The WaveFormat of this mixer. All inputs must be in this format + + + + Creates a new MixingSampleProvider, based on the given inputs + + Mixer inputs - must all have the same waveformat, and must + all be of the same WaveFormat. There must be at least one input + + + + Returns the mixer inputs (read-only - use AddMixerInput to add an input + + + + + When set to true, the Read method always returns the number + of samples requested, even if there are no inputs, or if the + current inputs reach their end. Setting this to true effectively + makes this a never-ending sample provider, so take care if you plan + to write it out to a file. + + + + + Adds a WaveProvider as a Mixer input. + Must be PCM or IEEE float already + + IWaveProvider mixer input + + + + Adds a new mixer input + + Mixer input + + + + Raised when a mixer input has been removed because it has ended + + + + + Removes a mixer input + + Mixer input to remove + + + + Removes all mixer inputs + + + + + The output WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + SampleProvider event args + + + + + Constructs a new SampleProviderEventArgs + + + + + The Sample Provider + + + + + Converts a mono sample provider to stereo, with a customisable pan strategy + + + + + Initialises a new instance of the PanningSampleProvider + + Source sample provider, must be mono + + + + Pan value, must be between -1 (left) and 1 (right) + + + + + The pan strategy currently in use + + + + + The WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Pair of floating point values, representing samples or multipliers + + + + + Left value + + + + + Right value + + + + + Required Interface for a Panning Strategy + + + + + Gets the left and right multipliers for a given pan value + + Pan value from -1 to 1 + Left and right multipliers in a stereo sample pair + + + + Simplistic "balance" control - treating the mono input as if it was stereo + In the centre, both channels full volume. Opposite channel decays linearly + as balance is turned to to one side + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Square Root Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Sinus Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Linear Pan + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Simple SampleProvider that passes through audio unchanged and raises + an event every n samples with the maximum sample value from the period + for metering purposes + + + + + Number of Samples per notification + + + + + Raised periodically to inform the user of the max volume + + + + + Initialises a new instance of MeteringSampleProvider that raises 10 stream volume + events per second + + Source sample provider + + + + Initialises a new instance of MeteringSampleProvider + + source sampler provider + Number of samples between notifications + + + + The WaveFormat of this sample provider + + + + + Reads samples from this Sample Provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Event args for aggregated stream volume + + + + + Max sample values array (one for each channel) + + + + + Simple class that raises an event on every sample + + + + + Initializes a new instance of NotifyingSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Sample notifier + + + + + Very simple sample provider supporting adjustable gain + + + + + Initializes a new instance of VolumeSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Helper base class for classes converting to ISampleProvider + + + + + Source Wave Provider + + + + + Source buffer (to avoid constantly creating small buffers during playback) + + + + + Initialises a new instance of SampleProviderConverterBase + + Source Wave provider + + + + Wave format of this wave provider + + + + + Reads samples from the source wave provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Ensure the source buffer exists and is big enough + + Bytes required + + + + Helper class for when you need to convert back to an IWaveProvider from + an ISampleProvider. Keeps it as IEEE float + + + + + Initializes a new instance of the WaveProviderFloatToWaveProvider class + + Source wave provider + + + + Reads from this provider + + + + + The waveformat of this WaveProvider (same as the source) + + + + + No nonsense mono to stereo provider, no volume adjustment, + just copies input to left and right. + + + + + Initializes a new instance of MonoToStereoSampleProvider + + Source sample provider + + + + WaveFormat of this provider + + + + + Reads samples from this provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Multiplier for left channel (default is 1.0) + + + + + Multiplier for right channel (default is 1.0) + + + + + Helper class turning an already 32 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Converts an IWaveProvider containing 16 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm16BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Samples required + Number of samples read + + + + Converts an IWaveProvider containing 24 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm24BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 8 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm8BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples to read + Number of samples read + + + + Utility class that takes an IWaveProvider input at any bit depth + and exposes it as an ISampleProvider. Can turn mono inputs into stereo, + and allows adjusting of volume + (The eventual successor to WaveChannel32) + This class also serves as an example of how you can link together several simple + Sample Providers to form a more useful class. + + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + force mono inputs to become stereo + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + The WaveFormat of this Sample Provider + + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Raised periodically to inform the user of the max volume + (before the volume meter) + + + + + Useful extension methods to make switching between WaveAndSampleProvider easier + + + + + Converts a WaveProvider into a SampleProvider (only works for PCM) + + WaveProvider to convert + + + + + Allows sending a SampleProvider directly to an IWavePlayer without needing to convert + back to an IWaveProvider + + The WavePlayer + + + + + + Turns WaveFormatExtensible into a standard waveformat if possible + + Input wave format + A standard PCM or IEEE waveformat, or the original waveformat + + + + Converts a ISampleProvider to a IWaveProvider but still 32 bit float + + SampleProvider to convert + An IWaveProvider + + + + Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit + + SampleProvider to convert + A 16 bit IWaveProvider + + + + Concatenates one Sample Provider on the end of another + + The sample provider to play first + The sample provider to play next + A single sampleprovider to play one after the other + + + + Concatenates one Sample Provider on the end of another with silence inserted + + The sample provider to play first + Silence duration to insert between the two + The sample provider to play next + A single sample provider + + + + Skips over a specified amount of time (by consuming source stream) + + Source sample provider + Duration to skip over + A sample provider that skips over the specified amount of time + + + + Takes a specified amount of time from the source stream + + Source sample provider + Duration to take + A sample provider that reads up to the specified amount of time + + + + Converts a Stereo Sample Provider to mono, allowing mixing of channel volume + + Stereo Source Provider + Amount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + Amount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + A mono SampleProvider + + + + Converts a Mono ISampleProvider to stereo + + Mono Source Provider + Amount to mix to left channel (1.0 is full volume) + Amount to mix to right channel (1.0 is full volume) + + + + + Recording using waveIn api with event callbacks. + Use this for recording in non-gui applications + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + Channel Mode + + + + + Stereo + + + + + Joint Stereo + + + + + Dual Channel + + + + + Mono + + + + + An ID3v2 Tag + + + + + Reads an ID3v2 tag from a stream + + + + + Creates a new ID3v2 tag from a collection of key-value pairs. + + A collection of key-value pairs containing the tags to include in the ID3v2 tag. + A new ID3v2 tag + + + + Convert the frame size to a byte array. + + The frame body size. + + + + + Creates an ID3v2 frame for the given key-value pair. + + + + + + + + Gets the Id3v2 Header size. The size is encoded so that only 7 bits per byte are actually used. + + + + + + + Creates the Id3v2 tag header and returns is as a byte array. + + The Id3v2 frames that will be included in the file. This is used to calculate the ID3v2 tag size. + + + + + Creates the Id3v2 tag for the given key-value pairs and returns it in the a stream. + + + + + + + Raw data from this tag + + + + + Interface for MP3 frame by frame decoder + + + + + Decompress a single MP3 frame + + Frame to decompress + Output buffer + Offset within output buffer + Bytes written to output buffer + + + + Tell the decoder that we have repositioned + + + + + PCM format that we are converting into + + + + + Represents an MP3 Frame + + + + + Reads an MP3 frame from a stream + + input stream + A valid MP3 frame, or null if none found + + + Reads an MP3Frame from a stream + http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm has some good info + also see http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx + + A valid MP3 frame, or null if none found + + + + Constructs an MP3 frame + + + + + checks if the four bytes represent a valid header, + if they are, will parse the values into Mp3Frame + + + + + Sample rate of this frame + + + + + Frame length in bytes + + + + + Bit Rate + + + + + Raw frame data (includes header bytes) + + + + + MPEG Version + + + + + MPEG Layer + + + + + Channel Mode + + + + + The number of samples in this frame + + + + + The channel extension bits + + + + + The bitrate index (directly from the header) + + + + + Whether the Copyright bit is set + + + + + Whether a CRC is present + + + + + Not part of the MP3 frame itself - indicates where in the stream we found this header + + + + + MP3 Frame Decompressor using ACM + + + + + Creates a new ACM frame decompressor + + The MP3 source format + + + + Output format (PCM) + + + + + Decompresses a frame + + The MP3 frame + destination buffer + Offset within destination buffer + Bytes written into destination buffer + + + + Resets the MP3 Frame Decompressor after a reposition operation + + + + + Disposes of this MP3 frame decompressor + + + + + Finalizer ensuring that resources get released properly + + + + + MPEG Layer flags + + + + + Reserved + + + + + Layer 3 + + + + + Layer 2 + + + + + Layer 1 + + + + + MPEG Version Flags + + + + + Version 2.5 + + + + + Reserved + + + + + Version 2 + + + + + Version 1 + + + + + Represents a Xing VBR header + + + + + Load Xing Header + + Frame + Xing Header + + + + Sees if a frame contains a Xing header + + + + + Number of frames + + + + + Number of bytes + + + + + VBR Scale property + + + + + The MP3 frame + + + + ACM_METRIC_COUNT_DRIVERS + + + ACM_METRIC_COUNT_CODECS + + + ACM_METRIC_COUNT_CONVERTERS + + + ACM_METRIC_COUNT_FILTERS + + + ACM_METRIC_COUNT_DISABLED + + + ACM_METRIC_COUNT_HARDWARE + + + ACM_METRIC_COUNT_LOCAL_DRIVERS + + + ACM_METRIC_COUNT_LOCAL_CODECS + + + ACM_METRIC_COUNT_LOCAL_CONVERTERS + + + ACM_METRIC_COUNT_LOCAL_FILTERS + + + ACM_METRIC_COUNT_LOCAL_DISABLED + + + ACM_METRIC_HARDWARE_WAVE_INPUT + + + ACM_METRIC_HARDWARE_WAVE_OUTPUT + + + ACM_METRIC_MAX_SIZE_FORMAT + + + ACM_METRIC_MAX_SIZE_FILTER + + + ACM_METRIC_DRIVER_SUPPORT + + + ACM_METRIC_DRIVER_PRIORITY + + + + ACM_STREAMCONVERTF_BLOCKALIGN + + + + + ACM_STREAMCONVERTF_START + + + + + ACM_STREAMCONVERTF_END + + + + + WaveHeader interop structure (WAVEHDR) + http://msdn.microsoft.com/en-us/library/dd743837%28VS.85%29.aspx + + + + pointer to locked data buffer (lpData) + + + length of data buffer (dwBufferLength) + + + used for input only (dwBytesRecorded) + + + for client's use (dwUser) + + + assorted flags (dwFlags) + + + loop control counter (dwLoops) + + + PWaveHdr, reserved for driver (lpNext) + + + reserved for driver + + + + Wave Header Flags enumeration + + + + + WHDR_BEGINLOOP + This buffer is the first buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_DONE + Set by the device driver to indicate that it is finished with the buffer and is returning it to the application. + + + + + WHDR_ENDLOOP + This buffer is the last buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_INQUEUE + Set by Windows to indicate that the buffer is queued for playback. + + + + + WHDR_PREPARED + Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function. + + + + + WASAPI Loopback Capture + based on a contribution from "Pygmy" - http://naudio.codeplex.com/discussions/203605 + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Gets the default audio loopback capture device + + The default audio loopback capture device + + + + Capturing wave format + + + + + Specify loopback + + + + + Allows recording using the Windows waveIn APIs + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Creates a WaveIn device using the specified window handle for callbacks + + A valid window handle + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Called when we get a new buffer of recorded data + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + WaveInCapabilities structure (based on WAVEINCAPS2 from mmsystem.h) + http://msdn.microsoft.com/en-us/library/ms713726(VS.85).aspx + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Number of channels supported + + + + + The product name + + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name from the registry if supported + + + + + Event Args for WaveInStream event + + + + + Creates new WaveInEventArgs + + + + + Buffer containing recorded data. Note that it might not be completely + full. + + + + + The number of recorded bytes in Buffer. + + + + + MME Wave function interop + + + + + CALLBACK_NULL + No callback + + + + + CALLBACK_FUNCTION + dwCallback is a FARPROC + + + + + CALLBACK_EVENT + dwCallback is an EVENT handle + + + + + CALLBACK_WINDOW + dwCallback is a HWND + + + + + CALLBACK_THREAD + callback is a thread ID + + + + + WIM_OPEN + + + + + WIM_CLOSE + + + + + WIM_DATA + + + + + WOM_CLOSE + + + + + WOM_DONE + + + + + WOM_OPEN + + + + + WaveOutCapabilities structure (based on WAVEOUTCAPS2 from mmsystem.h) + http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutcaps_str.asp + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Optional functionality supported by the device + + + + + Number of channels supported + + + + + Whether playback control is supported + + + + + The product name + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Supported wave formats for WaveOutCapabilities + + + + + 11.025 kHz, Mono, 8-bit + + + + + 11.025 kHz, Stereo, 8-bit + + + + + 11.025 kHz, Mono, 16-bit + + + + + 11.025 kHz, Stereo, 16-bit + + + + + 22.05 kHz, Mono, 8-bit + + + + + 22.05 kHz, Stereo, 8-bit + + + + + 22.05 kHz, Mono, 16-bit + + + + + 22.05 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 48 kHz, Mono, 8-bit + + + + + 48 kHz, Stereo, 8-bit + + + + + 48 kHz, Mono, 16-bit + + + + + 48 kHz, Stereo, 16-bit + + + + + 96 kHz, Mono, 8-bit + + + + + 96 kHz, Stereo, 8-bit + + + + + 96 kHz, Mono, 16-bit + + + + + 96 kHz, Stereo, 16-bit + + + + + Flags indicating what features this WaveOut device supports + + + + supports pitch control (WAVECAPS_PITCH) + + + supports playback rate control (WAVECAPS_PLAYBACKRATE) + + + supports volume control (WAVECAPS_VOLUME) + + + supports separate left-right volume control (WAVECAPS_LRVOLUME) + + + (WAVECAPS_SYNC) + + + (WAVECAPS_SAMPLEACCURATE) + + + + GSM 610 + + + + + Creates a GSM 610 WaveFormat + For now hardcoded to 13kbps + + + + + Samples per block + + + + + Writes this structure to a BinaryWriter + + + + + IMA/DVI ADPCM Wave Format + Work in progress + + + + + parameterless constructor for Marshalling + + + + + Creates a new IMA / DVI ADPCM Wave Format + + Sample Rate + Number of channels + Bits Per Sample + + + + MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h + + + + + Wave format ID (wID) + + + + + Padding flags (fdwFlags) + + + + + Block Size (nBlockSize) + + + + + Frames per block (nFramesPerBlock) + + + + + Codec Delay (nCodecDelay) + + + + + Creates a new MP3 WaveFormat + + + + + Wave Format Padding Flags + + + + + MPEGLAYER3_FLAG_PADDING_ISO + + + + + MPEGLAYER3_FLAG_PADDING_ON + + + + + MPEGLAYER3_FLAG_PADDING_OFF + + + + + Wave Format ID + + + + MPEGLAYER3_ID_UNKNOWN + + + MPEGLAYER3_ID_MPEG + + + MPEGLAYER3_ID_CONSTANTFRAMESIZE + + + + DSP Group TrueSpeech + + + + + DSP Group TrueSpeech WaveFormat + + + + + Writes this structure to a BinaryWriter + + + + + Represents a Wave file format + + + + format type + + + number of channels + + + sample rate + + + for buffer estimation + + + block size of data + + + number of bits per sample of mono data + + + number of following bytes + + + + Creates a new PCM 44.1Khz stereo 16 bit format + + + + + Creates a new 16 bit wave format with the specified sample + rate and channel count + + Sample Rate + Number of channels + + + + Gets the size of a wave buffer equivalent to the latency in milliseconds. + + The milliseconds. + + + + + Creates a WaveFormat with custom members + + The encoding + Sample Rate + Number of channels + Average Bytes Per Second + Block Align + Bits Per Sample + + + + + Creates an A-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a Mu-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a new PCM format with the specified sample rate, bit depth and channels + + + + + Creates a new 32 bit IEEE floating point wave format + + sample rate + number of channels + + + + Helper function to retrieve a WaveFormat structure from a pointer + + WaveFormat structure + + + + + Helper function to marshal WaveFormat to an IntPtr + + WaveFormat + IntPtr to WaveFormat structure (needs to be freed by callee) + + + + Reads in a WaveFormat (with extra data) from a fmt chunk (chunk identifier and + length should already have been read) + + Binary reader + Format chunk length + A WaveFormatExtraData + + + + Reads a new WaveFormat object from a stream + + A binary reader that wraps the stream + + + + Reports this WaveFormat as a string + + String describing the wave format + + + + Compares with another WaveFormat object + + Object to compare to + True if the objects are the same + + + + Provides a Hashcode for this WaveFormat + + A hashcode + + + + Returns the encoding type used + + + + + Writes this WaveFormat object to a stream + + the output stream + + + + Returns the number of channels (1=mono,2=stereo etc) + + + + + Returns the sample rate (samples per second) + + + + + Returns the average number of bytes used per second + + + + + Returns the block alignment + + + + + Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8) + Can be 0 for some codecs + + + + + Returns the number of extra bytes used by this waveformat. Often 0, + except for compressed formats which store extra data after the WAVEFORMATEX header + + + + + Microsoft ADPCM + See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm + + + + + Empty constructor needed for marshalling from a pointer + + + + + Samples per block + + + + + Number of coefficients + + + + + Coefficients + + + + + Microsoft ADPCM + + Sample Rate + Channels + + + + Serializes this wave format + + Binary writer + + + + String Description of this WaveFormat + + + + + Custom marshaller for WaveFormat structures + + + + + Gets the instance of this marshaller + + + + + + + Clean up managed data + + + + + Clean up native data + + + + + + Get native data size + + + + + Marshal managed to native + + + + + Marshal Native to Managed + + + + + Summary description for WaveFormatEncoding. + + + + WAVE_FORMAT_UNKNOWN, Microsoft Corporation + + + WAVE_FORMAT_PCM Microsoft Corporation + + + WAVE_FORMAT_ADPCM Microsoft Corporation + + + WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation + + + WAVE_FORMAT_VSELP Compaq Computer Corp. + + + WAVE_FORMAT_IBM_CVSD IBM Corporation + + + WAVE_FORMAT_ALAW Microsoft Corporation + + + WAVE_FORMAT_MULAW Microsoft Corporation + + + WAVE_FORMAT_DTS Microsoft Corporation + + + WAVE_FORMAT_DRM Microsoft Corporation + + + WAVE_FORMAT_WMAVOICE9 + + + WAVE_FORMAT_OKI_ADPCM OKI + + + WAVE_FORMAT_DVI_ADPCM Intel Corporation + + + WAVE_FORMAT_IMA_ADPCM Intel Corporation + + + WAVE_FORMAT_MEDIASPACE_ADPCM Videologic + + + WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp + + + WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation + + + WAVE_FORMAT_DIGISTD DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. + + + WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation + + + WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. + + + WAVE_FORMAT_CU_CODEC Hewlett-Packard Company + + + WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America + + + WAVE_FORMAT_SONARC Speech Compression + + + WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc + + + WAVE_FORMAT_ECHOSC1 Echo Speech Corporation + + + WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. + + + WAVE_FORMAT_APTX Audio Processing Technology + + + WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. + + + WAVE_FORMAT_PROSODY_1612, Aculab plc + + + WAVE_FORMAT_LRC, Merging Technologies S.A. + + + WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories + + + WAVE_FORMAT_GSM610, Microsoft Corporation + + + WAVE_FORMAT_MSNAUDIO, Microsoft Corporation + + + WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation + + + WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited + + + WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. + + + WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_MPEG, Microsoft Corporation + + + + + + + + + WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_GSM + + + WAVE_FORMAT_G729 + + + WAVE_FORMAT_G723 + + + WAVE_FORMAT_ACELP + + + + WAVE_FORMAT_RAW_AAC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation + + + + + Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation + + + + + Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS + + + + + Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + + Source wmCodec.h + + + + MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral SBR or PS tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + NOKIA_MPEG_ADTS_AAC + Source wmCodec.h + + + NOKIA_MPEG_RAW_AAC + Source wmCodec.h + + + VODAFONE_MPEG_ADTS_AAC + Source wmCodec.h + + + VODAFONE_MPEG_RAW_AAC + Source wmCodec.h + + + + High-Efficiency Advanced Audio Coding (HE-AAC) stream. + The format block is an HEAACWAVEFORMAT structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + WAVE_FORMAT_DVM + + + WAVE_FORMAT_VORBIS1 "Og" Original stream compatible + + + WAVE_FORMAT_VORBIS2 "Pg" Have independent header + + + WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header + + + WAVE_FORMAT_VORBIS1P "og" Original stream compatible + + + WAVE_FORMAT_VORBIS2P "pg" Have independent headere + + + WAVE_FORMAT_VORBIS3P "qg" Have no codebook header + + + WAVE_FORMAT_EXTENSIBLE + + + + + + + WaveFormatExtensible + http://www.microsoft.com/whdc/device/audio/multichaud.mspx + + + + + Parameterless constructor for marshalling + + + + + Creates a new WaveFormatExtensible for PCM or IEEE + + + + + WaveFormatExtensible for PCM or floating point can be awkward to work with + This creates a regular WaveFormat structure representing the same audio format + Returns the WaveFormat unchanged for non PCM or IEEE float + + + + + + SubFormat (may be one of AudioMediaSubtypes) + + + + + Serialize + + + + + + String representation + + + + + This class used for marshalling from unmanaged code + + + + + Allows the extra data to be read + + + + + parameterless constructor for marshalling + + + + + Reads this structure from a BinaryReader + + + + + Writes this structure to a BinaryWriter + + + + + The WMA wave format. + May not be much use because WMA codec is a DirectShow DMO not an ACM + + + + + Generic interface for wave recording + + + + + Recording WaveFormat + + + + + Start Recording + + + + + Stop Recording + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + This class writes audio data to a .aif file on disk + + + + + Creates an Aiff file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Aiff File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + AiffFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new AiffFileWriter + + The filename to write to + The Wave Format of the output data + + + + The aiff file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this aiff file + + + + + Returns false: Cannot read from a AiffFileWriter + + + + + Returns true: Can write to a AiffFileWriter + + + + + Returns false: Cannot seek within a AiffFileWriter + + + + + Read is not supported for a AiffFileWriter + + + + + Seek is not supported for a AiffFileWriter + + + + + SetLength is not supported for AiffFileWriter + + + + + + Gets the Position in the AiffFile (i.e. number of bytes written so far) + + + + + Appends bytes to the AiffFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Aiff file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Aiff file + They will be converted to the appropriate bit depth depending on the WaveFormat of the AIF file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Aiff file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this AiffFileWriter + + + + + Raised when ASIO data has been recorded. + It is important to handle this as quickly as possible as it is in the buffer callback + + + + + Initialises a new instance of AsioAudioAvailableEventArgs + + Pointers to the ASIO buffers for each channel + Pointers to the ASIO buffers for each channel + Number of samples in each buffer + Audio format within each buffer + + + + Pointer to a buffer per input channel + + + + + Pointer to a buffer per output channel + Allows you to write directly to the output buffers + If you do so, set SamplesPerBuffer = true, + and make sure all buffers are written to with valid data + + + + + Set to true if you have written to the output buffers + If so, AsioOut will not read from its source + + + + + Number of samples in each buffer + + + + + Converts all the recorded audio into a buffer of 32 bit floating point samples, interleaved by channel + + The samples as 32 bit floating point, interleaved + + + + Audio format within each buffer + Most commonly this will be one of, Int32LSB, Int16LSB, Int24LSB or Float32LSB + + + + + Gets as interleaved samples, allocating a float array + + The samples as 32 bit floating point values + + + + ASIO Out Player. New implementation using an internal C# binding. + + This implementation is only supporting Short16Bit and Float32Bit formats and is optimized + for 2 outputs channels . + SampleRate is supported only if AsioDriver is supporting it + + This implementation is probably the first AsioDriver binding fully implemented in C#! + + Original Contributor: Mark Heath + New Contributor to C# binding : Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Playback Stopped + + + + + When recording, fires whenever recorded audio is available + + + + + Initializes a new instance of the class with the first + available ASIO Driver. + + + + + Initializes a new instance of the class with the driver name. + + Name of the device. + + + + Opens an ASIO output device + + Device number (zero based) + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Dispose + + + + + Gets the names of the installed ASIO Driver. + + an array of driver names + + + + Determines whether ASIO is supported. + + + true if ASIO is supported; otherwise, false. + + + + + Inits the driver from the asio driver name. + + Name of the driver. + + + + Shows the control panel + + + + + Starts playback + + + + + Stops playback + + + + + Pauses playback + + + + + Initialises to play + + Source wave provider + + + + Initialises to play, with optional recording + + Source wave provider - set to null for record only + Number of channels to record + Specify sample rate here if only recording, ignored otherwise + + + + driver buffer update callback to fill the wave buffer. + + The input channels. + The output channels. + + + + Gets the latency (in ms) of the playback driver + + + + + Playback State + + + + + Driver Name + + + + + The number of output channels we are currently using for playback + (Must be less than or equal to DriverOutputChannelCount) + + + + + The number of input channels we are currently recording from + (Must be less than or equal to DriverInputChannelCount) + + + + + The maximum number of input channels this ASIO driver supports + + + + + The maximum number of output channels this ASIO driver supports + + + + + The number of samples per channel, per buffer. + + + + + By default the first channel on the input WaveProvider is sent to the first ASIO output. + This option sends it to the specified channel number. + Warning: make sure you don't set it higher than the number of available output channels - + the number of source channels. + n.b. Future NAudio may modify this + + + + + Input channel offset (used when recording), allowing you to choose to record from just one + specific input rather than them all + + + + + Sets the volume (1.0 is unity gain) + Not supported for ASIO Out. Set the volume on the input stream instead + + + + + Get the input channel name + + channel index (zero based) + channel name + + + + Get the output channel name + + channel index (zero based) + channel name + + + + A wave file writer that adds cue support + + + + + Writes a wave file, including a cues chunk + + + + + Adds a cue to the Wave file + + Sample position + Label text + + + + Updates the header, and writes the cues out + + + + + Media Foundation Encoder class allows you to use Media Foundation to encode an IWaveProvider + to any supported encoding format + + + + + Queries the available bitrates for a given encoding output type, sample rate and number of channels + + Audio subtype - a value from the AudioSubtypes class + The sample rate of the PCM to encode + The number of channels of the PCM to encode + An array of available bitrates in average bits per second + + + + Gets all the available media types for a particular + + Audio subtype - a value from the AudioSubtypes class + An array of available media types that can be encoded with this subtype + + + + Helper function to simplify encoding Window Media Audio + Should be supported on Vista and above (not tested) + + Input provider, must be PCM + Output file path, should end with .wma + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to MP3 + By default, will only be available on Windows 8 and above + + Input provider, must be PCM + Output file path, should end with .mp3 + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to AAC + By default, will only be available on Windows 7 and above + + Input provider, must be PCM + Output file path, should end with .mp4 (or .aac on Windows 8) + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Tries to find the encoding media type with the closest bitrate to that specified + + Audio subtype, a value from AudioSubtypes + Your encoder input format (used to check sample rate and channel count) + Your desired bitrate + The closest media type, or null if none available + + + + Creates a new encoder that encodes to the specified output media type + + Desired output media type + + + + Encodes a file + + Output filename (container type is deduced from the filename) + Input provider (should be PCM, some encoders will also allow IEEE float) + + + + Disposes this instance + + + + + + Disposes this instance + + + + + Finalizer + + + + + Stopped Event Args + + + + + Initializes a new instance of StoppedEventArgs + + An exception to report (null if no exception) + + + + An exception. Will be null if the playback or record operation stopped + + + + + IWaveBuffer interface use to store wave datas. + Data can be manipulated with arrays (,, + , ) that are pointing to the same memory buffer. + This is a requirement for all subclasses. + + Use the associated Count property based on the type of buffer to get the number of data in the + buffer. + + for the standard implementation using C# unions. + + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets the byte buffer count. + + The byte buffer count. + + + + Gets the float buffer count. + + The float buffer count. + + + + Gets the short buffer count. + + The short buffer count. + + + + Gets the int buffer count. + + The int buffer count. + + + + Represents the interface to a device that can play a WaveFile + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + The volume 1.0 is full scale + + + + + Indicates that playback has gone into a stopped state due to + reaching the end of the input stream or an error has been encountered during playback + + + + + Interface for IWavePlayers that can report position + + + + + Position (in terms of bytes played - does not necessarily) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Generic interface for all WaveProviders. + + + + + Gets the WaveFormat of this WaveProvider. + + The wave format. + + + + Fill the specified buffer with wave data. + + The buffer to fill of wave data. + Offset into buffer + The number of bytes to read + the number of bytes written to the buffer. + + + + NativeDirectSoundOut using DirectSound COM interop. + Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr + Modified by: Graham "Gee" Plumb + + + + + Playback Stopped + + + + + Gets the DirectSound output devices in the system + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + (40ms seems to work under Vista). + + The latency. + Selected device + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets the current position from the wave output device. + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + + The volume 1.0 is full scale + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Determines whether the SecondaryBuffer is lost. + + + true if [is buffer lost]; otherwise, false. + + + + + Convert ms to bytes size according to WaveFormat + + The ms + number of byttes + + + + Processes the samples in a separate thread. + + + + + Stop playback + + + + + Feeds the SecondaryBuffer with the WaveStream + + number of bytes to feed + + + + IDirectSound interface + + + + + IDirectSoundBuffer interface + + + + + IDirectSoundNotify interface + + + + + Instanciate DirectSound from the DLL + + The GUID. + The direct sound. + The p unk outer. + + + + DirectSound default playback device GUID + + + + + DirectSound default capture device GUID + + + + + DirectSound default device for voice playback + + + + + DirectSound default device for voice capture + + + + + The DSEnumCallback function is an application-defined callback function that enumerates the DirectSound drivers. + The system calls this function in response to the application's call to the DirectSoundEnumerate or DirectSoundCaptureEnumerate function. + + Address of the GUID that identifies the device being enumerated, or NULL for the primary device. This value can be passed to the DirectSoundCreate8 or DirectSoundCaptureCreate8 function to create a device object for that driver. + Address of a null-terminated string that provides a textual description of the DirectSound device. + Address of a null-terminated string that specifies the module name of the DirectSound driver corresponding to this device. + Address of application-defined data. This is the pointer passed to DirectSoundEnumerate or DirectSoundCaptureEnumerate as the lpContext parameter. + Returns TRUE to continue enumerating drivers, or FALSE to stop. + + + + The DirectSoundEnumerate function enumerates the DirectSound drivers installed in the system. + + callback function + User context + + + + Gets the HANDLE of the desktop window. + + HANDLE of the Desktop window + + + + Class for enumerating DirectSound devices + + + + + The device identifier + + + + + Device description + + + + + Device module name + + + + + Like IWaveProvider, but makes it much simpler to put together a 32 bit floating + point mixing engine + + + + + Gets the WaveFormat of this Sample Provider. + + The wave format. + + + + Fill the specified buffer with 32 bit floating point samples + + The buffer to fill with samples. + Offset into buffer + The number of samples to read + the number of samples written to the buffer. + + + + Playback State + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + Support for playback using Wasapi + + + + + Playback Stopped + + + + + WASAPI Out shared mode, defauult + + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + Desired latency in milliseconds + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Creates a new WASAPI Output + + Device to use + + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Begin Playback + + + + + Stop playback and flush buffers + + + + + Stop playback without flushing buffers + + + + + Initialize for playing the specified wave stream + + IWaveProvider to play + + + + Playback State + + + + + Volume + + + + + Retrieve the AudioStreamVolume object for this audio stream + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Dispose + + + + + WaveBuffer class use to store wave datas. Data can be manipulated with arrays + (,,, ) that are pointing to the + same memory buffer. Use the associated Count property based on the type of buffer to get the number of + data in the buffer. + Implicit casting is now supported to float[], byte[], int[], short[]. + You must not use Length on returned arrays. + + n.b. FieldOffset is 8 now to allow it to work natively on 64 bit + + + + + Number of Bytes + + + + + Initializes a new instance of the class. + + The number of bytes. The size of the final buffer will be aligned on 4 Bytes (upper bound) + + + + Initializes a new instance of the class binded to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Binds this WaveBuffer instance to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets or sets the byte buffer count. + + The byte buffer count. + + + + Gets or sets the float buffer count. + + The float buffer count. + + + + Gets or sets the short buffer count. + + The short buffer count. + + + + Gets or sets the int buffer count. + + The int buffer count. + + + + Clears the associated buffer. + + + + + Copy this WaveBuffer to a destination buffer up to ByteBufferCount bytes. + + + + + Checks the validity of the count parameters. + + Name of the arg. + The value. + The size of value. + + + + Wave Callback Info + + + + + Callback Strategy + + + + + Window Handle (if applicable) + + + + + Sets up a new WaveCallbackInfo for function callbacks + + + + + Sets up a new WaveCallbackInfo to use a New Window + IMPORTANT: only use this on the GUI thread + + + + + Sets up a new WaveCallbackInfo to use an existing window + IMPORTANT: only use this on the GUI thread + + + + + Wave Callback Strategy + + + + + Use a function + + + + + Create a new window (should only be done if on GUI thread) + + + + + Use an existing window handle + + + + + Use an event handle + + + + + This class writes WAV data to a .wav file on disk + + + + + Creates a 16 bit Wave File from an ISampleProvider + BEWARE: the source provider must not return data indefinitely + + The filename to write to + The source sample provider + + + + Creates a Wave file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + Writes to a stream by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The stream the method will output to + The source WaveProvider + + + + WaveFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new WaveFileWriter + + The filename to write to + The Wave Format of the output data + + + + The wave file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this wave file + + + + + Returns false: Cannot read from a WaveFileWriter + + + + + Returns true: Can write to a WaveFileWriter + + + + + Returns false: Cannot seek within a WaveFileWriter + + + + + Read is not supported for a WaveFileWriter + + + + + Seek is not supported for a WaveFileWriter + + + + + SetLength is not supported for WaveFileWriter + + + + + + Gets the Position in the WaveFile (i.e. number of bytes written so far) + + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Wave file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Wave file + They will be converted to the appropriate bit depth depending on the WaveFormat of the WAV file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + Also updates header, so that WAV file will be valid up to the point currently written + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this WaveFileWriter + + + + + Represents a wave out device + + + + + Indicates playback has stopped automatically + + + + + Retrieves the capabilities of a waveOut device + + Device to test + The WaveOut device capabilities + + + + Returns the number of Wave Out devices available in the system + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Creates a default WaveOut device + Will use window callbacks if called from a GUI thread, otherwise function + callbacks + + + + + Creates a WaveOut device using the specified window handle for callbacks + + A valid window handle + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Volume for this device 1.0 is full scale + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Alternative WaveOut class, making use of the Event callback + + + + + Indicates playback has stopped automatically + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Obsolete property + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Provides a buffered store of samples + Read method will return queued samples or fill buffer with zeroes + Now backed by a circular buffer + + + + + Creates a new buffered WaveProvider + + WaveFormat + + + + If true, always read the amount of data requested, padding with zeroes if necessary + By default is set to true + + + + + Buffer length in bytes + + + + + Buffer duration + + + + + If true, when the buffer is full, start throwing away data + if false, AddSamples will throw an exception when buffer is full + + + + + The number of buffered bytes + + + + + Buffered Duration + + + + + Gets the WaveFormat + + + + + Adds samples. Takes a copy of buffer, so that buffer can be reused if necessary + + + + + Reads from this WaveProvider + Will always return count bytes, since we will zero-fill the buffer if not enough available + + + + + Discards all audio from the buffer + + + + + The Media Foundation Resampler Transform + + + + + Creates the Media Foundation Resampler, allowing modifying of sample rate, bit depth and channel count + + Source provider, must be PCM + Output format, must also be PCM + + + + Creates a resampler with a specified target output sample rate + + Source provider + Output sample rate + + + + Creates and configures the actual Resampler transform + + A newly created and configured resampler MFT + + + + Gets or sets the Resampler quality. n.b. set the quality before starting to resample. + 1 is lowest quality (linear interpolation) and 60 is best quality + + + + + Disposes this resampler + + + + + WaveProvider that can mix together multiple 32 bit floating point input provider + All channels must have the same number of inputs and same sample rate + n.b. Work in Progress - not tested yet + + + + + Creates a new MixingWaveProvider32 + + + + + Creates a new 32 bit MixingWaveProvider32 + + inputs - must all have the same format. + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove an input from the mixer + + waveProvider to remove + + + + The number of inputs to this mixer + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing wave provider, allowing re-patching of input channels to different + output channels + + Input wave providers. Must all be of the same format, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads data from this WaveProvider + + Buffer to be filled with sample data + Offset to write to within buffer, usually 0 + Number of bytes required + Number of bytes read + + + + The WaveFormat of this WaveProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Silence producing wave provider + Useful for playing silence when doing a WASAPI Loopback Capture + + + + + Creates a new silence producing wave provider + + Desired WaveFormat (should be PCM / IEE float + + + + Read silence from into the buffer + + + + + WaveFormat of this silence producing wave provider + + + + + Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together + + + + + Creates a new mono waveprovider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels + + + + + Creates a new stereo waveprovider based on a mono input + + Mono 16 bit PCM input + + + + 1.0 to copy the mono stream to the left channel without adjusting volume + + + + + 1.0 to copy the mono stream to the right channel without adjusting volume + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float + + + + + Constructs a new VolumeWaveProvider16 + + Source provider, must be 16 bit PCM + + + + Gets or sets volume. + 1.0 is full scale, 0.0 is silence, anything over 1.0 will amplify but potentially clip + + + + + WaveFormat of this WaveProvider + + + + + Read bytes from this WaveProvider + + Buffer to read into + Offset within buffer to read to + Bytes desired + Bytes read + + + + Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Creates a new WaveFloatTo16Provider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way + + + + + Creates a new Wave16toFloatProvider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Buffered WaveProvider taking source data from WaveIn + + + + + Creates a new WaveInProvider + n.b. Should make sure the WaveFormat is set correctly on IWaveIn before calling + + The source of wave data + + + + Reads data from the WaveInProvider + + + + + The WaveFormat + + + + + Base class for creating a 16 bit wave provider + + + + + Initializes a new instance of the WaveProvider16 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider16 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a short array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Base class for creating a 32 bit floating point wave provider + Can also be used as a base class for an ISampleProvider that can + be plugged straight into anything requiring an IWaveProvider + + + + + Initializes a new instance of the WaveProvider32 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider32 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a float array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Utility class to intercept audio from an IWaveProvider and + save it to disk + + + + + Constructs a new WaveRecorder + + The location to write the WAV file to + The Source Wave Provider + + + + Read simply returns what the source returns, but writes to disk along the way + + + + + The WaveFormat + + + + + Closes the WAV file + + + + A read-only stream of AIFF data based on an aiff file + with an associated WaveFormat + originally contributed to NAudio by Giawa + + + + Supports opening a AIF file + The AIF is of similar nastiness to the WAV format. + This supports basic reading of uncompressed PCM AIF files, + with 8, 16, 24 and 32 bit PCM data. + + + + + Creates an Aiff File Reader based on an input stream + + The input stream containing a AIF file including header + + + + Ensures valid AIFF header and then finds data offset. + + The stream, positioned at the start of audio data + The format found + The position of the data chunk + The length of the data chunk + Additional chunks found + + + + Cleans up the resources associated with this AiffFileReader + + + + + + + + + + + + + + + Number of Samples (if possible to calculate) + + + + + Position in the AIFF file + + + + + + Reads bytes from the AIFF File + + + + + + AIFF Chunk + + + + + Chunk Name + + + + + Chunk Length + + + + + Chunk start + + + + + Creates a new AIFF Chunk + + + + + AudioFileReader simplifies opening an audio file in NAudio + Simply pass in the filename, and it will attempt to open the + file and set up a conversion path that turns into PCM IEEE float. + ACM codecs will be used for conversion. + It provides a volume property and implements both WaveStream and + ISampleProvider, making it possibly the only stage in your audio + pipeline necessary for simple playback scenarios + + + + + Initializes a new instance of AudioFileReader + + The file to open + + + + Creates the reader stream, supporting all filetypes in the core NAudio library, + and ensuring we are in PCM format + + File Name + + + + File Name + + + + + WaveFormat of this stream + + + + + Length of this stream (in bytes) + + + + + Position of this stream (in bytes) + + + + + Reads from this wave stream + + Audio buffer + Offset into buffer + Number of bytes required + Number of bytes read + + + + Reads audio from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Gets or Sets the Volume of this AudioFileReader. 1.0f is full volume + + + + + Helper to convert source to dest bytes + + + + + Helper to convert dest to source bytes + + + + + Disposes this AudioFileReader + + True if called from Dispose + + + + Helper stream that lets us read from compressed audio files with large block alignment + as though we could read any amount and reposition anywhere + + + + + Creates a new BlockAlignReductionStream + + the input stream + + + + Block alignment of this stream + + + + + Wave Format + + + + + Length of this Stream + + + + + Current position within stream + + + + + Disposes this WaveStream + + + + + Reads data from this stream + + + + + + + + + Implementation of Com IStream + + + + + Holds information on a cue: a labeled position within a Wave file + + + + + Cue position in samples + + + + + Label of the cue + + + + + Creates a Cue based on a sample position and label + + + + + + + Holds a list of cues + + + The specs for reading and writing cues from the cue and list RIFF chunks + are from http://www.sonicspot.com/guide/wavefiles.html and http://www.wotsit.org/ + ------------------------------ + The cues are stored like this: + ------------------------------ + struct CuePoint + { + Int32 dwIdentifier; + Int32 dwPosition; + Int32 fccChunk; + Int32 dwChunkStart; + Int32 dwBlockStart; + Int32 dwSampleOffset; + } + + struct CueChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwCuePoints; + CuePoint[] points; + } + ------------------------------ + Labels look like this: + ------------------------------ + struct ListHeader + { + Int32 listID; /* 'list' */ + Int32 chunkSize; /* includes the Type ID below */ + Int32 typeID; /* 'adtl' */ + } + + struct LabelChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwIdentifier; + Char[] dwText; /* Encoded with extended ASCII */ + } LabelChunk; + + + + + Creates an empty cue list + + + + + Adds an item to the list + + Cue + + + + Gets sample positions for the embedded cues + + Array containing the cue positions + + + + Gets labels for the embedded cues + + Array containing the labels + + + + Creates a cue list from the cue RIFF chunk and the list RIFF chunk + + The data contained in the cue chunk + The data contained in the list chunk + + + + Gets the cues as the concatenated cue and list RIFF chunks. + + RIFF chunks containing the cue data + + + + Number of cues + + + + + Accesses the cue at the specified index + + + + + + + Checks if the cue and list chunks exist and if so, creates a cue list + + + + + A wave file reader supporting cue reading + + + + + Loads a wavefile and supports reading cues + + + + + + Cue List (can be null if cues not present) + + + + + An interface for WaveStreams which can report notification of individual samples + + + + + A sample has been detected + + + + + Sample event arguments + + + + + Left sample + + + + + Right sample + + + + + Constructor + + + + + Class for reading any file that Media Foundation can play + Will only work in Windows Vista and above + Automatically converts to PCM + If it is a video file with multiple audio streams, it will pick out the first audio stream + + + + + Allows customisation of this reader class + + + + + Sets up the default settings for MediaFoundationReader + + + + + Allows us to request IEEE float output (n.b. no guarantee this will be accepted) + + + + + If true, the reader object created in the constructor is used in Read + Should only be set to true if you are working entirely on an STA thread, or + entirely with MTA threads. + + + + + If true, the reposition does not happen immediately, but waits until the + next call to read to be processed. + + + + + Default constructor + + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename (can also be a URL e.g. http:// mms:// file://) + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename + Advanced settings + + + + Initializes + + + + + Creates the reader (overridable by ) + + + + + Reads from this wave stream + + Buffer to read into + Offset in buffer + Bytes required + Number of bytes read; 0 indicates end of stream + + + + WaveFormat of this stream (n.b. this is after converting to PCM) + + + + + The bytesRequired of this stream in bytes (n.b may not be accurate) + + + + + Current position within this stream + + + + + Cleans up after finishing with this reader + + true if called from Dispose + + + + WaveFormat has changed + + + + + Class for reading from MP3 files + + + + + The MP3 wave format (n.b. NOT the output format of this stream - see the WaveFormat property) + + + + Supports opening a MP3 file + + + Supports opening a MP3 file + MP3 File name + Factory method to build a frame decompressor + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + Factory method to build a frame decompressor + + + + Function that can create an MP3 Frame decompressor + + A WaveFormat object describing the MP3 file format + An MP3 Frame decompressor + + + + Creates an ACM MP3 Frame decompressor. This is the default with NAudio + + A WaveFormat object based + + + + + Gets the total length of this file in milliseconds. + + + + + ID3v2 tag if present + + + + + ID3v1 tag if present + + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + This is the length in bytes of data available to be read out from the Read method + (i.e. the decompressed MP3 length) + n.b. this may return 0 for files whose length is unknown + + + + + + + + + + + + + + + Reads decompressed PCM data from our MP3 file. + + + + + Xing header if present + + + + + Disposes this WaveStream + + + + + WaveStream that simply passes on data from its source stream + (e.g. a MemoryStream) + + + + + Initialises a new instance of RawSourceWaveStream + + The source stream containing raw audio + The waveformat of the audio in the source stream + + + + Initialises a new instance of RawSourceWaveStream + + The buffer containing raw audio + Offset in the source buffer to read from + Number of bytes to read in the buffer + The waveformat of the audio in the source stream + + + + The WaveFormat of this stream + + + + + The length in bytes of this stream (if supported) + + + + + The current position in this stream + + + + + Reads data from the stream + + + + + Wave Stream for converting between sample rates + + + + + WaveStream to resample using the DMO Resampler + + Input Stream + Desired Output Format + + + + Stream Wave Format + + + + + Stream length in bytes + + + + + Stream position in bytes + + + + + Reads data from input stream + + buffer + offset into buffer + Bytes required + Number of bytes read + + + + Dispose + + True if disposing (not from finalizer) + + + + Holds information about a RIFF file chunk + + + + + Creates a RiffChunk object + + + + + The chunk identifier + + + + + The chunk identifier converted to a string + + + + + The chunk length + + + + + The stream position this chunk is located at + + + + + A simple compressor + + + + + Create a new simple compressor stream + + Source stream + + + + Make-up Gain + + + + + Threshold + + + + + Ratio + + + + + Attack time + + + + + Release time + + + + + Determine whether the stream has the required amount of data. + + Number of bytes of data required from the stream. + Flag indicating whether the required amount of data is avialable. + + + + Turns gain on or off + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Gets the WaveFormat of this stream + + + + + Reads bytes from this stream + + Buffer to read into + Offset in array to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Gets the block alignment for this stream + + + + + MediaFoundationReader supporting reading from a stream + + + + + Constructs a new media foundation reader from a stream + + + + + Creates the reader + + + + + WaveStream that converts 32 bit audio back down to 16 bit, clipping if necessary + + + + + The method reuses the same buffer to prevent + unnecessary allocations. + + + + + Creates a new Wave32To16Stream + + the source stream + + + + Sets the volume for this stream. 1.0f is full scale + + + + + + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + Destination buffer + Offset into destination buffer + + Number of bytes read. + + + + Conversion to 16 bit and clipping + + + + + + + + + + Clip indicator. Can be reset. + + + + + Disposes this WaveStream + + + + + Represents Channel for the WaveMixerStream + 32 bit output and 16 bit input + It's output is always stereo + The input stream can be panned + + + + + Creates a new WaveChannel32 + + the source stream + stream volume (1 is 0dB) + pan control (-1 to 1) + + + + Creates a WaveChannel32 with default settings + + The source stream + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + If true, Read always returns the number of bytes requested + + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Pan of this channel (from -1 to 1) + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Sample + + + + + Raise the sample event (no check for null because it has already been done) + + + + This class supports the reading of WAV files, + providing a repositionable WaveStream that returns the raw data + contained in the WAV file + + + + Supports opening a WAV file + The WAV file format is a real mess, but we will only + support the basic WAV file format which actually covers the vast + majority of WAV files out there. For more WAV file format information + visit www.wotsit.org. If you have a WAV file that can't be read by + this class, email it to the NAudio project and we will probably + fix this reader to support it + + + + + Creates a Wave File Reader based on an input stream + + The input stream containing a WAV file including header + + + + Gets a list of the additional chunks found in this file + + + + + Gets the data for the specified chunk + + + + + Cleans up the resources associated with this WaveFileReader + + + + + + + + + + This is the length of audio data contained in this WAV file, in bytes + (i.e. the byte length of the data chunk, not the length of the WAV file itself) + + + + + + Number of Sample Frames (if possible to calculate) + This currently does not take into account number of channels + Multiply number of channels if you want the total number of samples + + + + + Position in the WAV data chunk. + + + + + + Reads bytes from the Wave File + + + + + + Attempts to read the next sample or group of samples as floating point normalised into the range -1.0f to 1.0f + + An array of samples, 1 for mono, 2 for stereo etc. Null indicates end of file reached + + + + + Attempts to read a sample into a float. n.b. only applicable for uncompressed formats + Will normalise the value read into the range -1.0f to 1.0f if it comes from a PCM encoding + + False if the end of the WAV data chunk was reached + + + + IWaveProvider that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source Provider + + + + Gets the WaveFormat of this stream + + + + + Indicates that a reposition has taken place, and internal buffers should be reset + + + + + Reads bytes from this stream + + Buffer to read into + Offset in buffer to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Disposes this resource + + + + + Finalizer + + + + + WaveStream that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source stream + + + + Creates a stream that can convert to PCM + + The source stream + A PCM stream + + + + Gets or sets the current position in the stream + + + + + Converts source bytes to destination bytes + + + + + Converts destination bytes to source bytes + + + + + Returns the stream length + + + + + Gets the WaveFormat of this stream + + + + + + + Buffer to read into + Offset within buffer to write to + Number of bytes to read + Bytes read + + + + Disposes this stream + + true if the user called this + + + + A buffer of Wave samples + + + + + creates a new wavebuffer + + WaveIn device to write to + Buffer size in bytes + + + + Place this buffer back to record more audio + + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + + Provides access to the actual record buffer (for reading only) + + + + + Indicates whether the Done flag is set on this buffer + + + + + Indicates whether the InQueue flag is set on this buffer + + + + + Number of bytes recorded + + + + + The buffer size in bytes + + + + + WaveStream that can mix together multiple 32 bit input streams + (Normally used with stereo input channels) + All channels must have the same number of inputs + + + + + Creates a new 32 bit WaveMixerStream + + + + + Creates a new 32 bit WaveMixerStream + + An Array of WaveStreams - must all have the same format. + Use WaveChannel is designed for this purpose. + Automatically stop when all inputs have been read + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove a WaveStream from the mixer + + waveStream to remove + + + + The number of inputs to this mixer + + + + + Automatically stop when all inputs have been read + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Length of this Wave Stream (in bytes) + + + + + + Position within this Wave Stream (in bytes) + + + + + + + + + + + Disposes this WaveStream + + + + + Simply shifts the input stream in time, optionally + clipping its start and end. + (n.b. may include looping in the future) + + + + + Creates a new WaveOffsetStream + + the source stream + the time at which we should start reading from the source stream + amount to trim off the front of the source stream + length of time to play from source stream + + + + Creates a WaveOffsetStream with default settings (no offset or pre-delay, + and whole length of source stream) + + The source stream + + + + The length of time before which no audio will be played + + + + + An offset into the source stream from which to start playing + + + + + Length of time to read from the source stream + + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + A buffer of Wave samples for streaming to a Wave Output device + + + + + creates a new wavebuffer + + WaveOut device to write to + Buffer size in bytes + Stream to provide more data + Lock to protect WaveOut API's from being called on >1 thread + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + this is called by the WAVE callback and should be used to refill the buffer + + + + Whether the header's in queue flag is set + + + + + The buffer size in bytes + + + + + Base class for all WaveStream classes. Derives from stream. + + + + + Retrieves the WaveFormat for this stream + + + + + We can read from this stream + + + + + We can seek within this stream + + + + + We can't write to this stream + + + + + Flush does not need to do anything + See + + + + + An alternative way of repositioning. + See + + + + + Sets the length of the WaveStream. Not Supported. + + + + + + Writes to the WaveStream. Not Supported. + + + + + The block alignment for this wavestream. Do not modify the Position + to anything that is not a whole multiple of this value + + + + + Moves forward or backwards the specified number of seconds in the stream + + Number of seconds to move, can be negative + + + + The current position in the stream in Time format + + + + + Total length in real-time of the stream (may be an estimate for compressed files) + + + + + Whether the WaveStream has non-zero sample data at the current position for the + specified count + + Number of bytes to read + + + + Contains the name and CLSID of a DirectX Media Object + + + + + Name + + + + + CLSID + + + + + Initializes a new instance of DmoDescriptor + + + + + DirectX Media Object Enumerator + + + + + Get audio effect names + + Audio effect names + + + + Get audio encoder names + + Audio encoder names + + + + Get audio decoder names + + Audio decoder names + + + + DMO Guids for use with DMOEnum + dmoreg.h + + + + + MediaErr.h + + + + + DMO_PARTIAL_MEDIATYPE + + + + + defined in Medparam.h + + + + + Windows Media Resampler Props + wmcodecdsp.h + + + + + Range is 1 to 60 + + + + + Specifies the channel matrix. + + + + + Attempting to implement the COM IMediaBuffer interface as a .NET object + Not sure what will happen when I pass this to an unmanaged object + + + + + Creates a new Media Buffer + + Maximum length in bytes + + + + Dispose and free memory for buffer + + + + + Finalizer + + + + + Set length of valid data in the buffer + + length + HRESULT + + + + Gets the maximum length of the buffer + + Max length (output parameter) + HRESULT + + + + Gets buffer and / or length + + Pointer to variable into which buffer pointer should be written + Pointer to variable into which valid data length should be written + HRESULT + + + + Length of data in the media buffer + + + + + Loads data into this buffer + + Data to load + Number of bytes to load + + + + Retrieves the data in the output buffer + + buffer to retrieve into + offset within that buffer + + + + Media Object + + + + + Creates a new Media Object + + Media Object COM interface + + + + Number of input streams + + + + + Number of output streams + + + + + Gets the input media type for the specified input stream + + Input stream index + Input type index + DMO Media Type or null if there are no more input types + + + + Gets the DMO Media Output type + + The output stream + Output type index + DMO Media Type or null if no more available + + + + retrieves the media type that was set for an output stream, if any + + Output stream index + DMO Media Type or null if no more available + + + + Enumerates the supported input types + + Input stream index + Enumeration of input types + + + + Enumerates the output types + + Output stream index + Enumeration of supported output types + + + + Querys whether a specified input type is supported + + Input stream index + Media type to check + true if supports + + + + Sets the input type helper method + + Input stream index + Media type + Flags (can be used to test rather than set) + + + + Sets the input type + + Input stream index + Media Type + + + + Sets the input type to the specified Wave format + + Input stream index + Wave format + + + + Requests whether the specified Wave format is supported as an input + + Input stream index + Wave format + true if supported + + + + Helper function to make a DMO Media Type to represent a particular WaveFormat + + + + + Checks if a specified output type is supported + n.b. you may need to set the input type first + + Output stream index + Media type + True if supported + + + + Tests if the specified Wave Format is supported for output + n.b. may need to set the input type first + + Output stream index + Wave format + True if supported + + + + Helper method to call SetOutputType + + + + + Sets the output type + n.b. may need to set the input type first + + Output stream index + Media type to set + + + + Set output type to the specified wave format + n.b. may need to set input type first + + Output stream index + Wave format + + + + Get Input Size Info + + Input Stream Index + Input Size Info + + + + Get Output Size Info + + Output Stream Index + Output Size Info + + + + Process Input + + Input Stream index + Media Buffer + Flags + Timestamp + Duration + + + + Process Output + + Flags + Output buffer count + Output buffers + + + + Gives the DMO a chance to allocate any resources needed for streaming + + + + + Tells the DMO to free any resources needed for streaming + + + + + Gets maximum input latency + + input stream index + Maximum input latency as a ref-time + + + + Flushes all buffered data + + + + + Report a discontinuity on the specified input stream + + Input Stream index + + + + Is this input stream accepting data? + + Input Stream index + true if accepting data + + + + Experimental code, not currently being called + Not sure if it is necessary anyway + + + + + Media Object Size Info + + + + + Minimum Buffer Size, in bytes + + + + + Max Lookahead + + + + + Alignment + + + + + Media Object Size Info + + + + + ToString + + + + + MP_PARAMINFO + + + + + MP_TYPE + + + + + MPT_INT + + + + + MPT_FLOAT + + + + + MPT_BOOL + + + + + MPT_ENUM + + + + + MPT_MAX + + + + + MP_CURVE_TYPE + + + + + uuids.h, ksuuids.h + + + + + implements IMediaObject (DirectX Media Object) + implements IMFTransform (Media Foundation Transform) + On Windows XP, it is always an MM (if present at all) + + + + + Windows Media MP3 Decoder (as a DMO) + WORK IN PROGRESS - DO NOT USE! + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + DMO Input Data Buffer Flags + + + + + None + + + + + DMO_INPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_INPUT_DATA_BUFFERF_TIME + + + + + DMO_INPUT_DATA_BUFFERF_TIMELENGTH + + + + + http://msdn.microsoft.com/en-us/library/aa929922.aspx + DMO_MEDIA_TYPE + + + + + Major type + + + + + Major type name + + + + + Subtype + + + + + Subtype name + + + + + Fixed size samples + + + + + Sample size + + + + + Format type + + + + + Format type name + + + + + Gets the structure as a Wave format (if it is one) + + + + + Sets this object up to point to a wave format + + Wave format structure + + + + DMO Output Data Buffer + + + + + Creates a new DMO Output Data Buffer structure + + Maximum buffer size + + + + Dispose + + + + + Media Buffer + + + + + Length of data in buffer + + + + + Status Flags + + + + + Timestamp + + + + + Duration + + + + + Retrives the data in this buffer + + Buffer to receive data + Offset into buffer + + + + Is more data available + If true, ProcessOuput should be called again + + + + + DMO Output Data Buffer Flags + + + + + None + + + + + DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_OUTPUT_DATA_BUFFERF_TIME + + + + + DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH + + + + + DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE + + + + + DMO Process Output Flags + + + + + None + + + + + DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER + + + + + IMediaBuffer Interface + + + + + Set Length + + Length + HRESULT + + + + Get Max Length + + Max Length + HRESULT + + + + Get Buffer and Length + + Pointer to variable into which to write the Buffer Pointer + Pointer to variable into which to write the Valid Data Length + HRESULT + + + + defined in mediaobj.h + + + + + From wmcodecsdp.h + Implements: + - IMediaObject + - IMFTransform (Media foundation - we will leave this for now as there is loads of MF stuff) + - IPropertyStore + - IWMResamplerProps + Can resample PCM or IEEE + + + + + DMO Resampler + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + Soundfont generator + + + + + Gets the generator type + + + + + Generator amount as an unsigned short + + + + + Generator amount as a signed short + + + + + Low byte amount + + + + + High byte amount + + + + + Instrument + + + + + Sample Header + + + + + + + + + + Generator types + + + + Start address offset + + + End address offset + + + Start loop address offset + + + End loop address offset + + + Start address coarse offset + + + Modulation LFO to pitch + + + Vibrato LFO to pitch + + + Modulation envelope to pitch + + + Initial filter cutoff frequency + + + Initial filter Q + + + Modulation LFO to filter Cutoff frequency + + + Modulation envelope to filter cutoff frequency + + + End address coarse offset + + + Modulation LFO to volume + + + Unused + + + Chorus effects send + + + Reverb effects send + + + Pan + + + Unused + + + Unused + + + Unused + + + Delay modulation LFO + + + Frequency modulation LFO + + + Delay vibrato LFO + + + Frequency vibrato LFO + + + Delay modulation envelope + + + Attack modulation envelope + + + Hold modulation envelope + + + Decay modulation envelope + + + Sustain modulation envelop + + + Release modulation envelope + + + Key number to modulation envelope hold + + + Key number to modulation envelope decay + + + Delay volume envelope + + + Attack volume envelope + + + Hold volume envelope + + + Decay volume envelope + + + Sustain volume envelope + + + Release volume envelope + + + Key number to volume envelope hold + + + Key number to volume envelope decay + + + Instrument + + + Reserved + + + Key range + + + Velocity range + + + Start loop address coarse offset + + + Key number + + + Velocity + + + Initial attenuation + + + Reserved + + + End loop address coarse offset + + + Coarse tune + + + Fine tune + + + Sample ID + + + Sample modes + + + Reserved + + + Scale tuning + + + Exclusive class + + + Overriding root key + + + Unused + + + Unused + + + + A soundfont info chunk + + + + + SoundFont Version + + + + + WaveTable sound engine + + + + + Bank name + + + + + Data ROM + + + + + Creation Date + + + + + Author + + + + + Target Product + + + + + Copyright + + + + + Comments + + + + + Tools + + + + + ROM Version + + + + + + + + + + SoundFont instrument + + + + + instrument name + + + + + Zones + + + + + + + + + + Instrument Builder + + + + + Transform Types + + + + + Linear + + + + + Modulator + + + + + Source Modulation data type + + + + + Destination generator type + + + + + Amount + + + + + Source Modulation Amount Type + + + + + Source Transform Type + + + + + + + + + + Controller Sources + + + + + No Controller + + + + + Note On Velocity + + + + + Note On Key Number + + + + + Poly Pressure + + + + + Channel Pressure + + + + + Pitch Wheel + + + + + Pitch Wheel Sensitivity + + + + + Source Types + + + + + Linear + + + + + Concave + + + + + Convex + + + + + Switch + + + + + Modulator Type + + + + + + + + + + + A SoundFont Preset + + + + + Preset name + + + + + Patch Number + + + + + Bank number + + + + + Zones + + + + + + + + + + Class to read the SoundFont file presets chunk + + + + + The Presets contained in this chunk + + + + + The instruments contained in this chunk + + + + + The sample headers contained in this chunk + + + + + + + + + + just reads a chunk ID at the current position + + chunk ID + + + + reads a chunk at the current position + + + + + creates a new riffchunk from current position checking that we're not + at the end of this chunk first + + the new chunk + + + + useful for chunks that just contain a string + + chunk as string + + + + A SoundFont Sample Header + + + + + The sample name + + + + + Start offset + + + + + End offset + + + + + Start loop point + + + + + End loop point + + + + + Sample Rate + + + + + Original pitch + + + + + Pitch correction + + + + + Sample Link + + + + + SoundFont Sample Link Type + + + + + + + + + + SoundFont sample modes + + + + + No loop + + + + + Loop Continuously + + + + + Reserved no loop + + + + + Loop and continue + + + + + Sample Link Type + + + + + Mono Sample + + + + + Right Sample + + + + + Left Sample + + + + + Linked Sample + + + + + ROM Mono Sample + + + + + ROM Right Sample + + + + + ROM Left Sample + + + + + ROM Linked Sample + + + + + SoundFont Version Structure + + + + + Major Version + + + + + Minor Version + + + + + Builds a SoundFont version + + + + + Reads a SoundFont Version structure + + + + + Writes a SoundFont Version structure + + + + + Gets the length of this structure + + + + + Represents a SoundFont + + + + + Loads a SoundFont from a file + + Filename of the SoundFont + + + + Loads a SoundFont from a stream + + stream + + + + The File Info Chunk + + + + + The Presets + + + + + The Instruments + + + + + The Sample Headers + + + + + The Sample Data + + + + + + + + + + base class for structures that can read themselves + + + + + A SoundFont zone + + + + + + + + + + Modulators for this Zone + + + + + Generators for this Zone + + + + + Summary description for Fader. + + + + + Required designer variable. + + + + + Creates a new Fader control + + + + + Clean up any resources being used. + + + + + + + + + + + + + + + + + + + + + + + + + Minimum value of this fader + + + + + Maximum value of this fader + + + + + Current value of this fader + + + + + Fader orientation + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Pan slider control + + + + + Required designer variable. + + + + + True when pan value changed + + + + + Creates a new PanSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + The current Pan setting + + + + + Control that represents a potentiometer + TODO list: + Optional Log scale + Optional reverse scale + Keyboard control + Optional bitmap mode + Optional complete draw mode + Tooltip support + + + + + Value changed event + + + + + Creates a new pot control + + + + + Minimum Value of the Pot + + + + + Maximum Value of the Pot + + + + + The current value of the pot + + + + + Draws the control + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Handles the mouse up event to allow changing value by dragging + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Implements a rudimentary volume meter + + + + + Basic volume meter + + + + + On Fore Color Changed + + + + + Current Value + + + + + Minimum decibels + + + + + Maximum decibels + + + + + Meter orientation + + + + + Paints the volume meter + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + VolumeSlider control + + + + + Required designer variable. + + + + + Volume changed event + + + + + Creates a new VolumeSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + The volume for this control + + + + + Windows Forms control for painting audio waveforms + + + + + Constructs a new instance of the WaveFormPainter class + + + + + On Resize + + + + + On ForeColor Changed + + + + + + Add Max Value + + + + + + On Paint + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Control for viewing waveforms + + + + + Required designer variable. + + + + + Creates a new WaveViewer control + + + + + sets the associated wavestream + + + + + The zoom level, in samples per pixel + + + + + Start position (currently in bytes) + + + + + Clean up any resources being used. + + + + + + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Boolean mixer control + + + + + Gets the details for this control + + memory pointer + + + + The current value of the control + + + + + Custom Mixer control + + + + + Get the data for this custom control + + pointer to memory to receive data + + + + List text mixer control + + + + + Get the details for this control + + Memory location to read to + + + Represents a Windows mixer device + + + The number of mixer devices available + + + Connects to the specified mixer + The index of the mixer to use. + This should be between zero and NumberOfDevices - 1 + + + The number of destinations this mixer supports + + + The name of this mixer device + + + The manufacturer code for this mixer device + + + The product identifier code for this mixer device + + + Retrieve the specified MixerDestination object + The ID of the destination to use. + Should be between 0 and DestinationCount - 1 + + + + A way to enumerate the destinations + + + + + A way to enumerate all available devices + + + + + Represents a mixer control + + + + + Mixer Handle + + + + + Number of Channels + + + + + Mixer Handle Type + + + + + Gets all the mixer controls + + Mixer Handle + Mixer Line + Mixer Handle Type + + + + + Gets a specified Mixer Control + + Mixer Handle + Line ID + Control ID + Number of Channels + Flags to use (indicates the meaning of mixerHandle) + + + + + Gets the control details + + + + + Gets the control details + + + + + + Mixer control name + + + + + Mixer control type + + + + + Returns true if this is a boolean control + + Control type + + + + Is this a boolean control + + + + + Determines whether a specified mixer control type is a list text control + + + + + True if this is a list text control + + + + + True if this is a signed control + + + + + True if this is an unsigned control + + + + + True if this is a custom control + + + + + String representation for debug purposes + + + + + Mixer control types + + + + Custom + + + Boolean meter + + + Signed meter + + + Peak meter + + + Unsigned meter + + + Boolean + + + On Off + + + Mute + + + Mono + + + Loudness + + + Stereo Enhance + + + Button + + + Decibels + + + Signed + + + Unsigned + + + Percent + + + Slider + + + Pan + + + Q-sound pan + + + Fader + + + Volume + + + Bass + + + Treble + + + Equaliser + + + Single Select + + + Mux + + + Multiple select + + + Mixer + + + Micro time + + + Milli time + + + + Represents a mixer line (source or destination) + + + + + Creates a new mixer destination + + Mixer Handle + Destination Index + Mixer Handle Type + + + + Creates a new Mixer Source For a Specified Source + + Mixer Handle + Destination Index + Source Index + Flag indicating the meaning of mixerHandle + + + + Creates a new Mixer Source + + Wave In Device + + + + Mixer Line Name + + + + + Mixer Line short name + + + + + The line ID + + + + + Component Type + + + + + Mixer destination type description + + + + + Number of channels + + + + + Number of sources + + + + + Number of controls + + + + + Is this destination active + + + + + Is this destination disconnected + + + + + Is this destination a source + + + + + Gets the specified source + + + + + Enumerator for the controls on this Mixer Limne + + + + + Enumerator for the sources on this Mixer Line + + + + + The name of the target output device + + + + + Describes this Mixer Line (for diagnostic purposes) + + + + + Mixer Interop Flags + + + + + MIXER_OBJECTF_HANDLE = 0x80000000; + + + + + MIXER_OBJECTF_MIXER = 0x00000000; + + + + + MIXER_OBJECTF_HMIXER + + + + + MIXER_OBJECTF_WAVEOUT + + + + + MIXER_OBJECTF_HWAVEOUT + + + + + MIXER_OBJECTF_WAVEIN + + + + + MIXER_OBJECTF_HWAVEIN + + + + + MIXER_OBJECTF_MIDIOUT + + + + + MIXER_OBJECTF_HMIDIOUT + + + + + MIXER_OBJECTF_MIDIIN + + + + + MIXER_OBJECTF_HMIDIIN + + + + + MIXER_OBJECTF_AUX + + + + + MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000; + MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000; + + + + + MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001; + MIXER_SETCONTROLDETAILSF_LISTTEXT = 0x00000001; + + + + + MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F; + + + + + MIXER_GETLINECONTROLSF_ALL = 0x00000000; + + + + + MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001; + + + + + MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002; + + + + + MIXER_GETLINEINFOF_DESTINATION = 0x00000000; + + + + + MIXER_GETLINEINFOF_SOURCE = 0x00000001; + + + + + MIXER_GETLINEINFOF_LINEID = 0x00000002; + + + + + MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003; + + + + + MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004; + + + + + MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F; + + + + + Mixer Line Flags + + + + + Audio line is active. An active line indicates that a signal is probably passing + through the line. + + + + + Audio line is disconnected. A disconnected line's associated controls can still be + modified, but the changes have no effect until the line is connected. + + + + + Audio line is an audio source line associated with a single audio destination line. + If this flag is not set, this line is an audio destination line associated with zero + or more audio source lines. + + + + + BOUNDS structure + + + + + dwMinimum / lMinimum / reserved 0 + + + + + dwMaximum / lMaximum / reserved 1 + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + METRICS structure + + + + + cSteps / reserved[0] + + + + + cbCustomData / reserved[1], number of bytes for control details + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + MIXERCONTROL struct + http://msdn.microsoft.com/en-us/library/dd757293%28VS.85%29.aspx + + + + + Mixer Line Component type enumeration + + + + + Audio line is a destination that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_DST_UNDEFINED + + + + + Audio line is a digital destination (for example, digital input to a DAT or CD audio device). + MIXERLINE_COMPONENTTYPE_DST_DIGITAL + + + + + Audio line is a line level destination (for example, line level input from a CD audio device) that will be the final recording source for the analog-to-digital converter (ADC). Because most audio cards for personal computers provide some sort of gain for the recording audio source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_DST_WAVEIN type. + MIXERLINE_COMPONENTTYPE_DST_LINE + + + + + Audio line is a destination used for a monitor. + MIXERLINE_COMPONENTTYPE_DST_MONITOR + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive speakers. This is the typical component type for the audio output of audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_SPEAKERS + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive headphones. Most audio cards use the same audio destination line for speakers and headphones, in which case the mixer device simply uses the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS type. + MIXERLINE_COMPONENTTYPE_DST_HEADPHONES + + + + + Audio line is a destination that will be routed to a telephone line. + MIXERLINE_COMPONENTTYPE_DST_TELEPHONE + + + + + Audio line is a destination that will be the final recording source for the waveform-audio input (ADC). This line typically provides some sort of gain or attenuation. This is the typical component type for the recording line of most audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_WAVEIN + + + + + Audio line is a destination that will be the final recording source for voice input. This component type is exactly like MIXERLINE_COMPONENTTYPE_DST_WAVEIN but is intended specifically for settings used during voice recording/recognition. Support for this line is optional for a mixer device. Many mixer devices provide only MIXERLINE_COMPONENTTYPE_DST_WAVEIN. + MIXERLINE_COMPONENTTYPE_DST_VOICEIN + + + + + Audio line is a source that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED + + + + + Audio line is a digital source (for example, digital output from a DAT or audio CD). + MIXERLINE_COMPONENTTYPE_SRC_DIGITAL + + + + + Audio line is a line-level source (for example, line-level input from an external stereo) that can be used as an optional recording source. Because most audio cards for personal computers provide some sort of gain for the recording source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY type. + MIXERLINE_COMPONENTTYPE_SRC_LINE + + + + + Audio line is a microphone recording source. Most audio cards for personal computers provide at least two types of recording sources: an auxiliary audio line and microphone input. A microphone audio line typically provides some sort of gain. Audio cards that use a single input for use with a microphone or auxiliary audio line should use the MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE component type. + MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE + + + + + Audio line is a source originating from the output of an internal synthesizer. Most audio cards for personal computers provide some sort of MIDI synthesizer (for example, an Adlib®-compatible or OPL/3 FM synthesizer). + MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER + + + + + Audio line is a source originating from the output of an internal audio CD. This component type is provided for audio cards that provide an audio source line intended to be connected to an audio CD (or CD-ROM playing an audio CD). + MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC + + + + + Audio line is a source originating from an incoming telephone line. + MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE + + + + + Audio line is a source originating from personal computer speaker. Several audio cards for personal computers provide the ability to mix what would typically be played on the internal speaker with the output of an audio card. Some audio cards support the ability to use this output as a recording source. + MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER + + + + + Audio line is a source originating from the waveform-audio output digital-to-analog converter (DAC). Most audio cards for personal computers provide this component type as a source to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination. Some cards also allow this source to be routed to the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT + + + + + Audio line is a source originating from the auxiliary audio line. This line type is intended as a source with gain or attenuation that can be routed to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination and/or recorded from the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY + + + + + Audio line is an analog source (for example, analog output from a video-cassette tape). + MIXERLINE_COMPONENTTYPE_SRC_ANALOG + + + + + Represents a signed mixer control + + + + + Gets details for this contrl + + + + + The value of the control + + + + + Minimum value for this control + + + + + Maximum value for this control + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + + Represents an unsigned mixer control + + + + + Gets the details for this control + + + + + The control value + + + + + The control's minimum value + + + + + The control's maximum value + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + Manufacturer codes from mmreg.h + + + + Microsoft Corporation + + + Creative Labs, Inc + + + Media Vision, Inc. + + + Fujitsu Corp. + + + Artisoft, Inc. + + + Turtle Beach, Inc. + + + IBM Corporation + + + Vocaltec LTD. + + + Roland + + + DSP Solutions, Inc. + + + NEC + + + ATI + + + Wang Laboratories, Inc + + + Tandy Corporation + + + Voyetra + + + Antex Electronics Corporation + + + ICL Personal Systems + + + Intel Corporation + + + Advanced Gravis + + + Video Associates Labs, Inc. + + + InterActive Inc + + + Yamaha Corporation of America + + + Everex Systems, Inc + + + Echo Speech Corporation + + + Sierra Semiconductor Corp + + + Computer Aided Technologies + + + APPS Software International + + + DSP Group, Inc + + + microEngineering Labs + + + Computer Friends, Inc. + + + ESS Technology + + + Audio, Inc. + + + Motorola, Inc. + + + Canopus, co., Ltd. + + + Seiko Epson Corporation + + + Truevision + + + Aztech Labs, Inc. + + + Videologic + + + SCALACS + + + Korg Inc. + + + Audio Processing Technology + + + Integrated Circuit Systems, Inc. + + + Iterated Systems, Inc. + + + Metheus + + + Logitech, Inc. + + + Winnov, Inc. + + + NCR Corporation + + + EXAN + + + AST Research Inc. + + + Willow Pond Corporation + + + Sonic Foundry + + + Vitec Multimedia + + + MOSCOM Corporation + + + Silicon Soft, Inc. + + + Supermac + + + Audio Processing Technology + + + Speech Compression + + + Ahead, Inc. + + + Dolby Laboratories + + + OKI + + + AuraVision Corporation + + + Ing C. Olivetti & C., S.p.A. + + + I/O Magic Corporation + + + Matsushita Electric Industrial Co., LTD. + + + Control Resources Limited + + + Xebec Multimedia Solutions Limited + + + New Media Corporation + + + Natural MicroSystems + + + Lyrrus Inc. + + + Compusic + + + OPTi Computers Inc. + + + Adlib Accessories Inc. + + + Compaq Computer Corp. + + + Dialogic Corporation + + + InSoft, Inc. + + + M.P. Technologies, Inc. + + + Weitek + + + Lernout & Hauspie + + + Quanta Computer Inc. + + + Apple Computer, Inc. + + + Digital Equipment Corporation + + + Mark of the Unicorn + + + Workbit Corporation + + + Ositech Communications Inc. + + + miro Computer Products AG + + + Cirrus Logic + + + ISOLUTION B.V. + + + Horizons Technology, Inc + + + Computer Concepts Ltd + + + Voice Technologies Group, Inc. + + + Radius + + + Rockwell International + + + Co. XYZ for testing + + + Opcode Systems + + + Voxware Inc + + + Northern Telecom Limited + + + APICOM + + + Grande Software + + + ADDX + + + Wildcat Canyon Software + + + Rhetorex Inc + + + Brooktree Corporation + + + ENSONIQ Corporation + + + FAST Multimedia AG + + + NVidia Corporation + + + OKSORI Co., Ltd. + + + DiAcoustics, Inc. + + + Gulbransen, Inc. + + + Kay Elemetrics, Inc. + + + Crystal Semiconductor Corporation + + + Splash Studios + + + Quarterdeck Corporation + + + TDK Corporation + + + Digital Audio Labs, Inc. + + + Seer Systems, Inc. + + + PictureTel Corporation + + + AT&T Microelectronics + + + Osprey Technologies, Inc. + + + Mediatrix Peripherals + + + SounDesignS M.C.S. Ltd. + + + A.L. Digital Ltd. + + + Spectrum Signal Processing, Inc. + + + Electronic Courseware Systems, Inc. + + + AMD + + + Core Dynamics + + + CANAM Computers + + + Softsound, Ltd. + + + Norris Communications, Inc. + + + Danka Data Devices + + + EuPhonics + + + Precept Software, Inc. + + + Crystal Net Corporation + + + Chromatic Research, Inc + + + Voice Information Systems, Inc + + + Vienna Systems + + + Connectix Corporation + + + Gadget Labs LLC + + + Frontier Design Group LLC + + + Viona Development GmbH + + + Casio Computer Co., LTD + + + Diamond Multimedia + + + S3 + + + Fraunhofer + + + + Summary description for MmException. + + + + + Creates a new MmException + + The result returned by the Windows API call + The name of the Windows API that failed + + + + Helper function to automatically raise an exception on failure + + The result of the API call + The API function name + + + + Returns the Windows API result + + + + + Windows multimedia error codes from mmsystem.h. + + + + no error, MMSYSERR_NOERROR + + + unspecified error, MMSYSERR_ERROR + + + device ID out of range, MMSYSERR_BADDEVICEID + + + driver failed enable, MMSYSERR_NOTENABLED + + + device already allocated, MMSYSERR_ALLOCATED + + + device handle is invalid, MMSYSERR_INVALHANDLE + + + no device driver present, MMSYSERR_NODRIVER + + + memory allocation error, MMSYSERR_NOMEM + + + function isn't supported, MMSYSERR_NOTSUPPORTED + + + error value out of range, MMSYSERR_BADERRNUM + + + invalid flag passed, MMSYSERR_INVALFLAG + + + invalid parameter passed, MMSYSERR_INVALPARAM + + + handle being used simultaneously on another thread (eg callback),MMSYSERR_HANDLEBUSY + + + specified alias not found, MMSYSERR_INVALIDALIAS + + + bad registry database, MMSYSERR_BADDB + + + registry key not found, MMSYSERR_KEYNOTFOUND + + + registry read error, MMSYSERR_READERROR + + + registry write error, MMSYSERR_WRITEERROR + + + registry delete error, MMSYSERR_DELETEERROR + + + registry value not found, MMSYSERR_VALNOTFOUND + + + driver does not call DriverCallback, MMSYSERR_NODRIVERCB + + + more data to be returned, MMSYSERR_MOREDATA + + + unsupported wave format, WAVERR_BADFORMAT + + + still something playing, WAVERR_STILLPLAYING + + + header not prepared, WAVERR_UNPREPARED + + + device is synchronous, WAVERR_SYNC + + + Conversion not possible (ACMERR_NOTPOSSIBLE) + + + Busy (ACMERR_BUSY) + + + Header Unprepared (ACMERR_UNPREPARED) + + + Cancelled (ACMERR_CANCELED) + + + invalid line (MIXERR_INVALLINE) + + + invalid control (MIXERR_INVALCONTROL) + + + invalid value (MIXERR_INVALVALUE) + + + diff --git a/packages/NAudio.1.8.2/lib/net35/NAudio.XML b/packages/NAudio.1.8.2/lib/net35/NAudio.XML new file mode 100644 index 0000000..dcc9342 --- /dev/null +++ b/packages/NAudio.1.8.2/lib/net35/NAudio.XML @@ -0,0 +1,22583 @@ + + + + NAudio + + + + + a-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts an a-law encoded byte to a 16 bit linear sample + + a-law encoded byte + Linear sample + + + + A-law encoder + + + + + Encodes a single 16 bit sample to a-law + + 16 bit PCM sample + a-law encoded byte + + + + SpanDSP - a series of DSP components for telephony + + g722_decode.c - The ITU G.722 codec, decode part. + + Written by Steve Underwood <steveu@coppice.org> + + Copyright (C) 2005 Steve Underwood + Ported to C# by Mark Heath 2011 + + Despite my general liking of the GPL, I place my own contributions + to this code in the public domain for the benefit of all mankind - + even the slimy ones who might try to proprietize my work and use it + to my detriment. + + Based in part on a single channel G.722 codec which is: + Copyright (c) CMU 1993 + Computer Science, Speech Group + Chengxiang Lu and Alex Hauptmann + + + + + hard limits to 16 bit samples + + + + + Decodes a buffer of G722 + + Codec state + Output buffer (to contain decompressed PCM samples) + + Number of bytes in input G722 data to decode + Number of samples written into output buffer + + + + Encodes a buffer of G722 + + Codec state + Output buffer (to contain encoded G722) + PCM 16 bit samples to encode + Number of samples in the input buffer to encode + Number of encoded bytes written into output buffer + + + + Stores state to be used between calls to Encode or Decode + + + + + ITU Test Mode + TRUE if the operating in the special ITU test mode, with the band split filters disabled. + + + + + TRUE if the G.722 data is packed + + + + + 8kHz Sampling + TRUE if encode from 8k samples/second + + + + + Bits Per Sample + 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. + + + + + Signal history for the QMF (x) + + + + + Band + + + + + In bit buffer + + + + + Number of bits in InBuffer + + + + + Out bit buffer + + + + + Number of bits in OutBuffer + + + + + Creates a new instance of G722 Codec State for a + new encode or decode session + + Bitrate (typically 64000) + Special options + + + + Band data for G722 Codec + + + + s + + + sp + + + sz + + + r + + + a + + + ap + + + p + + + d + + + b + + + bp + + + sg + + + nb + + + det + + + + G722 Flags + + + + + None + + + + + Using a G722 sample rate of 8000 + + + + + Packed + + + + + mu-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts a mu-law encoded byte to a 16 bit linear sample + + mu-law encoded byte + Linear sample + + + + mu-law encoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + Encodes a single 16 bit sample to mu-law + + 16 bit PCM sample + mu-law encoded byte + + + + Audio Capture Client + + + + + Gets a pointer to the buffer + + Pointer to the buffer + + + + Gets a pointer to the buffer + + Number of frames to read + Buffer flags + Pointer to the buffer + + + + Gets the size of the next packet + + + + + Release buffer + + Number of frames written + + + + Release the COM object + + + + + Windows CoreAudio AudioClient + + + + + Retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams. + Can be called before initialize + + + + + Initializes the Audio Client + + Share Mode + Stream Flags + Buffer Duration + Periodicity + Wave Format + Audio Session GUID (can be null) + + + + Retrieves the size (maximum capacity) of the audio buffer associated with the endpoint. (must initialize first) + + + + + Retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized. + + + + + Retrieves the number of frames of padding in the endpoint buffer (must initialize first) + + + + + Retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer. + (can be called before initialize) + + + + + Gets the minimum device period + (can be called before initialize) + + + + + Returns the AudioStreamVolume service for this AudioClient. + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Gets the AudioClockClient service + + + + + Gets the AudioRenderClient service + + + + + Gets the AudioCaptureClient service + + + + + Determines whether if the specified output format is supported + + The share mode. + The desired format. + True if the format is supported + + + + Determines if the specified output format is supported in shared mode + + Share Mode + Desired Format + Output The closest match format. + True if the format is supported + + + + Starts the audio stream + + + + + Stops the audio stream. + + + + + Set the Event Handle for buffer synchro. + + The Wait Handle to setup + + + + Resets the audio stream + Reset is a control method that the client calls to reset a stopped audio stream. + Resetting the stream flushes all pending data and resets the audio clock stream + position to 0. This method fails if it is called on a stream that is not stopped + + + + + Dispose + + + + + Audio Client Buffer Flags + + + + + None + + + + + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY + + + + + AUDCLNT_BUFFERFLAGS_SILENT + + + + + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR + + + + + The AudioClientProperties structure is used to set the parameters that describe the properties of the client's audio stream. + + http://msdn.microsoft.com/en-us/library/windows/desktop/hh968105(v=vs.85).aspx + + + + The size of the buffer for the audio stream. + + + + + Boolean value to indicate whether or not the audio stream is hardware-offloaded + + + + + An enumeration that is used to specify the category of the audio stream. + + + + + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + + AUDCLNT_SHAREMODE + + + + + AUDCLNT_SHAREMODE_SHARED, + + + + + AUDCLNT_SHAREMODE_EXCLUSIVE + + + + + AUDCLNT_STREAMFLAGS + + + + + None + + + + + AUDCLNT_STREAMFLAGS_CROSSPROCESS + + + + + AUDCLNT_STREAMFLAGS_LOOPBACK + + + + + AUDCLNT_STREAMFLAGS_EVENTCALLBACK + + + + + AUDCLNT_STREAMFLAGS_NOPERSIST + + + + + Defines values that describe the characteristics of an audio stream. + + + + + No stream options. + + + + + The audio stream is a 'raw' stream that bypasses all signal processing except for endpoint specific, always-on processing in the APO, driver, and hardware. + + + + + Audio Clock Client + + + + + Characteristics + + + + + Frequency + + + + + Get Position + + + + + Adjusted Position + + + + + Can Adjust Position + + + + + Dispose + + + + + Audio Endpoint Volume Channel + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + Volume Level + + + + + Volume Level Scalar + + + + + Audio Endpoint Volume Channels + + + + + Channel Count + + + + + Indexer - get a specific channel + + + + + Audio Endpoint Volume Notifiaction Delegate + + Audio Volume Notification Data + + + + Audio Endpoint Volume Step Information + + + + + Step + + + + + StepCount + + + + + Audio Endpoint Volume Volume Range + + + + + Minimum Decibels + + + + + Maximum Decibels + + + + + Increment Decibels + + + + + Audio Meter Information Channels + + + + + Metering Channel Count + + + + + Get Peak value + + Channel index + Peak value + + + + Audio Render Client + + + + + Gets a pointer to the buffer + + Number of frames requested + Pointer to the buffer + + + + Release buffer + + Number of frames written + Buffer flags + + + + Release the COM object + + + + + AudioSessionControl object for information + regarding an audio session + + + + + Constructor. + + + + + + Dispose + + + + + Finalizer + + + + + Audio meter information of the audio session. + + + + + Simple audio volume of the audio session (for volume and mute status). + + + + + The current state of the audio session. + + + + + The name of the audio session. + + + + + the path to the icon shown in the mixer. + + + + + The session identifier of the audio session. + + + + + The session instance identifier of the audio session. + + + + + The process identifier of the audio session. + + + + + Is the session a system sounds session. + + + + + the grouping param for an audio session grouping + + + + + + For chanigng the grouping param and supplying the context of said change + + + + + + + Registers an even client for callbacks + + + + + + Unregisters an event client from receiving callbacks + + + + + + AudioSessionEvents callback implementation + + + + + Constructor. + + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + AudioSessionManager + + Designed to manage audio sessions and in particuar the + SimpleAudioVolume interface to adjust a session volume + + + + + Session created delegate + + + + + Occurs when audio session has been added (for example run another program that use audio playback). + + + + + SimpleAudioVolume object + for adjusting the volume for the user session + + + + + AudioSessionControl object + for registring for callbacks and other session information + + + + + Refresh session of current device. + + + + + Returns list of sessions of current device. + + + + + Dispose. + + + + + Finalizer. + + + + + Specifies the category of an audio stream. + + + + + Other audio stream. + + + + + Media that will only stream when the app is in the foreground. + + + + + Media that can be streamed when the app is in the background. + + + + + Real-time communications, such as VOIP or chat. + + + + + Alert sounds. + + + + + Sound effects. + + + + + Game sound effects. + + + + + Background audio for games. + + + + + Manages the AudioStreamVolume for the . + + + + + Verify that the channel index is valid. + + + + + + + Return the current stream volumes for all channels + + An array of volume levels between 0.0 and 1.0 for each channel in the audio stream. + + + + Returns the current number of channels in this audio stream. + + + + + Return the current volume for the requested channel. + + The 0 based index into the channels. + The volume level for the channel between 0.0 and 1.0. + + + + Set the volume level for each channel of the audio stream. + + An array of volume levels (between 0.0 and 1.0) one for each channel. + + A volume level MUST be supplied for reach channel in the audio stream. + + + Thrown when does not contain elements. + + + + + Sets the volume level for one channel in the audio stream. + + The 0-based index into the channels to adjust the volume of. + The volume level between 0.0 and 1.0 for this channel of the audio stream. + + + + Dispose + + + + + Release/cleanup objects during Dispose/finalization. + + True if disposing and false if being finalized. + + + + Audio Volume Notification Data + + + + + Event Context + + + + + Muted + + + + + Guid that raised the event + + + + + Master Volume + + + + + Channels + + + + + Channel Volume + + + + + Audio Volume Notification Data + + + + + + + + + + Audio Client WASAPI Error Codes (HResult) + + + + + AUDCLNT_E_NOT_INITIALIZED + + + + + AUDCLNT_E_UNSUPPORTED_FORMAT + + + + + AUDCLNT_E_DEVICE_IN_USE + + + + + AUDCLNT_E_RESOURCES_INVALIDATED + + + + + Defined in AudioClient.h + + + + + Defined in AudioClient.h + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier for the audio session. + + Receives the session identifier. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier of the audio session instance. + + Receives the identifier of a particular instance. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the process identifier of the audio session. + + Receives the process identifier of the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Indicates whether the session is a system sounds session. + + An HRESULT code indicating whether the operation succeeded of failed. + + + + Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. + + A variable that enables or disables system auto-ducking. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Defines constants that indicate the current state of an audio session. + + + MSDN Reference: http://msdn.microsoft.com/en-us/library/dd370792.aspx + + + + + The audio session is inactive. + + + + + The audio session is active. + + + + + The audio session has expired. + + + + + Defines constants that indicate a reason for an audio session being disconnected. + + + MSDN Reference: Unknown + + + + + The user removed the audio endpoint device. + + + + + The Windows audio service has stopped. + + + + + The stream format changed for the device that the audio session is connected to. + + + + + The user logged off the WTS session that the audio session was running in. + + + + + The WTS session that the audio session was running in was disconnected. + + + + + The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + interface to receive session related events + + + + + notification of volume changes including muting of audio session + + the current volume + the current mute state, true muted, false otherwise + + + + notification of display name changed + + the current display name + + + + notification of icon path changed + + the current icon path + + + + notification of the client that the volume level of an audio channel in the session submix has changed + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + + + + notification of the client that the grouping parameter for the session has changed + + >The new grouping parameter for the session. + + + + notification of the client that the stream-activity state of the session has changed + + The new session state. + + + + notification of the client that the session has been disconnected + + The reason that the audio session was disconnected. + + + + Windows CoreAudio IAudioSessionManager interface + Defined in AudioPolicy.h + + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionNotification interface + Defined in AudioPolicy.h + + + + + + + session being added + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio ISimpleAudioVolume interface + Defined in AudioClient.h + + + + + Sets the master volume level for the audio session. + + The new volume level expressed as a normalized value between 0.0 and 1.0. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the client volume level for the audio session. + + Receives the volume level expressed as a normalized value between 0.0 and 1.0. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Sets the muting state for the audio session. + + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the current muting state for the audio session. + + Receives the muting state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + is defined in WTypes.h + + + + + Windows CoreAudio IAudioClient interface + Defined in AudioClient.h + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + + defined in MMDeviceAPI.h + + + + + IMMNotificationClient + + + + + Device State Changed + + + + + Device Added + + + + + Device Removed + + + + + Default Device Changed + + + + + Property Value Changed + + + + + + + is defined in propsys.h + + + + + implements IMMDeviceEnumerator + + + + + MMDevice STGM enumeration + + + + + from Propidl.h. + http://msdn.microsoft.com/en-us/library/aa380072(VS.85).aspx + contains a union so we have to do an explicit layout + + + + + Creates a new PropVariant containing a long value + + + + + Helper method to gets blob data + + + + + Interprets a blob as an array of structs + + + + + Gets the type of data in this PropVariant + + + + + Property value + + + + + allows freeing up memory, might turn this into a Dispose method? + + + + + Clears with a known pointer + + + + + Multimedia Device Collection + + + + + Device count + + + + + Get device by index + + Device index + Device at the specified index + + + + Get Enumerator + + Device enumerator + + + + Property Keys + + + + + PKEY_DeviceInterface_FriendlyName + + + + + PKEY_AudioEndpoint_FormFactor + + + + + PKEY_AudioEndpoint_ControlPanelPageProvider + + + + + PKEY_AudioEndpoint_Association + + + + + PKEY_AudioEndpoint_PhysicalSpeakers + + + + + PKEY_AudioEndpoint_GUID + + + + + PKEY_AudioEndpoint_Disable_SysFx + + + + + PKEY_AudioEndpoint_FullRangeSpeakers + + + + + PKEY_AudioEndpoint_Supports_EventDriven_Mode + + + + + PKEY_AudioEndpoint_JackSubType + + + + + PKEY_AudioEngine_DeviceFormat + + + + + PKEY_AudioEngine_OEMFormat + + + + + PKEY _Devie_FriendlyName + + + + + PKEY _Device_IconPath + + + + + Collection of sessions. + + + + + Returns session at index. + + + + + + + Number of current sessions. + + + + + Windows CoreAudio SimpleAudioVolume + + + + + Creates a new Audio endpoint volume + + ISimpleAudioVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Allows the user to adjust the volume from + 0.0 to 1.0 + + + + + Mute + + + + + Represents state of a capture device + + + + + Not recording + + + + + Beginning to record + + + + + Recording in progress + + + + + Requesting stop + + + + + Audio Capture using Wasapi + See http://msdn.microsoft.com/en-us/library/dd370800%28VS.85%29.aspx + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + Length of the audio buffer in milliseconds. A lower value means lower latency but increased CPU usage. + + + + Share Mode - set before calling StartRecording + + + + + Current Capturing State + + + + + Capturing wave format + + + + + Gets the default audio capture device + + The default audio capture device + + + + To allow overrides to specify different flags (e.g. loopback) + + + + + Start Capturing + + + + + Stop Capturing (requests a stop, wait for RecordingStopped event to know it has finished) + + + + + Dispose + + + + + Audio Endpoint Volume + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + On Volume Notification + + + + + Volume Range + + + + + Hardware Support + + + + + Step Information + + + + + Channels + + + + + Master Volume Level + + + + + Master Volume Level Scalar + + + + + Mute + + + + + Volume Step Up + + + + + Volume Step Down + + + + + Creates a new Audio endpoint volume + + IAudioEndpointVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Audio Meter Information + + + + + Peak Values + + + + + Hardware Support + + + + + Master Peak Value + + + + + Device State + + + + + DEVICE_STATE_ACTIVE + + + + + DEVICE_STATE_DISABLED + + + + + DEVICE_STATE_NOTPRESENT + + + + + DEVICE_STATE_UNPLUGGED + + + + + DEVICE_STATEMASK_ALL + + + + + Endpoint Hardware Support + + + + + Volume + + + + + Mute + + + + + Meter + + + + + The EDataFlow enumeration defines constants that indicate the direction + in which audio data flows between an audio endpoint device and an application + + + + + Audio rendering stream. + Audio data flows from the application to the audio endpoint device, which renders the stream. + + + + + Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, + to the application + + + + + Audio rendering or capture stream. Audio data can flow either from the application to the audio + endpoint device, or from the audio endpoint device to the application. + + + + + PROPERTYKEY is defined in wtypes.h + + + + + Format ID + + + + + Property ID + + + + + + + + + + + The ERole enumeration defines constants that indicate the role + that the system has assigned to an audio endpoint device + + + + + Games, system notification sounds, and voice commands. + + + + + Music, movies, narration, and live music recording + + + + + Voice communications (talking to another person). + + + + + MM Device + + + + + Audio Client + + + + + Audio Meter Information + + + + + Audio Endpoint Volume + + + + + AudioSessionManager instance + + + + + Properties + + + + + Friendly name for the endpoint + + + + + Friendly name of device + + + + + Icon path of device + + + + + Device ID + + + + + Data Flow + + + + + Device State + + + + + To string + + + + + Dispose + + + + + Finalizer + + + + + MM Device Enumerator + + + + + Creates a new MM Device Enumerator + + + + + Enumerate Audio Endpoints + + Desired DataFlow + State Mask + Device Collection + + + + Get Default Endpoint + + Data Flow + Role + Device + + + + Check to see if a default audio end point exists without needing an exception. + + Data Flow + Role + True if one exists, and false if one does not exist. + + + + Get device by ID + + Device ID + Device + + + + Registers a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + Unregisters a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + + + + Called to dispose/finalize contained objects. + + True if disposing, false if called from a finalizer. + + + + Property Store class, only supports reading properties at the moment. + + + + + Property Count + + + + + Gets property by index + + Property index + The property + + + + Contains property guid + + Looks for a specific key + True if found + + + + Indexer by guid + + Property Key + Property or null if not found + + + + Gets property key at sepecified index + + Index + Property key + + + + Gets property value at specified index + + Index + Property value + + + + Creates a new property store + + IPropertyStore COM interface + + + + Property Store Property + + + + + Property Key + + + + + Property Value + + + + + Envelope generator (ADSR) + + + + + Envelope State + + + + + Idle + + + + + Attack + + + + + Decay + + + + + Sustain + + + + + Release + + + + + Creates and Initializes an Envelope Generator + + + + + Attack Rate (seconds * SamplesPerSecond) + + + + + Decay Rate (seconds * SamplesPerSecond) + + + + + Release Rate (seconds * SamplesPerSecond) + + + + + Sustain Level (1 = 100%) + + + + + Sets the attack curve + + + + + Sets the decay release curve + + + + + Read the next volume multiplier from the envelope generator + + A volume multiplier + + + + Trigger the gate + + If true, enter attack phase, if false enter release phase (unless already idle) + + + + Current envelope state + + + + + Reset to idle state + + + + + Get the current output level + + + + + Fully managed resampler, based on Cockos WDL Resampler + + + + + Creates a new Resampler + + + + + sets the mode + if sinc set, it overrides interp or filtercnt + + + + + Sets the filter parameters + used for filtercnt>0 but not sinc + + + + + Set feed mode + + if true, that means the first parameter to ResamplePrepare will specify however much input you have, not how much you want + + + + Reset + + + + + Prepare + note that it is safe to call ResamplePrepare without calling ResampleOut (the next call of ResamplePrepare will function as normal) + nb inbuffer was WDL_ResampleSample **, returning a place to put the in buffer, so we return a buffer and offset + + req_samples is output samples desired if !wantInputDriven, or if wantInputDriven is input samples that we have + + + + returns number of samples desired (put these into *inbuffer) + + + + SMB Pitch Shifter + + + + + Pitch Shift + + + + + Pitch Shift + + + + + Short Time Fourier Transform + + + + + BiQuad filter + + + + + Passes a single sample through the filter + + Input sample + Output sample + + + + Set this up as a low pass filter + + Sample Rate + Cut-off Frequency + Bandwidth + + + + Set this up as a peaking EQ + + Sample Rate + Centre Frequency + Bandwidth (Q) + Gain in decibels + + + + Set this as a high pass filter + + + + + Create a low pass filter + + + + + Create a High pass filter + + + + + Create a bandpass filter with constant skirt gain + + + + + Create a bandpass filter with constant peak gain + + + + + Creates a notch filter + + + + + Creaes an all pass filter + + + + + Create a Peaking EQ + + + + + H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) + + + + a "shelf slope" parameter (for shelving EQ only). + When S = 1, the shelf slope is as steep as it can be and remain monotonically + increasing or decreasing gain with frequency. The shelf slope, in dB/octave, + remains proportional to S for all other values for a fixed f0/Fs and dBgain. + Gain in decibels + + + + H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) + + + + + + + + + + Type to represent complex number + + + + + Real Part + + + + + Imaginary Part + + + + + Summary description for FastFourierTransform. + + + + + This computes an in-place complex-to-complex FFT + x and y are the real and imaginary arrays of 2^m points. + + + + + Applies a Hamming Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hamming window + + + + Applies a Hann Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hann window + + + + Applies a Blackman-Harris Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Blackmann-Harris window + + + + Summary description for ImpulseResponseConvolution. + + + + + A very simple mono convolution algorithm + + + This will be very slow + + + + + This is actually a downwards normalize for data that will clip + + + + + http://tech.ebu.ch/docs/tech/tech3306-2009.pdf + + + + + WaveFormat + + + + + Data Chunk Position + + + + + Data Chunk Length + + + + + Riff Chunks + + + + + Represents an entry in a Cakewalk drum map + + + + + User customisable note name + + + + + Input MIDI note number + + + + + Output MIDI note number + + + + + Output port + + + + + Output MIDI Channel + + + + + Velocity adjustment + + + + + Velocity scaling - in percent + + + + + Describes this drum map entry + + + + + Represents a Cakewalk Drum Map file (.map) + + + + + Parses a Cakewalk Drum Map file + + Path of the .map file + + + + The drum mappings in this drum map + + + + + Describes this drum map + + + + + MP3 Frame decompressor using the Windows Media MP3 Decoder DMO object + + + + + Initializes a new instance of the DMO MP3 Frame decompressor + + + + + + Converted PCM WaveFormat + + + + + Decompress a single frame of MP3 + + + + + Alerts us that a reposition has occured so the MP3 decoder needs to reset its state + + + + + Dispose of this obejct and clean up resources + + + + + Audio Subtype GUIDs + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372553%28v=vs.85%29.aspx + + + + + Advanced Audio Coding (AAC). + + + + + Not used + + + + + Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). + + + + + Encrypted audio data used with secure audio path. + + + + + Digital Theater Systems (DTS) audio. + + + + + Uncompressed IEEE floating-point audio. + + + + + MPEG Audio Layer-3 (MP3). + + + + + MPEG-1 audio payload. + + + + + Windows Media Audio 9 Voice codec. + + + + + Uncompressed PCM audio. + + + + + Windows Media Audio 9 Professional codec over S/PDIF. + + + + + Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. + + + + + Dolby Digital (AC-3). + + + + + MPEG-4 and AAC Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + μ-law coding + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Adaptive delta pulse code modulation (ADPCM) + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Dolby Digital Plus formatted for HDMI output. + http://msdn.microsoft.com/en-us/library/windows/hardware/ff538392(v=vs.85).aspx + Reference : internet + + + + + MSAudio1 - unknown meaning + Reference : wmcodecdsp.h + + + + + IMA ADPCM ACM Wrapper + + + + + WMSP2 - unknown meaning + Reference: wmsdkidl.h + + + + + Creates an instance of either the sink writer or the source reader. + + + + + Creates an instance of the sink writer or source reader, given a URL. + + + + + Creates an instance of the sink writer or source reader, given an IUnknown pointer. + + + + + CLSID_MFReadWriteClassFactory + + + + + Media Foundation Errors + + + + RANGES + 14000 - 14999 = General Media Foundation errors + 15000 - 15999 = ASF parsing errors + 16000 - 16999 = Media Source errors + 17000 - 17999 = MEDIAFOUNDATION Network Error Events + 18000 - 18999 = MEDIAFOUNDATION WMContainer Error Events + 19000 - 19999 = MEDIAFOUNDATION Media Sink Error Events + 20000 - 20999 = Renderer errors + 21000 - 21999 = Topology Errors + 25000 - 25999 = Timeline Errors + 26000 - 26999 = Unused + 28000 - 28999 = Transform errors + 29000 - 29999 = Content Protection errors + 40000 - 40999 = Clock errors + 41000 - 41999 = MF Quality Management Errors + 42000 - 42999 = MF Transcode API Errors + + + + + MessageId: MF_E_PLATFORM_NOT_INITIALIZED + + MessageText: + + Platform not initialized. Please call MFStartup().%0 + + + + + MessageId: MF_E_BUFFERTOOSMALL + + MessageText: + + The buffer was too small to carry out the requested action.%0 + + + + + MessageId: MF_E_INVALIDREQUEST + + MessageText: + + The request is invalid in the current state.%0 + + + + + MessageId: MF_E_INVALIDSTREAMNUMBER + + MessageText: + + The stream number provided was invalid.%0 + + + + + MessageId: MF_E_INVALIDMEDIATYPE + + MessageText: + + The data specified for the media type is invalid, inconsistent, or not supported by this object.%0 + + + + + MessageId: MF_E_NOTACCEPTING + + MessageText: + + The callee is currently not accepting further input.%0 + + + + + MessageId: MF_E_NOT_INITIALIZED + + MessageText: + + This object needs to be initialized before the requested operation can be carried out.%0 + + + + + MessageId: MF_E_UNSUPPORTED_REPRESENTATION + + MessageText: + + The requested representation is not supported by this object.%0 + + + + + MessageId: MF_E_NO_MORE_TYPES + + MessageText: + + An object ran out of media types to suggest therefore the requested chain of streaming objects cannot be completed.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SERVICE + + MessageText: + + The object does not support the specified service.%0 + + + + + MessageId: MF_E_UNEXPECTED + + MessageText: + + An unexpected error has occurred in the operation requested.%0 + + + + + MessageId: MF_E_INVALIDNAME + + MessageText: + + Invalid name.%0 + + + + + MessageId: MF_E_INVALIDTYPE + + MessageText: + + Invalid type.%0 + + + + + MessageId: MF_E_INVALID_FILE_FORMAT + + MessageText: + + The file does not conform to the relevant file format specification. + + + + + MessageId: MF_E_INVALIDINDEX + + MessageText: + + Invalid index.%0 + + + + + MessageId: MF_E_INVALID_TIMESTAMP + + MessageText: + + An invalid timestamp was given.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SCHEME + + MessageText: + + The scheme of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_BYTESTREAM_TYPE + + MessageText: + + The byte stream type of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_TIME_FORMAT + + MessageText: + + The given time format is unsupported.%0 + + + + + MessageId: MF_E_NO_SAMPLE_TIMESTAMP + + MessageText: + + The Media Sample does not have a timestamp.%0 + + + + + MessageId: MF_E_NO_SAMPLE_DURATION + + MessageText: + + The Media Sample does not have a duration.%0 + + + + + MessageId: MF_E_INVALID_STREAM_DATA + + MessageText: + + The request failed because the data in the stream is corrupt.%0\n. + + + + + MessageId: MF_E_RT_UNAVAILABLE + + MessageText: + + Real time services are not available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE + + MessageText: + + The specified rate is not supported.%0 + + + + + MessageId: MF_E_THINNING_UNSUPPORTED + + MessageText: + + This component does not support stream-thinning.%0 + + + + + MessageId: MF_E_REVERSE_UNSUPPORTED + + MessageText: + + The call failed because no reverse playback rates are available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE_TRANSITION + + MessageText: + + The requested rate transition cannot occur in the current state.%0 + + + + + MessageId: MF_E_RATE_CHANGE_PREEMPTED + + MessageText: + + The requested rate change has been pre-empted and will not occur.%0 + + + + + MessageId: MF_E_NOT_FOUND + + MessageText: + + The specified object or value does not exist.%0 + + + + + MessageId: MF_E_NOT_AVAILABLE + + MessageText: + + The requested value is not available.%0 + + + + + MessageId: MF_E_NO_CLOCK + + MessageText: + + The specified operation requires a clock and no clock is available.%0 + + + + + MessageId: MF_S_MULTIPLE_BEGIN + + MessageText: + + This callback and state had already been passed in to this event generator earlier.%0 + + + + + MessageId: MF_E_MULTIPLE_BEGIN + + MessageText: + + This callback has already been passed in to this event generator.%0 + + + + + MessageId: MF_E_MULTIPLE_SUBSCRIBERS + + MessageText: + + Some component is already listening to events on this event generator.%0 + + + + + MessageId: MF_E_TIMER_ORPHANED + + MessageText: + + This timer was orphaned before its callback time arrived.%0 + + + + + MessageId: MF_E_STATE_TRANSITION_PENDING + + MessageText: + + A state transition is already pending.%0 + + + + + MessageId: MF_E_UNSUPPORTED_STATE_TRANSITION + + MessageText: + + The requested state transition is unsupported.%0 + + + + + MessageId: MF_E_UNRECOVERABLE_ERROR_OCCURRED + + MessageText: + + An unrecoverable error has occurred.%0 + + + + + MessageId: MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS + + MessageText: + + The provided sample has too many buffers.%0 + + + + + MessageId: MF_E_SAMPLE_NOT_WRITABLE + + MessageText: + + The provided sample is not writable.%0 + + + + + MessageId: MF_E_INVALID_KEY + + MessageText: + + The specified key is not valid. + + + + + MessageId: MF_E_BAD_STARTUP_VERSION + + MessageText: + + You are calling MFStartup with the wrong MF_VERSION. Mismatched bits? + + + + + MessageId: MF_E_UNSUPPORTED_CAPTION + + MessageText: + + The caption of the given URL is unsupported.%0 + + + + + MessageId: MF_E_INVALID_POSITION + + MessageText: + + The operation on the current offset is not permitted.%0 + + + + + MessageId: MF_E_ATTRIBUTENOTFOUND + + MessageText: + + The requested attribute was not found.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_ALLOWED + + MessageText: + + The specified property type is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_SUPPORTED + + MessageText: + + The specified property type is not supported.%0 + + + + + MessageId: MF_E_PROPERTY_EMPTY + + MessageText: + + The specified property is empty.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_EMPTY + + MessageText: + + The specified property is not empty.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_NOT_ALLOWED + + MessageText: + + The vector property specified is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_REQUIRED + + MessageText: + + A vector property is required in this context.%0 + + + + + MessageId: MF_E_OPERATION_CANCELLED + + MessageText: + + The operation is cancelled.%0 + + + + + MessageId: MF_E_BYTESTREAM_NOT_SEEKABLE + + MessageText: + + The provided bytestream was expected to be seekable and it is not.%0 + + + + + MessageId: MF_E_DISABLED_IN_SAFEMODE + + MessageText: + + The Media Foundation platform is disabled when the system is running in Safe Mode.%0 + + + + + MessageId: MF_E_CANNOT_PARSE_BYTESTREAM + + MessageText: + + The Media Source could not parse the byte stream.%0 + + + + + MessageId: MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS + + MessageText: + + Mutually exclusive flags have been specified to source resolver. This flag combination is invalid.%0 + + + + + MessageId: MF_E_MEDIAPROC_WRONGSTATE + + MessageText: + + MediaProc is in the wrong state%0 + + + + + MessageId: MF_E_RT_THROUGHPUT_NOT_AVAILABLE + + MessageText: + + Real time I/O service can not provide requested throughput.%0 + + + + + MessageId: MF_E_RT_TOO_MANY_CLASSES + + MessageText: + + The workqueue cannot be registered with more classes.%0 + + + + + MessageId: MF_E_RT_WOULDBLOCK + + MessageText: + + This operation cannot succeed because another thread owns this object.%0 + + + + + MessageId: MF_E_NO_BITPUMP + + MessageText: + + Internal. Bitpump not found.%0 + + + + + MessageId: MF_E_RT_OUTOFMEMORY + + MessageText: + + No more RT memory available.%0 + + + + + MessageId: MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED + + MessageText: + + An MMCSS class has not been set for this work queue.%0 + + + + + MessageId: MF_E_INSUFFICIENT_BUFFER + + MessageText: + + Insufficient memory for response.%0 + + + + + MessageId: MF_E_CANNOT_CREATE_SINK + + MessageText: + + Activate failed to create mediasink. Call OutputNode::GetUINT32(MF_TOPONODE_MAJORTYPE) for more information. %0 + + + + + MessageId: MF_E_BYTESTREAM_UNKNOWN_LENGTH + + MessageText: + + The length of the provided bytestream is unknown.%0 + + + + + MessageId: MF_E_SESSION_PAUSEWHILESTOPPED + + MessageText: + + The media session cannot pause from a stopped state.%0 + + + + + MessageId: MF_S_ACTIVATE_REPLACED + + MessageText: + + The activate could not be created in the remote process for some reason it was replaced with empty one.%0 + + + + + MessageId: MF_E_FORMAT_CHANGE_NOT_SUPPORTED + + MessageText: + + The data specified for the media type is supported, but would require a format change, which is not supported by this object.%0 + + + + + MessageId: MF_E_INVALID_WORKQUEUE + + MessageText: + + The operation failed because an invalid combination of workqueue ID and flags was specified.%0 + + + + + MessageId: MF_E_DRM_UNSUPPORTED + + MessageText: + + No DRM support is available.%0 + + + + + MessageId: MF_E_UNAUTHORIZED + + MessageText: + + This operation is not authorized.%0 + + + + + MessageId: MF_E_OUT_OF_RANGE + + MessageText: + + The value is not in the specified or valid range.%0 + + + + + MessageId: MF_E_INVALID_CODEC_MERIT + + MessageText: + + The registered codec merit is not valid.%0 + + + + + MessageId: MF_E_HW_MFT_FAILED_START_STREAMING + + MessageText: + + Hardware MFT failed to start streaming due to lack of hardware resources.%0 + + + + + MessageId: MF_S_ASF_PARSEINPROGRESS + + MessageText: + + Parsing is still in progress and is not yet complete.%0 + + + + + MessageId: MF_E_ASF_PARSINGINCOMPLETE + + MessageText: + + Not enough data have been parsed to carry out the requested action.%0 + + + + + MessageId: MF_E_ASF_MISSINGDATA + + MessageText: + + There is a gap in the ASF data provided.%0 + + + + + MessageId: MF_E_ASF_INVALIDDATA + + MessageText: + + The data provided are not valid ASF.%0 + + + + + MessageId: MF_E_ASF_OPAQUEPACKET + + MessageText: + + The packet is opaque, so the requested information cannot be returned.%0 + + + + + MessageId: MF_E_ASF_NOINDEX + + MessageText: + + The requested operation failed since there is no appropriate ASF index.%0 + + + + + MessageId: MF_E_ASF_OUTOFRANGE + + MessageText: + + The value supplied is out of range for this operation.%0 + + + + + MessageId: MF_E_ASF_INDEXNOTLOADED + + MessageText: + + The index entry requested needs to be loaded before it can be available.%0 + + + + + MessageId: MF_E_ASF_TOO_MANY_PAYLOADS + + MessageText: + + The packet has reached the maximum number of payloads.%0 + + + + + MessageId: MF_E_ASF_UNSUPPORTED_STREAM_TYPE + + MessageText: + + Stream type is not supported.%0 + + + + + MessageId: MF_E_ASF_DROPPED_PACKET + + MessageText: + + One or more ASF packets were dropped.%0 + + + + + MessageId: MF_E_NO_EVENTS_AVAILABLE + + MessageText: + + There are no events available in the queue.%0 + + + + + MessageId: MF_E_INVALID_STATE_TRANSITION + + MessageText: + + A media source cannot go from the stopped state to the paused state.%0 + + + + + MessageId: MF_E_END_OF_STREAM + + MessageText: + + The media stream cannot process any more samples because there are no more samples in the stream.%0 + + + + + MessageId: MF_E_SHUTDOWN + + MessageText: + + The request is invalid because Shutdown() has been called.%0 + + + + + MessageId: MF_E_MP3_NOTFOUND + + MessageText: + + The MP3 object was not found.%0 + + + + + MessageId: MF_E_MP3_OUTOFDATA + + MessageText: + + The MP3 parser ran out of data before finding the MP3 object.%0 + + + + + MessageId: MF_E_MP3_NOTMP3 + + MessageText: + + The file is not really a MP3 file.%0 + + + + + MessageId: MF_E_MP3_NOTSUPPORTED + + MessageText: + + The MP3 file is not supported.%0 + + + + + MessageId: MF_E_NO_DURATION + + MessageText: + + The Media stream has no duration.%0 + + + + + MessageId: MF_E_INVALID_FORMAT + + MessageText: + + The Media format is recognized but is invalid.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_FOUND + + MessageText: + + The property requested was not found.%0 + + + + + MessageId: MF_E_PROPERTY_READ_ONLY + + MessageText: + + The property is read only.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_ALLOWED + + MessageText: + + The specified property is not allowed in this context.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NOT_STARTED + + MessageText: + + The media source is not started.%0 + + + + + MessageId: MF_E_UNSUPPORTED_FORMAT + + MessageText: + + The Media format is recognized but not supported.%0 + + + + + MessageId: MF_E_MP3_BAD_CRC + + MessageText: + + The MPEG frame has bad CRC.%0 + + + + + MessageId: MF_E_NOT_PROTECTED + + MessageText: + + The file is not protected.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_WRONGSTATE + + MessageText: + + The media source is in the wrong state%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED + + MessageText: + + No streams are selected in source presentation descriptor.%0 + + + + + MessageId: MF_E_CANNOT_FIND_KEYFRAME_SAMPLE + + MessageText: + + No key frame sample was found.%0 + + + + + MessageId: MF_E_NETWORK_RESOURCE_FAILURE + + MessageText: + + An attempt to acquire a network resource failed.%0 + + + + + MessageId: MF_E_NET_WRITE + + MessageText: + + Error writing to the network.%0 + + + + + MessageId: MF_E_NET_READ + + MessageText: + + Error reading from the network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_NETWORK + + MessageText: + + Internal. Entry cannot complete operation without network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_ASYNC + + MessageText: + + Internal. Async op is required.%0 + + + + + MessageId: MF_E_NET_BWLEVEL_NOT_SUPPORTED + + MessageText: + + Internal. Bandwidth levels are not supported.%0 + + + + + MessageId: MF_E_NET_STREAMGROUPS_NOT_SUPPORTED + + MessageText: + + Internal. Stream groups are not supported.%0 + + + + + MessageId: MF_E_NET_MANUALSS_NOT_SUPPORTED + + MessageText: + + Manual stream selection is not supported.%0 + + + + + MessageId: MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR + + MessageText: + + Invalid presentation descriptor.%0 + + + + + MessageId: MF_E_NET_CACHESTREAM_NOT_FOUND + + MessageText: + + Cannot find cache stream.%0 + + + + + MessageId: MF_I_MANUAL_PROXY + + MessageText: + + The proxy setting is manual.%0 + + + + duplicate removed + MessageId=17011 Severity=Informational Facility=MEDIAFOUNDATION SymbolicName=MF_E_INVALID_REQUEST + Language=English + The request is invalid in the current state.%0 + . + + MessageId: MF_E_NET_REQUIRE_INPUT + + MessageText: + + Internal. Entry cannot complete operation without input.%0 + + + + + MessageId: MF_E_NET_REDIRECT + + MessageText: + + The client redirected to another server.%0 + + + + + MessageId: MF_E_NET_REDIRECT_TO_PROXY + + MessageText: + + The client is redirected to a proxy server.%0 + + + + + MessageId: MF_E_NET_TOO_MANY_REDIRECTS + + MessageText: + + The client reached maximum redirection limit.%0 + + + + + MessageId: MF_E_NET_TIMEOUT + + MessageText: + + The server, a computer set up to offer multimedia content to other computers, could not handle your request for multimedia content in a timely manner. Please try again later.%0 + + + + + MessageId: MF_E_NET_CLIENT_CLOSE + + MessageText: + + The control socket is closed by the client.%0 + + + + + MessageId: MF_E_NET_BAD_CONTROL_DATA + + MessageText: + + The server received invalid data from the client on the control connection.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_SERVER + + MessageText: + + The server is not a compatible streaming media server.%0 + + + + + MessageId: MF_E_NET_UNSAFE_URL + + MessageText: + + Url.%0 + + + + + MessageId: MF_E_NET_CACHE_NO_DATA + + MessageText: + + Data is not available.%0 + + + + + MessageId: MF_E_NET_EOL + + MessageText: + + End of line.%0 + + + + + MessageId: MF_E_NET_BAD_REQUEST + + MessageText: + + The request could not be understood by the server.%0 + + + + + MessageId: MF_E_NET_INTERNAL_SERVER_ERROR + + MessageText: + + The server encountered an unexpected condition which prevented it from fulfilling the request.%0 + + + + + MessageId: MF_E_NET_SESSION_NOT_FOUND + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_NET_NOCONNECTION + + MessageText: + + There is no connection established with the Windows Media server. The operation failed.%0 + + + + + MessageId: MF_E_NET_CONNECTION_FAILURE + + MessageText: + + The network connection has failed.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_PUSHSERVER + + MessageText: + + The Server service that received the HTTP push request is not a compatible version of Windows Media Services (WMS). This error may indicate the push request was received by IIS instead of WMS. Ensure WMS is started and has the HTTP Server control protocol properly enabled and try again.%0 + + + + + MessageId: MF_E_NET_SERVER_ACCESSDENIED + + MessageText: + + The Windows Media server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_PROXY_ACCESSDENIED + + MessageText: + + The proxy server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_CANNOTCONNECT + + MessageText: + + Unable to establish a connection to the server.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_TEMPLATE + + MessageText: + + The specified push template is invalid.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_PUBLISHING_POINT + + MessageText: + + The specified push publishing point is invalid.%0 + + + + + MessageId: MF_E_NET_BUSY + + MessageText: + + The requested resource is in use.%0 + + + + + MessageId: MF_E_NET_RESOURCE_GONE + + MessageText: + + The Publishing Point or file on the Windows Media Server is no longer available.%0 + + + + + MessageId: MF_E_NET_ERROR_FROM_PROXY + + MessageText: + + The proxy experienced an error while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_PROXY_TIMEOUT + + MessageText: + + The proxy did not receive a timely response while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_SERVER_UNAVAILABLE + + MessageText: + + The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.%0 + + + + + MessageId: MF_E_NET_TOO_MUCH_DATA + + MessageText: + + The encoding process was unable to keep up with the amount of supplied data.%0 + + + + + MessageId: MF_E_NET_SESSION_INVALID + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_OFFLINE_MODE + + MessageText: + + The requested URL is not available in offline mode.%0 + + + + + MessageId: MF_E_NET_UDP_BLOCKED + + MessageText: + + A device in the network is blocking UDP traffic.%0 + + + + + MessageId: MF_E_NET_UNSUPPORTED_CONFIGURATION + + MessageText: + + The specified configuration value is not supported.%0 + + + + + MessageId: MF_E_NET_PROTOCOL_DISABLED + + MessageText: + + The networking protocol is disabled.%0 + + + + + MessageId: MF_E_ALREADY_INITIALIZED + + MessageText: + + This object has already been initialized and cannot be re-initialized at this time.%0 + + + + + MessageId: MF_E_BANDWIDTH_OVERRUN + + MessageText: + + The amount of data passed in exceeds the given bitrate and buffer window.%0 + + + + + MessageId: MF_E_LATE_SAMPLE + + MessageText: + + The sample was passed in too late to be correctly processed.%0 + + + + + MessageId: MF_E_FLUSH_NEEDED + + MessageText: + + The requested action cannot be carried out until the object is flushed and the queue is emptied.%0 + + + + + MessageId: MF_E_INVALID_PROFILE + + MessageText: + + The profile is invalid.%0 + + + + + MessageId: MF_E_INDEX_NOT_COMMITTED + + MessageText: + + The index that is being generated needs to be committed before the requested action can be carried out.%0 + + + + + MessageId: MF_E_NO_INDEX + + MessageText: + + The index that is necessary for the requested action is not found.%0 + + + + + MessageId: MF_E_CANNOT_INDEX_IN_PLACE + + MessageText: + + The requested index cannot be added in-place to the specified ASF content.%0 + + + + + MessageId: MF_E_MISSING_ASF_LEAKYBUCKET + + MessageText: + + The ASF leaky bucket parameters must be specified in order to carry out this request.%0 + + + + + MessageId: MF_E_INVALID_ASF_STREAMID + + MessageText: + + The stream id is invalid. The valid range for ASF stream id is from 1 to 127.%0 + + + + + MessageId: MF_E_STREAMSINK_REMOVED + + MessageText: + + The requested Stream Sink has been removed and cannot be used.%0 + + + + + MessageId: MF_E_STREAMSINKS_OUT_OF_SYNC + + MessageText: + + The various Stream Sinks in this Media Sink are too far out of sync for the requested action to take place.%0 + + + + + MessageId: MF_E_STREAMSINKS_FIXED + + MessageText: + + Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.%0 + + + + + MessageId: MF_E_STREAMSINK_EXISTS + + MessageText: + + The given Stream Sink already exists.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_CANCELED + + MessageText: + + Sample allocations have been canceled.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_EMPTY + + MessageText: + + The sample allocator is currently empty, due to outstanding requests.%0 + + + + + MessageId: MF_E_SINK_ALREADYSTOPPED + + MessageText: + + When we try to sopt a stream sink, it is already stopped %0 + + + + + MessageId: MF_E_ASF_FILESINK_BITRATE_UNKNOWN + + MessageText: + + The ASF file sink could not reserve AVIO because the bitrate is unknown.%0 + + + + + MessageId: MF_E_SINK_NO_STREAMS + + MessageText: + + No streams are selected in sink presentation descriptor.%0 + + + + + MessageId: MF_S_SINK_NOT_FINALIZED + + MessageText: + + The sink has not been finalized before shut down. This may cause sink generate a corrupted content.%0 + + + + + MessageId: MF_E_METADATA_TOO_LONG + + MessageText: + + A metadata item was too long to write to the output container.%0 + + + + + MessageId: MF_E_SINK_NO_SAMPLES_PROCESSED + + MessageText: + + The operation failed because no samples were processed by the sink.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_PROCAMP_HW + + MessageText: + + There is no available procamp hardware with which to perform color correction.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_DEINTERLACE_HW + + MessageText: + + There is no available deinterlacing hardware with which to deinterlace the video stream.%0 + + + + + MessageId: MF_E_VIDEO_REN_COPYPROT_FAILED + + MessageText: + + A video stream requires copy protection to be enabled, but there was a failure in attempting to enable copy protection.%0 + + + + + MessageId: MF_E_VIDEO_REN_SURFACE_NOT_SHARED + + MessageText: + + A component is attempting to access a surface for sharing that is not shared.%0 + + + + + MessageId: MF_E_VIDEO_DEVICE_LOCKED + + MessageText: + + A component is attempting to access a shared device that is already locked by another component.%0 + + + + + MessageId: MF_E_NEW_VIDEO_DEVICE + + MessageText: + + The device is no longer available. The handle should be closed and a new one opened.%0 + + + + + MessageId: MF_E_NO_VIDEO_SAMPLE_AVAILABLE + + MessageText: + + A video sample is not currently queued on a stream that is required for mixing.%0 + + + + + MessageId: MF_E_NO_AUDIO_PLAYBACK_DEVICE + + MessageText: + + No audio playback device was found.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE + + MessageText: + + The requested audio playback device is currently in use.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED + + MessageText: + + The audio playback device is no longer present.%0 + + + + + MessageId: MF_E_AUDIO_SERVICE_NOT_RUNNING + + MessageText: + + The audio service is not running.%0 + + + + + MessageId: MF_E_TOPO_INVALID_OPTIONAL_NODE + + MessageText: + + The topology contains an invalid optional node. Possible reasons are incorrect number of outputs and inputs or optional node is at the beginning or end of a segment. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_FIND_DECRYPTOR + + MessageText: + + No suitable transform was found to decrypt the content. %0 + + + + + MessageId: MF_E_TOPO_CODEC_NOT_FOUND + + MessageText: + + No suitable transform was found to encode or decode the content. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_CONNECT + + MessageText: + + Unable to find a way to connect nodes%0 + + + + + MessageId: MF_E_TOPO_UNSUPPORTED + + MessageText: + + Unsupported operations in topoloader%0 + + + + + MessageId: MF_E_TOPO_INVALID_TIME_ATTRIBUTES + + MessageText: + + The topology or its nodes contain incorrectly set time attributes%0 + + + + + MessageId: MF_E_TOPO_LOOPS_IN_TOPOLOGY + + MessageText: + + The topology contains loops, which are unsupported in media foundation topologies%0 + + + + + MessageId: MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_STREAM_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a stream descriptor%0 + + + + + MessageId: MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED + + MessageText: + + A stream descriptor was set on a source stream node but it was not selected on the presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_SOURCE + + MessageText: + + A source stream node in the topology does not have a source%0 + + + + + MessageId: MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED + + MessageText: + + The topology loader does not support sink activates on output nodes.%0 + + + + + MessageId: MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID + + MessageText: + + The sequencer cannot find a segment with the given ID.%0\n. + + + + + MessageId: MF_S_SEQUENCER_CONTEXT_CANCELED + + MessageText: + + The context was canceled.%0\n. + + + + + MessageId: MF_E_NO_SOURCE_IN_CACHE + + MessageText: + + Cannot find source in source cache.%0\n. + + + + + MessageId: MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM + + MessageText: + + Cannot update topology flags.%0\n. + + + + + MessageId: MF_E_TRANSFORM_TYPE_NOT_SET + + MessageText: + + A valid type has not been set for this stream or a stream that it depends on.%0 + + + + + MessageId: MF_E_TRANSFORM_STREAM_CHANGE + + MessageText: + + A stream change has occurred. Output cannot be produced until the streams have been renegotiated.%0 + + + + + MessageId: MF_E_TRANSFORM_INPUT_REMAINING + + MessageText: + + The transform cannot take the requested action until all of the input data it currently holds is processed or flushed.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_MISSING + + MessageText: + + The transform requires a profile but no profile was supplied or found.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT + + MessageText: + + The transform requires a profile but the supplied profile was invalid or corrupt.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_TRUNCATED + + MessageText: + + The transform requires a profile but the supplied profile ended unexpectedly while parsing.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED + + MessageText: + + The property ID does not match any property supported by the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG + + MessageText: + + The variant does not have the type expected for this property ID.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE + + MessageText: + + An attempt was made to set the value on a read-only property.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM + + MessageText: + + The array property value has an unexpected number of dimensions.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG + + MessageText: + + The array or blob property value has an unexpected size.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE + + MessageText: + + The property value is out of range for this transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE + + MessageText: + + The property value is incompatible with some other property or mediatype set on the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set output mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set input mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION + + MessageText: + + The requested operation is not supported for the currently set combination of mediatypes.%0 + + + + + MessageId: MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES + + MessageText: + + The requested feature is not supported in combination with some other currently enabled feature.%0 + + + + + MessageId: MF_E_TRANSFORM_NEED_MORE_INPUT + + MessageText: + + The transform cannot produce output until it gets more input samples.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG + + MessageText: + + The requested operation is not supported for the current speaker configuration.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING + + MessageText: + + The transform cannot accept mediatype changes in the middle of processing.%0 + + + + + MessageId: MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT + + MessageText: + + The caller should not propagate this event to downstream components.%0 + + + + + MessageId: MF_E_UNSUPPORTED_D3D_TYPE + + MessageText: + + The input type is not supported for D3D device.%0 + + + + + MessageId: MF_E_TRANSFORM_ASYNC_LOCKED + + MessageText: + + The caller does not appear to support this transform's asynchronous capabilities.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER + + MessageText: + + An audio compression manager driver could not be initialized by the transform.%0 + + + + + MessageId: MF_E_LICENSE_INCORRECT_RIGHTS + + MessageText: + + You are not allowed to open this file. Contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_OUTOFDATE + + MessageText: + + The license for this media file has expired. Get a new license or contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_REQUIRED + + MessageText: + + You need a license to perform the requested operation on this media file.%0 + + + + + MessageId: MF_E_DRM_HARDWARE_INCONSISTENT + + MessageText: + + The licenses for your media files are corrupted. Contact Microsoft product support.%0 + + + + + MessageId: MF_E_NO_CONTENT_PROTECTION_MANAGER + + MessageText: + + The APP needs to provide IMFContentProtectionManager callback to access the protected media file.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NO_RIGHTS + + MessageText: + + Client does not have rights to restore licenses.%0 + + + + + MessageId: MF_E_BACKUP_RESTRICTED_LICENSE + + MessageText: + + Licenses are restricted and hence can not be backed up.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION + + MessageText: + + License restore requires machine to be individualized.%0 + + + + + MessageId: MF_S_PROTECTION_NOT_REQUIRED + + MessageText: + + Protection for stream is not required.%0 + + + + + MessageId: MF_E_COMPONENT_REVOKED + + MessageText: + + Component is revoked.%0 + + + + + MessageId: MF_E_TRUST_DISABLED + + MessageText: + + Trusted functionality is currently disabled on this component.%0 + + + + + MessageId: MF_E_WMDRMOTA_NO_ACTION + + MessageText: + + No Action is set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_ALREADY_SET + + MessageText: + + Action is already set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE + + MessageText: + + DRM Heaader is not available.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED + + MessageText: + + Current encryption scheme is not supported.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_MISMATCH + + MessageText: + + Action does not match with current configuration.%0 + + + + + MessageId: MF_E_WMDRMOTA_INVALID_POLICY + + MessageText: + + Invalid policy for WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_POLICY_UNSUPPORTED + + MessageText: + + The policies that the Input Trust Authority requires to be enforced are unsupported by the outputs.%0 + + + + + MessageId: MF_E_OPL_NOT_SUPPORTED + + MessageText: + + The OPL that the license requires to be enforced are not supported by the Input Trust Authority.%0 + + + + + MessageId: MF_E_TOPOLOGY_VERIFICATION_FAILED + + MessageText: + + The topology could not be successfully verified.%0 + + + + + MessageId: MF_E_SIGNATURE_VERIFICATION_FAILED + + MessageText: + + Signature verification could not be completed successfully for this component.%0 + + + + + MessageId: MF_E_DEBUGGING_NOT_ALLOWED + + MessageText: + + Running this process under a debugger while using protected content is not allowed.%0 + + + + + MessageId: MF_E_CODE_EXPIRED + + MessageText: + + MF component has expired.%0 + + + + + MessageId: MF_E_GRL_VERSION_TOO_LOW + + MessageText: + + The current GRL on the machine does not meet the minimum version requirements.%0 + + + + + MessageId: MF_E_GRL_RENEWAL_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any renewal entries for the specified revocation.%0 + + + + + MessageId: MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any extensible entries for the specified extension GUID.%0 + + + + + MessageId: MF_E_KERNEL_UNTRUSTED + + MessageText: + + The kernel isn't secure for high security level content.%0 + + + + + MessageId: MF_E_PEAUTH_UNTRUSTED + + MessageText: + + The response from protected environment driver isn't valid.%0 + + + + + MessageId: MF_E_NON_PE_PROCESS + + MessageText: + + A non-PE process tried to talk to PEAuth.%0 + + + + + MessageId: MF_E_REBOOT_REQUIRED + + MessageText: + + We need to reboot the machine.%0 + + + + + MessageId: MF_S_WAIT_FOR_POLICY_SET + + MessageText: + + Protection for this stream is not guaranteed to be enforced until the MEPolicySet event is fired.%0 + + + + + MessageId: MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT + + MessageText: + + This video stream is disabled because it is being sent to an unknown software output.%0 + + + + + MessageId: MF_E_GRL_INVALID_FORMAT + + MessageText: + + The GRL file is not correctly formed, it may have been corrupted or overwritten.%0 + + + + + MessageId: MF_E_GRL_UNRECOGNIZED_FORMAT + + MessageText: + + The GRL file is in a format newer than those recognized by this GRL Reader.%0 + + + + + MessageId: MF_E_ALL_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and required all processes that can run protected media to restart.%0 + + + + + MessageId: MF_E_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and the current process needs to restart.%0 + + + + + MessageId: MF_E_USERMODE_UNTRUSTED + + MessageText: + + The user space is untrusted for protected content play.%0 + + + + + MessageId: MF_E_PEAUTH_SESSION_NOT_STARTED + + MessageText: + + PEAuth communication session hasn't been started.%0 + + + + + MessageId: MF_E_PEAUTH_PUBLICKEY_REVOKED + + MessageText: + + PEAuth's public key is revoked.%0 + + + + + MessageId: MF_E_GRL_ABSENT + + MessageText: + + The GRL is absent.%0 + + + + + MessageId: MF_S_PE_TRUSTED + + MessageText: + + The Protected Environment is trusted.%0 + + + + + MessageId: MF_E_PE_UNTRUSTED + + MessageText: + + The Protected Environment is untrusted.%0 + + + + + MessageId: MF_E_PEAUTH_NOT_STARTED + + MessageText: + + The Protected Environment Authorization service (PEAUTH) has not been started.%0 + + + + + MessageId: MF_E_INCOMPATIBLE_SAMPLE_PROTECTION + + MessageText: + + The sample protection algorithms supported by components are not compatible.%0 + + + + + MessageId: MF_E_PE_SESSIONS_MAXED + + MessageText: + + No more protected environment sessions can be supported.%0 + + + + + MessageId: MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED + + MessageText: + + WMDRM ITA does not allow protected content with high security level for this release.%0 + + + + + MessageId: MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED + + MessageText: + + WMDRM ITA cannot allow the requested action for the content as one or more components is not properly signed.%0 + + + + + MessageId: MF_E_ITA_UNSUPPORTED_ACTION + + MessageText: + + WMDRM ITA does not support the requested action.%0 + + + + + MessageId: MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS + + MessageText: + + WMDRM ITA encountered an error in parsing the Secure Audio Path parameters.%0 + + + + + MessageId: MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS + + MessageText: + + The Policy Manager action passed in is invalid.%0 + + + + + MessageId: MF_E_BAD_OPL_STRUCTURE_FORMAT + + MessageText: + + The structure specifying Output Protection Level is not the correct format.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID + + MessageText: + + WMDRM ITA does not recognize the Explicite Analog Video Output Protection guid specified in the license.%0 + + + + + MessageId: MF_E_NO_PMP_HOST + + MessageText: + + IMFPMPHost object not available.%0 + + + + + MessageId: MF_E_ITA_OPL_DATA_NOT_INITIALIZED + + MessageText: + + WMDRM ITA could not initialize the Output Protection Level data.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Analog Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Digital Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_CLOCK_INVALID_CONTINUITY_KEY + + MessageText: + + The continuity key supplied is not currently valid.%0 + + + + + MessageId: MF_E_CLOCK_NO_TIME_SOURCE + + MessageText: + + No Presentation Time Source has been specified.%0 + + + + + MessageId: MF_E_CLOCK_STATE_ALREADY_SET + + MessageText: + + The clock is already in the requested state.%0 + + + + + MessageId: MF_E_CLOCK_NOT_SIMPLE + + MessageText: + + The clock has too many advanced features to carry out the request.%0 + + + + + MessageId: MF_S_CLOCK_STOPPED + + MessageText: + + Timer::SetTimer returns this success code if called happened while timer is stopped. Timer is not going to be dispatched until clock is running%0 + + + + + MessageId: MF_E_NO_MORE_DROP_MODES + + MessageText: + + The component does not support any more drop modes.%0 + + + + + MessageId: MF_E_NO_MORE_QUALITY_LEVELS + + MessageText: + + The component does not support any more quality levels.%0 + + + + + MessageId: MF_E_DROPTIME_NOT_SUPPORTED + + MessageText: + + The component does not support drop time functionality.%0 + + + + + MessageId: MF_E_QUALITYKNOB_WAIT_LONGER + + MessageText: + + Quality Manager needs to wait longer before bumping the Quality Level up.%0 + + + + + MessageId: MF_E_QM_INVALIDSTATE + + MessageText: + + Quality Manager is in an invalid state. Quality Management is off at this moment.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_CONTAINERTYPE + + MessageText: + + No transcode output container type is specified.%0 + + + + + MessageId: MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS + + MessageText: + + The profile does not have a media type configuration for any selected source streams.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_MATCHING_ENCODER + + MessageText: + + Cannot find an encoder MFT that accepts the user preferred output type.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_INITIALIZED + + MessageText: + + Memory allocator is not initialized.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_COMMITED + + MessageText: + + Memory allocator is not committed yet.%0 + + + + + MessageId: MF_E_ALLOCATOR_ALREADY_COMMITED + + MessageText: + + Memory allocator has already been committed.%0 + + + + + MessageId: MF_E_STREAM_ERROR + + MessageText: + + An error occurred in media stream.%0 + + + + + MessageId: MF_E_INVALID_STREAM_STATE + + MessageText: + + Stream is not in a state to handle the request.%0 + + + + + MessageId: MF_E_HW_STREAM_NOT_CONNECTED + + MessageText: + + Hardware stream is not connected yet.%0 + + + + + Major Media Types + http://msdn.microsoft.com/en-us/library/windows/desktop/aa367377%28v=vs.85%29.aspx + + + + + Default + + + + + Audio + + + + + Video + + + + + Protected Media + + + + + Synchronized Accessible Media Interchange (SAMI) captions. + + + + + Script stream + + + + + Still image stream. + + + + + HTML stream. + + + + + Binary stream. + + + + + A stream that contains data files. + + + + + IMFActivate, defined in mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Creates the object associated with this activation object. + + + + + Shuts down the created object. + + + + + Detaches the created object from the activation object. + + + + + Represents a generic collection of IUnknown pointers. + + + + + Retrieves the number of objects in the collection. + + + + + Retrieves an object in the collection. + + + + + Adds an object to the collection. + + + + + Removes an object from the collection. + + + + + Removes an object from the collection. + + + + + Removes all items from the collection. + + + + + IMFMediaEvent - Represents an event generated by a Media Foundation object. Use this interface to get information about the event. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms702249%28v=vs.85%29.aspx + Mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the event type. + + + virtual HRESULT STDMETHODCALLTYPE GetType( + /* [out] */ __RPC__out MediaEventType *pmet) = 0; + + + + + Retrieves the extended type of the event. + + + virtual HRESULT STDMETHODCALLTYPE GetExtendedType( + /* [out] */ __RPC__out GUID *pguidExtendedType) = 0; + + + + + Retrieves an HRESULT that specifies the event status. + + + virtual HRESULT STDMETHODCALLTYPE GetStatus( + /* [out] */ __RPC__out HRESULT *phrStatus) = 0; + + + + + Retrieves the value associated with the event, if any. + + + virtual HRESULT STDMETHODCALLTYPE GetValue( + /* [out] */ __RPC__out PROPVARIANT *pvValue) = 0; + + + + + Implemented by the Microsoft Media Foundation sink writer object. + + + + + Adds a stream to the sink writer. + + + + + Sets the input format for a stream on the sink writer. + + + + + Initializes the sink writer for writing. + + + + + Delivers a sample to the sink writer. + + + + + Indicates a gap in an input stream. + + + + + Places a marker in the specified stream. + + + + + Notifies the media sink that a stream has reached the end of a segment. + + + + + Flushes one or more streams. + + + + + (Finalize) Completes all writing operations on the sink writer. + + + + + Queries the underlying media sink or encoder for an interface. + + + + + Gets statistics about the performance of the sink writer. + + + + + IMFTransform, defined in mftransform.h + + + + + Retrieves the minimum and maximum number of input and output streams. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( + /* [out] */ __RPC__out DWORD *pdwInputMinimum, + /* [out] */ __RPC__out DWORD *pdwInputMaximum, + /* [out] */ __RPC__out DWORD *pdwOutputMinimum, + /* [out] */ __RPC__out DWORD *pdwOutputMaximum) = 0; + + + + + Retrieves the current number of input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + /* [out] */ __RPC__out DWORD *pcInputStreams, + /* [out] */ __RPC__out DWORD *pcOutputStreams) = 0; + + + + + Retrieves the stream identifiers for the input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( + DWORD dwInputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwInputIDArraySize) DWORD *pdwInputIDs, + DWORD dwOutputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwOutputIDArraySize) DWORD *pdwOutputIDs) = 0; + + + + + Gets the buffer requirements and other information for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( + DWORD dwInputStreamID, + /* [out] */ __RPC__out MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the buffer requirements and other information for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( + DWORD dwOutputStreamID, + /* [out] */ __RPC__out MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the global attribute store for this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetAttributes( + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an input stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Removes an input stream from this MFT. + + + virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( + DWORD dwStreamID) = 0; + + + + + Adds one or more new input streams to this MFT. + + + virtual HRESULT STDMETHODCALLTYPE AddInputStreams( + DWORD cStreams, + /* [in] */ __RPC__in DWORD *adwStreamIDs) = 0; + + + + + Gets an available media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( + DWORD dwInputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Retrieves an available media type for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( + DWORD dwOutputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Sets, tests, or clears the media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetInputType( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Sets, tests, or clears the media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetOutputType( + DWORD dwOutputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Gets the current media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Gets the current media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Queries whether an input stream on this Media Foundation transform (MFT) can accept more data. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStatus( + DWORD dwInputStreamID, + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Queries whether the Media Foundation transform (MFT) is ready to produce output data. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Sets the range of time stamps the client needs for output. + + + virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( + LONGLONG hnsLowerBound, + LONGLONG hnsUpperBound) = 0; + + + + + Sends an event to an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessEvent( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaEvent *pEvent) = 0; + + + + + Sends a message to the Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFT_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + + + + Delivers data to an input stream on this Media Foundation transform (MFT). + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessInput( + DWORD dwInputStreamID, + IMFSample *pSample, + DWORD dwFlags) = 0; + + + + + Generates output from the current input data. + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessOutput( + DWORD dwFlags, + DWORD cOutputBufferCount, + /* [size_is][out][in] */ MFT_OUTPUT_DATA_BUFFER *pOutputSamples, + /* [out] */ DWORD *pdwStatus) = 0; + + + + + See mfobjects.h + + + + + Unknown event type. + + + + + Signals a serious error. + + + + + Custom event type. + + + + + A non-fatal error occurred during streaming. + + + + + Session Unknown + + + + + Raised after the IMFMediaSession::SetTopology method completes asynchronously + + + + + Raised by the Media Session when the IMFMediaSession::ClearTopologies method completes asynchronously. + + + + + Raised when the IMFMediaSession::Start method completes asynchronously. + + + + + Raised when the IMFMediaSession::Pause method completes asynchronously. + + + + + Raised when the IMFMediaSession::Stop method completes asynchronously. + + + + + Raised when the IMFMediaSession::Close method completes asynchronously. + + + + + Raised by the Media Session when it has finished playing the last presentation in the playback queue. + + + + + Raised by the Media Session when the playback rate changes. + + + + + Raised by the Media Session when it completes a scrubbing request. + + + + + Raised by the Media Session when the session capabilities change. + + + + + Raised by the Media Session when the status of a topology changes. + + + + + Raised by the Media Session when a new presentation starts. + + + + + Raised by a media source a new presentation is ready. + + + + + License acquisition is about to begin. + + + + + License acquisition is complete. + + + + + Individualization is about to begin. + + + + + Individualization is complete. + + + + + Signals the progress of a content enabler object. + + + + + A content enabler object's action is complete. + + + + + Raised by a trusted output if an error occurs while enforcing the output policy. + + + + + Contains status information about the enforcement of an output policy. + + + + + A media source started to buffer data. + + + + + A media source stopped buffering data. + + + + + The network source started opening a URL. + + + + + The network source finished opening a URL. + + + + + Raised by a media source at the start of a reconnection attempt. + + + + + Raised by a media source at the end of a reconnection attempt. + + + + + Raised by the enhanced video renderer (EVR) when it receives a user event from the presenter. + + + + + Raised by the Media Session when the format changes on a media sink. + + + + + Source Unknown + + + + + Raised when a media source starts without seeking. + + + + + Raised by a media stream when the source starts without seeking. + + + + + Raised when a media source seeks to a new position. + + + + + Raised by a media stream after a call to IMFMediaSource::Start causes a seek in the stream. + + + + + Raised by a media source when it starts a new stream. + + + + + Raised by a media source when it restarts or seeks a stream that is already active. + + + + + Raised by a media source when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media source when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media source when a presentation ends. + + + + + Raised by a media stream when the stream ends. + + + + + Raised when a media stream delivers a new sample. + + + + + Signals that a media stream does not have data available at a specified time. + + + + + Raised by a media stream when it starts or stops thinning the stream. + + + + + Raised by a media stream when the media type of the stream changes. + + + + + Raised by a media source when the playback rate changes. + + + + + Raised by the sequencer source when a segment is completed and is followed by another segment. + + + + + Raised by a media source when the source's characteristics change. + + + + + Raised by a media source to request a new playback rate. + + + + + Raised by a media source when it updates its metadata. + + + + + Raised by the sequencer source when the IMFSequencerSource::UpdateTopology method completes asynchronously. + + + + + Sink Unknown + + + + + Raised by a stream sink when it completes the transition to the running state. + + + + + Raised by a stream sink when it completes the transition to the stopped state. + + + + + Raised by a stream sink when it completes the transition to the paused state. + + + + + Raised by a stream sink when the rate has changed. + + + + + Raised by a stream sink to request a new media sample from the pipeline. + + + + + Raised by a stream sink after the IMFStreamSink::PlaceMarker method is called. + + + + + Raised by a stream sink when the stream has received enough preroll data to begin rendering. + + + + + Raised by a stream sink when it completes a scrubbing request. + + + + + Raised by a stream sink when the sink's media type is no longer valid. + + + + + Raised by the stream sinks of the EVR if the video device changes. + + + + + Provides feedback about playback quality to the quality manager. + + + + + Raised when a media sink becomes invalid. + + + + + The audio session display name changed. + + + + + The volume or mute state of the audio session changed + + + + + The audio device was removed. + + + + + The Windows audio server system was shut down. + + + + + The grouping parameters changed for the audio session. + + + + + The audio session icon changed. + + + + + The default audio format for the audio device changed. + + + + + The audio session was disconnected from a Windows Terminal Services session + + + + + The audio session was preempted by an exclusive-mode connection. + + + + + Trust Unknown + + + + + The output policy for a stream changed. + + + + + Content protection message + + + + + The IMFOutputTrustAuthority::SetPolicy method completed. + + + + + DRM License Backup Completed + + + + + DRM License Backup Progress + + + + + DRM License Restore Completed + + + + + DRM License Restore Progress + + + + + DRM License Acquisition Completed + + + + + DRM Individualization Completed + + + + + DRM Individualization Progress + + + + + DRM Proximity Completed + + + + + DRM License Store Cleaned + + + + + DRM Revocation Download Completed + + + + + Transform Unknown + + + + + Sent by an asynchronous MFT to request a new input sample. + + + + + Sent by an asynchronous MFT when new output data is available from the MFT. + + + + + Sent by an asynchronous Media Foundation transform (MFT) when a drain operation is complete. + + + + + Sent by an asynchronous MFT in response to an MFT_MESSAGE_COMMAND_MARKER message. + + + + + Media Foundation attribute guids + http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx + + + + + Specifies whether an MFT performs asynchronous processing. + + + + + Enables the use of an asynchronous MFT. + + + + + Contains flags for an MFT activation object. + + + + + Specifies the category for an MFT. + + + + + Contains the class identifier (CLSID) of an MFT. + + + + + Contains the registered input types for a Media Foundation transform (MFT). + + + + + Contains the registered output types for a Media Foundation transform (MFT). + + + + + Contains the symbolic link for a hardware-based MFT. + + + + + Contains the display name for a hardware-based MFT. + + + + + Contains a pointer to the stream attributes of the connected stream on a hardware-based MFT. + + + + + Specifies whether a hardware-based MFT is connected to another hardware-based MFT. + + + + + Specifies the preferred output format for an encoder. + + + + + Specifies whether an MFT is registered only in the application's process. + + + + + Contains configuration properties for an encoder. + + + + + Specifies whether a hardware device source uses the system time for time stamps. + + + + + Contains an IMFFieldOfUseMFTUnlock pointer, which can be used to unlock the MFT. + + + + + Contains the merit value of a hardware codec. + + + + + Specifies whether a decoder is optimized for transcoding rather than for playback. + + + + + Contains a pointer to the proxy object for the application's presentation descriptor. + + + + + Contains a pointer to the presentation descriptor from the protected media path (PMP). + + + + + Specifies the duration of a presentation, in 100-nanosecond units. + + + + + Specifies the total size of the source file, in bytes. + + + + + Specifies the audio encoding bit rate for the presentation, in bits per second. + + + + + Specifies the video encoding bit rate for the presentation, in bits per second. + + + + + Specifies the MIME type of the content. + + + + + Specifies when a presentation was last modified. + + + + + The identifier of the playlist element in the presentation. + + + + + Contains the preferred RFC 1766 language of the media source. + + + + + The time at which the presentation must begin, relative to the start of the media source. + + + + + Specifies whether the audio streams in the presentation have a variable bit rate. + + + + + Media type Major Type + + + + + Media Type subtype + + + + + Audio block alignment + + + + + Audio average bytes per second + + + + + Audio number of channels + + + + + Audio samples per second + + + + + Audio bits per sample + + + + + Enables the source reader or sink writer to use hardware-based Media Foundation transforms (MFTs). + + + + + Contains additional format data for a media type. + + + + + Specifies for a media type whether each sample is independent of the other samples in the stream. + + + + + Specifies for a media type whether the samples have a fixed size. + + + + + Contains a DirectShow format GUID for a media type. + + + + + Specifies the preferred legacy format structure to use when converting an audio media type. + + + + + Specifies for a media type whether the media data is compressed. + + + + + Approximate data rate of the video stream, in bits per second, for a video media type. + + + + + Specifies the payload type of an Advanced Audio Coding (AAC) stream. + 0 - The stream contains raw_data_block elements only + 1 - Audio Data Transport Stream (ADTS). The stream contains an adts_sequence, as defined by MPEG-2. + 2 - Audio Data Interchange Format (ADIF). The stream contains an adif_sequence, as defined by MPEG-2. + 3 - The stream contains an MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + + + + + Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream, as defined by ISO/IEC 14496-3. + + + + + Main interface for using Media Foundation with NAudio + + + + + initializes MediaFoundation - only needs to be called once per process + + + + + Enumerate the installed MediaFoundation transforms in the specified category + + A category from MediaFoundationTransformCategories + + + + + uninitializes MediaFoundation + + + + + Creates a Media type + + + + + Creates a media type from a WaveFormat + + + + + Creates a memory buffer of the specified size + + Memory buffer size in bytes + The memory buffer + + + + Creates a sample object + + The sample object + + + + Creates a new attributes store + + Initial size + The attributes store + + + + Creates a media foundation byte stream based on a stream object + (usable with WinRT streams) + + The input stream + A media foundation byte stream + + + + Creates a source reader based on a byte stream + + The byte stream + A media foundation source reader + + + + Interop definitions for MediaFoundation + thanks to Lucian Wischik for the initial work on many of these definitions (also various interfaces) + n.b. the goal is to make as much of this internal as possible, and provide + better .NET APIs using the MediaFoundationApi class instead + + + + + Initializes Microsoft Media Foundation. + + + + + Shuts down the Microsoft Media Foundation platform + + + + + Creates an empty media type. + + + + + Initializes a media type from a WAVEFORMATEX structure. + + + + + Converts a Media Foundation audio media type to a WAVEFORMATEX structure. + + TODO: try making second parameter out WaveFormatExtraData + + + + Creates the source reader from a URL. + + + + + Creates the source reader from a byte stream. + + + + + Creates the sink writer from a URL or byte stream. + + + + + Creates a Microsoft Media Foundation byte stream that wraps an IRandomAccessStream object. + + + + + Gets a list of Microsoft Media Foundation transforms (MFTs) that match specified search criteria. + + + + + Creates an empty media sample. + + + + + Allocates system memory and creates a media buffer to manage it. + + + + + Creates an empty attribute store. + + + + + Gets a list of output formats from an audio encoder. + + + + + All streams + + + + + First audio stream + + + + + First video stream + + + + + Media source + + + + + Media Foundation SDK Version + + + + + Media Foundation API Version + + + + + Media Foundation Version + + + + + Provides a generic way to store key/value pairs on an object. + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704598%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + IMFByteStream + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms698720%28v=vs.85%29.aspx + + + + + Retrieves the characteristics of the byte stream. + virtual HRESULT STDMETHODCALLTYPE GetCapabilities(/*[out]*/ __RPC__out DWORD *pdwCapabilities) = 0; + + + + + Retrieves the length of the stream. + virtual HRESULT STDMETHODCALLTYPE GetLength(/*[out]*/ __RPC__out QWORD *pqwLength) = 0; + + + + + Sets the length of the stream. + virtual HRESULT STDMETHODCALLTYPE SetLength(/*[in]*/ QWORD qwLength) = 0; + + + + + Retrieves the current read or write position in the stream. + virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(/*[out]*/ __RPC__out QWORD *pqwPosition) = 0; + + + + + Sets the current read or write position. + virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(/*[in]*/ QWORD qwPosition) = 0; + + + + + Queries whether the current position has reached the end of the stream. + virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(/*[out]*/ __RPC__out BOOL *pfEndOfStream) = 0; + + + + + Reads data from the stream. + virtual HRESULT STDMETHODCALLTYPE Read(/*[size_is][out]*/ __RPC__out_ecount_full(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbRead) = 0; + + + + + Begins an asynchronous read operation from the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginRead(/*[out]*/ _Out_writes_bytes_(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous read operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndRead(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbRead) = 0; + + + + + Writes data to the stream. + virtual HRESULT STDMETHODCALLTYPE Write(/*[size_is][in]*/ __RPC__in_ecount_full(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbWritten) = 0; + + + + + Begins an asynchronous write operation to the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginWrite(/*[in]*/ _In_reads_bytes_(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous write operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndWrite(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbWritten) = 0; + + + + + Moves the current position in the stream by a specified offset. + virtual HRESULT STDMETHODCALLTYPE Seek(/*[in]*/ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, /*[in]*/ LONGLONG llSeekOffset, /*[in]*/ DWORD dwSeekFlags, /*[out]*/ __RPC__out QWORD *pqwCurrentPosition) = 0; + + + + + Clears any internal buffers used by the stream. + virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; + + + + + Closes the stream and releases any resources associated with the stream. + virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; + + + + + IMFMediaBuffer + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms696261%28v=vs.85%29.aspx + + + + + Gives the caller access to the memory in the buffer. + + + + + Unlocks a buffer that was previously locked. + + + + + Retrieves the length of the valid data in the buffer. + + + + + Sets the length of the valid data in the buffer. + + + + + Retrieves the allocated size of the buffer. + + + + + Represents a description of a media format. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms704850%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the major type of the format. + + + + + Queries whether the media type is a compressed format. + + + + + Compares two media types and determines whether they are identical. + + + + + Retrieves an alternative representation of the media type. + + + + + Frees memory that was allocated by the GetRepresentation method. + + + + + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms702192%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves flags associated with the sample. + + + + + Sets flags associated with the sample. + + + + + Retrieves the presentation time of the sample. + + + + + Sets the presentation time of the sample. + + + + + Retrieves the duration of the sample. + + + + + Sets the duration of the sample. + + + + + Retrieves the number of buffers in the sample. + + + + + Retrieves a buffer from the sample. + + + + + Converts a sample with multiple buffers into a sample with a single buffer. + + + + + Adds a buffer to the end of the list of buffers in the sample. + + + + + Removes a buffer at a specified index from the sample. + + + + + Removes all buffers from the sample. + + + + + Retrieves the total length of the valid data in all of the buffers in the sample. + + + + + Copies the sample data to a buffer. + + + + + IMFSourceReader interface + http://msdn.microsoft.com/en-us/library/windows/desktop/dd374655%28v=vs.85%29.aspx + + + + + Queries whether a stream is selected. + + + + + Selects or deselects one or more streams. + + + + + Gets a format that is supported natively by the media source. + + + + + Gets the current media type for a stream. + + + + + Sets the media type for a stream. + + + + + Seeks to a new position in the media source. + + + + + Reads the next sample from the media source. + + + + + Flushes one or more streams. + + + + + Queries the underlying media source or decoder for an interface. + + + + + Gets an attribute from the underlying media source. + + + + + Contains flags that indicate the status of the IMFSourceReader::ReadSample method + http://msdn.microsoft.com/en-us/library/windows/desktop/dd375773(v=vs.85).aspx + + + + + No Error + + + + + An error occurred. If you receive this flag, do not make any further calls to IMFSourceReader methods. + + + + + The source reader reached the end of the stream. + + + + + One or more new streams were created + + + + + The native format has changed for one or more streams. The native format is the format delivered by the media source before any decoders are inserted. + + + + + The current media has type changed for one or more streams. To get the current media type, call the IMFSourceReader::GetCurrentMediaType method. + + + + + There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. + + + + + All transforms inserted by the application have been removed for a particular stream. + + + + + Media Foundation Transform Categories + + + + + MFT_CATEGORY_VIDEO_DECODER + + + + + MFT_CATEGORY_VIDEO_ENCODER + + + + + MFT_CATEGORY_VIDEO_EFFECT + + + + + MFT_CATEGORY_MULTIPLEXER + + + + + MFT_CATEGORY_DEMULTIPLEXER + + + + + MFT_CATEGORY_AUDIO_DECODER + + + + + MFT_CATEGORY_AUDIO_ENCODER + + + + + MFT_CATEGORY_AUDIO_EFFECT + + + + + MFT_CATEGORY_VIDEO_PROCESSOR + + + + + MFT_CATEGORY_OTHER + + + + + Contains information about an input stream on a Media Foundation transform (MFT) + + + + + Maximum amount of time between an input sample and the corresponding output sample, in 100-nanosecond units. + + + + + Bitwise OR of zero or more flags from the _MFT_INPUT_STREAM_INFO_FLAGS enumeration. + + + + + The minimum size of each input buffer, in bytes. + + + + + Maximum amount of input data, in bytes, that the MFT holds to perform lookahead. + + + + + The memory alignment required for input buffers. If the MFT does not require a specific alignment, the value is zero. + + + + + Contains information about an output buffer for a Media Foundation transform. + + + + + Output stream identifier. + + + + + Pointer to the IMFSample interface. + + + + + Before calling ProcessOutput, set this member to zero. + + + + + Before calling ProcessOutput, set this member to NULL. + + + + + Contains information about an output stream on a Media Foundation transform (MFT). + + + + + Bitwise OR of zero or more flags from the _MFT_OUTPUT_STREAM_INFO_FLAGS enumeration. + + + + + Minimum size of each output buffer, in bytes. + + + + + The memory alignment required for output buffers. + + + + + Defines messages for a Media Foundation transform (MFT). + + + + + Requests the MFT to flush all stored data. + + + + + Requests the MFT to drain any stored data. + + + + + Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA). + + + + + Drop samples - requires Windows 7 + + + + + Command Tick - requires Windows 8 + + + + + Notifies the MFT that streaming is about to begin. + + + + + Notifies the MFT that streaming is about to end. + + + + + Notifies the MFT that an input stream has ended. + + + + + Notifies the MFT that the first sample is about to be processed. + + + + + Marks a point in the stream. This message applies only to asynchronous MFTs. Requires Windows 7 + + + + + Contains media type information for registering a Media Foundation transform (MFT). + + + + + The major media type. + + + + + The Media Subtype + + + + + Contains statistics about the performance of the sink writer. + + + + + The size of the structure, in bytes. + + + + + The time stamp of the most recent sample given to the sink writer. + + + + + The time stamp of the most recent sample to be encoded. + + + + + The time stamp of the most recent sample given to the media sink. + + + + + The time stamp of the most recent stream tick. + + + + + The system time of the most recent sample request from the media sink. + + + + + The number of samples received. + + + + + The number of samples encoded. + + + + + The number of samples given to the media sink. + + + + + The number of stream ticks received. + + + + + The amount of data, in bytes, currently waiting to be processed. + + + + + The total amount of data, in bytes, that has been sent to the media sink. + + + + + The number of pending sample requests. + + + + + The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. + + + + + Contains flags for registering and enumeration Media Foundation transforms (MFTs). + + + + + None + + + + + The MFT performs synchronous data processing in software. + + + + + The MFT performs asynchronous data processing in software. + + + + + The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. + + + + + The MFT that must be unlocked by the application before use. + + + + + For enumeration, include MFTs that were registered in the caller's process. + + + + + The MFT is optimized for transcoding rather than playback. + + + + + For enumeration, sort and filter the results. + + + + + Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER. + + + + + Indicates the status of an input stream on a Media Foundation transform (MFT). + + + + + None + + + + + The input stream can receive more data at this time. + + + + + Describes an input stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of input data must contain complete, unbroken units of data. + + + + + Each media sample that the client provides as input must contain exactly one unit of data, as defined for the MFT_INPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All input samples must be the same size. + + + + + MTF Input Stream Holds buffers + + + + + The MFT does not hold input samples after the IMFTransform::ProcessInput method returns. + + + + + This input stream can be removed by calling IMFTransform::DeleteInputStream. + + + + + This input stream is optional. + + + + + The MFT can perform in-place processing. + + + + + Defines flags for the IMFTransform::ProcessOutput method. + + + + + None + + + + + The MFT can still generate output from this stream without receiving any more input. + + + + + The format has changed on this output stream, or there is a new preferred format for this stream. + + + + + The MFT has removed this output stream. + + + + + There is no sample ready for this stream. + + + + + Indicates whether a Media Foundation transform (MFT) can produce output data. + + + + + None + + + + + There is a sample available for at least one output stream. + + + + + Describes an output stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of output data from the MFT contains complete, unbroken units of data. + + + + + Each output sample contains exactly one unit of data, as defined for the MFT_OUTPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All output samples are the same size. + + + + + The MFT can discard the output data from this output stream, if requested by the client. + + + + + This output stream is optional. + + + + + The MFT provides the output samples for this stream, either by allocating them internally or by operating directly on the input samples. + + + + + The MFT can either provide output samples for this stream or it can use samples that the client allocates. + + + + + The MFT does not require the client to process the output for this stream. + + + + + The MFT might remove this output stream during streaming. + + + + + Defines flags for processing output samples in a Media Foundation transform (MFT). + + + + + None + + + + + Do not produce output for streams in which the pSample member of the MFT_OUTPUT_DATA_BUFFER structure is NULL. + + + + + Regenerates the last output sample. + + + + + Process Output Status flags + + + + + None + + + + + The Media Foundation transform (MFT) has created one or more new output streams. + + + + + Defines flags for the setting or testing the media type on a Media Foundation transform (MFT). + + + + + None + + + + + Test the proposed media type, but do not set it. + + + + + Media Type helper class, simplifying working with IMFMediaType + (will probably change in the future, to inherit from an attributes class) + Currently does not release the COM object, so you must do that yourself + + + + + Wraps an existing IMFMediaType object + + The IMFMediaType object + + + + Creates and wraps a new IMFMediaType object + + + + + Creates and wraps a new IMFMediaType object based on a WaveFormat + + WaveFormat + + + + Tries to get a UINT32 value, returning a default value if it doesn't exist + + Attribute key + Default value + Value or default if key doesn't exist + + + + The Sample Rate (valid for audio media types) + + + + + The number of Channels (valid for audio media types) + + + + + The number of bits per sample (n.b. not always valid for compressed audio types) + + + + + The average bytes per second (valid for audio media types) + + + + + The Media Subtype. For audio, is a value from the AudioSubtypes class + + + + + The Major type, e.g. audio or video (from the MediaTypes class) + + + + + Access to the actual IMFMediaType object + Use to pass to MF APIs or Marshal.ReleaseComObject when you are finished with it + + + + + An abstract base class for simplifying working with Media Foundation Transforms + You need to override the method that actually creates and configures the transform + + + + + The Source Provider + + + + + The Output WaveFormat + + + + + Constructs a new MediaFoundationTransform wrapper + Will read one second at a time + + The source provider for input data to the transform + The desired output format + + + + To be implemented by overriding classes. Create the transform object, set up its input and output types, + and configure any custom properties in here + + An object implementing IMFTrasform + + + + Disposes this MediaFoundation transform + + + + + Disposes this Media Foundation Transform + + + + + Destructor + + + + + The output WaveFormat of this Media Foundation Transform + + + + + Reads data out of the source, passing it through the transform + + Output buffer + Offset within buffer to write to + Desired byte count + Number of bytes read + + + + Attempts to read from the transform + Some useful info here: + http://msdn.microsoft.com/en-gb/library/windows/desktop/aa965264%28v=vs.85%29.aspx#process_data + + + + + + Indicate that the source has been repositioned and completely drain out the transforms buffers + + + + + Represents a MIDI meta event with raw data + + + + + Raw data contained in the meta event + + + + + Creates a meta event with raw data + + + + + Creates a deep clone of this MIDI event. + + + + + Describes this meta event + + + + + + + + + + MIDI In Message Information + + + + + Create a new MIDI In Message EventArgs + + + + + + + The Raw message received from the MIDI In API + + + + + The raw message interpreted as a MidiEvent + + + + + The timestamp in milliseconds for this message + + + + + Represents a MIDI Channel AfterTouch Event. + + + + + Creates a new ChannelAfterTouchEvent from raw MIDI data + + A binary reader + + + + Creates a new Channel After-Touch Event + + Absolute time + Channel + After-touch pressure + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The aftertouch pressure value + + + + + Represents a MIDI control change event + + + + + Reads a control change event from a MIDI stream + + Binary reader on the MIDI stream + + + + Creates a control change event + + Time + MIDI Channel Number + The MIDI Controller + Controller value + + + + Describes this control change event + + A string describing this event + + + + + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The controller number + + + + + The controller value + + + + + Represents a MIDI key signature event event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new Key signature event with the specified data + + + + + Creates a deep clone of this MIDI event. + + + + + Number of sharps or flats + + + + + Major or Minor key + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI meta event + + + + + Gets the type of this meta event + + + + + Empty constructor + + + + + Custom constructor for use by derived types, who will manage the data themselves + + Meta event type + Meta data length + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Reads a meta-event from a stream + + A binary reader based on the stream of MIDI data + A new MetaEvent object + + + + Describes this meta event + + + + + + + + + + MIDI MetaEvent Type + + + + Track sequence number + + + Text event + + + Copyright + + + Sequence track name + + + Track instrument name + + + Lyric + + + Marker + + + Cue point + + + Program (patch) name + + + Device (port) name + + + MIDI Channel (not official?) + + + MIDI Port (not official?) + + + End track + + + Set tempo + + + SMPTE offset + + + Time signature + + + Key signature + + + Sequencer specific + + + + MIDI command codes + + + + Note Off + + + Note On + + + Key After-touch + + + Control change + + + Patch change + + + Channel after-touch + + + Pitch wheel change + + + Sysex message + + + Eox (comes at end of a sysex message) + + + Timing clock (used when synchronization is required) + + + Start sequence + + + Continue sequence + + + Stop sequence + + + Auto-Sensing + + + Meta-event + + + + MidiController enumeration + http://www.midi.org/techspecs/midimessages.php#3 + + + + Bank Select (MSB) + + + Modulation (MSB) + + + Breath Controller + + + Foot controller (MSB) + + + Main volume + + + Pan + + + Expression + + + Bank Select LSB + + + Sustain + + + Portamento On/Off + + + Sostenuto On/Off + + + Soft Pedal On/Off + + + Legato Footswitch + + + Reset all controllers + + + All notes off + + + + Represents an individual MIDI event + + + + The MIDI command code + + + + Creates a MidiEvent from a raw message received using + the MME MIDI In APIs + + The short MIDI message + A new MIDI Event + + + + Constructs a MidiEvent from a BinaryStream + + The binary stream of MIDI data + The previous MIDI event (pass null for first event) + A new MidiEvent + + + + Converts this MIDI event to a short message (32 bit integer) that + can be sent by the Windows MIDI out short message APIs + Cannot be implemented for all MIDI messages + + A short message + + + + Default constructor + + + + + Creates a MIDI event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + + + + Creates a deep clone of this MIDI event. + + + + + The MIDI Channel Number for this event (1-16) + + + + + The Delta time for this event + + + + + The absolute time for this event + + + + + The command code for this event + + + + + Whether this is a note off event + + + + + Whether this is a note on event + + + + + Determines if this is an end track event + + + + + Displays a summary of the MIDI event + + A string containing a brief description of this MIDI event + + + + Utility function that can read a variable length integer from a binary stream + + The binary stream + The integer read + + + + Writes a variable length integer to a binary stream + + Binary stream + The value to write + + + + Exports this MIDI event's data + Overriden in derived classes, but they should call this version + + Absolute time used to calculate delta. + Is updated ready for the next delta calculation + Stream to write to + + + + A helper class to manage collection of MIDI events + It has the ability to organise them in tracks + + + + + Creates a new Midi Event collection + + Initial file type + Delta Ticks Per Quarter Note + + + + The number of tracks + + + + + The absolute time that should be considered as time zero + Not directly used here, but useful for timeshifting applications + + + + + The number of ticks per quarter note + + + + + Gets events on a specified track + + Track number + The list of events + + + + Gets events on a specific track + + Track number + The list of events + + + + Adds a new track + + The new track event list + + + + Adds a new track + + Initial events to add to the new track + The new track event list + + + + Removes a track + + Track number to remove + + + + Clears all events + + + + + The MIDI file type + + + + + Adds an event to the appropriate track depending on file type + + The event to be added + The original (or desired) track number + When adding events in type 0 mode, the originalTrack parameter + is ignored. If in type 1 mode, it will use the original track number to + store the new events. If the original track was 0 and this is a channel based + event, it will create new tracks if necessary and put it on the track corresponding + to its channel number + + + + Sorts, removes empty tracks and adds end track markers + + + + + Gets an enumerator for the lists of track events + + + + + Gets an enumerator for the lists of track events + + + + + Utility class for comparing MidiEvent objects + + + + + Compares two MidiEvents + Sorts by time, with EndTrack always sorted to the end + + + + + Class able to read a MIDI file + + + + + Opens a MIDI file for reading + + Name of MIDI file + + + + MIDI File format + + + + + Opens a MIDI file for reading + + Name of MIDI file + If true will error on non-paired note events + + + + Opens a MIDI file stream for reading + + The input stream containing a MIDI file + If true will error on non-paired note events + + + + The collection of events in this MIDI file + + + + + Number of tracks in this MIDI file + + + + + Delta Ticks Per Quarter Note + + + + + Describes the MIDI file + + A string describing the MIDI file and its events + + + + Exports a MIDI file + + Filename to export to + Events to export + + + + Represents a MIDI in device + + + + + Called when a MIDI message is received + + + + + An invalid MIDI message + + + + + Gets the number of MIDI input devices available in the system + + + + + Opens a specified MIDI in device + + The device number + + + + Closes this MIDI in device + + + + + Closes this MIDI in device + + + + + Start the MIDI in device + + + + + Stop the MIDI in device + + + + + Reset the MIDI in device + + + + + Gets the MIDI in device info + + + + + Closes the MIDI out device + + True if called from Dispose + + + + Cleanup + + + + + MIDI In Device Capabilities + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name + + + + + Support - Reserved + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + MIM_OPEN + + + + + MIM_CLOSE + + + + + MIM_DATA + + + + + MIM_LONGDATA + + + + + MIM_ERROR + + + + + MIM_LONGERROR + + + + + MIM_MOREDATA + + + + + MOM_OPEN + + + + + MOM_CLOSE + + + + + MOM_DONE + + + + + Represents a MIDI message + + + + + Creates a new MIDI message + + Status + Data parameter 1 + Data parameter 2 + + + + Creates a new MIDI message from a raw message + + A packed MIDI message from an MMIO function + + + + Creates a Note On message + + Note number (0 to 127) + Volume (0 to 127) + MIDI channel (1 to 16) + A new MidiMessage object + + + + Creates a Note Off message + + Note number + Volume + MIDI channel (1-16) + A new MidiMessage object + + + + Creates a patch change message + + The patch number + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Creates a Control Change message + + The controller number to change + The value to set the controller to + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Returns the raw MIDI message data + + + + + Represents a MIDI out device + + + + + Gets the number of MIDI devices available in the system + + + + + Gets the MIDI Out device info + + + + + Opens a specified MIDI out device + + The device number + + + + Closes this MIDI out device + + + + + Closes this MIDI out device + + + + + Gets or sets the volume for this MIDI out device + + + + + Resets the MIDI out device + + + + + Sends a MIDI out message + + Message + Parameter 1 + Parameter 2 + + + + Sends a MIDI message to the MIDI out device + + The message to send + + + + Closes the MIDI out device + + True if called from Dispose + + + + Send a long message, for example sysex. + + The bytes to send. + + + + Cleanup + + + + + class representing the capabilities of a MIDI out device + MIDIOUTCAPS: http://msdn.microsoft.com/en-us/library/dd798467%28VS.85%29.aspx + + + + + MIDICAPS_VOLUME + + + + + separate left-right volume control + MIDICAPS_LRVOLUME + + + + + MIDICAPS_CACHE + + + + + MIDICAPS_STREAM + driver supports midiStreamOut directly + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + Returns the number of supported voices + + + + + Gets the polyphony of the device + + + + + Returns true if the device supports all channels + + + + + Queries whether a particular channel is supported + + Channel number to test + True if the channel is supported + + + + Returns true if the device supports patch caching + + + + + Returns true if the device supports separate left and right volume + + + + + Returns true if the device supports MIDI stream out + + + + + Returns true if the device supports volume control + + + + + Returns the type of technology used by this MIDI out device + + + + + Represents the different types of technology used by a MIDI out device + + from mmsystem.h + + + The device is a MIDI port + + + The device is a MIDI synth + + + The device is a square wave synth + + + The device is an FM synth + + + The device is a MIDI mapper + + + The device is a WaveTable synth + + + The device is a software synth + + + + Represents a note MIDI event + + + + + Reads a NoteEvent from a stream of MIDI data + + Binary Reader for the stream + + + + Creates a MIDI Note Event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + MIDI Note Number + MIDI Note Velocity + + + + + + + + + The MIDI note number + + + + + The note velocity + + + + + The note name + + + + + Describes the Note Event + + Note event as a string + + + + + + + + + Represents a MIDI note on event + + + + + Reads a new Note On event from a stream of MIDI data + + Binary reader on the MIDI data stream + + + + Creates a NoteOn event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI note number + MIDI note velocity + MIDI note duration + + + + Creates a deep clone of this MIDI event. + + + + + The associated Note off event + + + + + Get or set the Note Number, updating the off event at the same time + + + + + Get or set the channel, updating the off event at the same time + + + + + The duration of this note + + + There must be a note off event + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI patch change event + + + + + Gets the default MIDI instrument names + + + + + Reads a new patch change event from a MIDI stream + + Binary reader for the MIDI stream + + + + Creates a new patch change event + + Time of the event + Channel number + Patch number + + + + The Patch Number + + + + + Describes this patch change event + + String describing the patch change event + + + + Gets as a short message for sending with the midiOutShortMsg API + + short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI pitch wheel change event + + + + + Reads a pitch wheel change event from a MIDI stream + + The MIDI stream to read from + + + + Creates a new pitch wheel change event + + Absolute event time + Channel + Pitch wheel value + + + + Describes this pitch wheel change event + + String describing this pitch wheel change event + + + + Pitch Wheel Value 0 is minimum, 0x2000 (8192) is default, 0x3FFF (16383) is maximum + + + + + Gets a short message + + Integer to sent as short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a Sequencer Specific event + + + + + Reads a new sequencer specific event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new Sequencer Specific event + + The sequencer specific data + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this sequencer specific + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Creates a new time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a deep clone of this MIDI event. + + + + + Hours + + + + + Minutes + + + + + Seconds + + + + + Frames + + + + + SubFrames + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI sysex message + + + + + Reads a sysex message from a MIDI stream + + Stream of MIDI data + a new sysex message + + + + Creates a deep clone of this MIDI event. + + + + + Describes this sysex message + + A string describing the sysex message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI tempo event + + + + + Reads a new tempo event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new tempo event with specified settings + + Microseconds per quarter note + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Describes this tempo event + + String describing the tempo event + + + + Microseconds per quarter note + + + + + Tempo + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI text event + + + + + Reads a new text event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TextEvent + + The text in this type + MetaEvent type (must be one that is + associated with text data) + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this text event + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TimeSignatureEvent + + Time at which to create this event + Numerator + Denominator + Ticks in Metronome Click + No of 32nd Notes in Quarter Click + + + + Creates a deep clone of this MIDI event. + + + + + Numerator (number of beats in a bar) + + + + + Denominator (Beat unit), + 1 means 2, 2 means 4 (crochet), 3 means 8 (quaver), 4 means 16 and 5 means 32 + + + + + Ticks in a metronome click + + + + + Number of 32nd notes in a quarter note + + + + + The time signature + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI track sequence number event event + + + + + Creates a new track sequence number event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a deep clone of this MIDI event. + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Chunk Identifier helpers + + + + + Chunk identifier to Int32 (replaces mmioStringToFOURCC) + + four character chunk identifier + Chunk identifier as int 32 + + + + Allows us to add descriptions to interop members + + + + + The description + + + + + Field description + + + + + String representation + + + + + + these will become extension methods once we move to .NET 3.5 + + + + + Checks if the buffer passed in is entirely full of nulls + + + + + Converts to a string containing the buffer described in hex + + + + + Decodes the buffer using the specified encoding, stopping at the first null + + + + + Concatenates the given arrays into a single array. + + The arrays to concatenate + The concatenated resulting array. + + + + Helper to get descriptions + + + + + Describes the Guid by looking for a FieldDescription attribute on the specified class + + + + + Support for Marshal Methods in both UWP and .NET 3.5 + + + + + SizeOf a structure + + + + + Offset of a field in a structure + + + + + Pointer to Structure + + + + + WavePosition extension methods + + + + + Get Position as timespan + + + + + Methods for converting between IEEE 80-bit extended double precision + and standard C# double precision. + + + + + Converts a C# double precision number to an 80-bit + IEEE extended double precision number (occupying 10 bytes). + + The double precision number to convert to IEEE extended. + An array of 10 bytes containing the IEEE extended number. + + + + Converts an IEEE 80-bit extended precision number to a + C# double precision number. + + The 80-bit IEEE extended number (as an array of 10 bytes). + A C# double precision number that is a close representation of the IEEE extended number. + + + + General purpose native methods for internal NAudio use + + + + + Helper methods for working with audio buffers + + + + + Ensures the buffer is big enough + + + + + + + + Ensures the buffer is big enough + + + + + + + + An encoding for use with file types that have one byte per character + + + + + The one and only instance of this class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A very basic circular buffer implementation + + + + + Create a new circular buffer + + Max buffer size in bytes + + + + Write data to the buffer + + Data to write + Offset into data + Number of bytes to write + number of bytes written + + + + Read from the buffer + + Buffer to read into + Offset into read buffer + Bytes to read + Number of bytes actually read + + + + Maximum length of this circular buffer + + + + + Number of bytes currently stored in the circular buffer + + + + + Resets the buffer + + + + + Advances the buffer, discarding bytes + + Bytes to advance + + + + A util class for conversions + + + + + linear to dB conversion + + linear value + decibel value + + + + dB to linear conversion + + decibel value + linear value + + + + HResult + + + + + S_OK + + + + + S_FALSE + + + + + E_INVALIDARG (from winerror.h) + + + + + MAKE_HRESULT macro + + + + + Helper to deal with the fact that in Win Store apps, + the HResult property name has changed + + COM Exception + The HResult + + + + Pass-through stream that ignores Dispose + Useful for dealing with MemoryStreams that you want to re-use + + + + + The source stream all other methods fall through to + + + + + If true the Dispose will be ignored, if false, will pass through to the SourceStream + Set to true by default + + + + + Creates a new IgnoreDisposeStream + + The source stream + + + + Can Read + + + + + Can Seek + + + + + Can write to the underlying stream + + + + + Flushes the underlying stream + + + + + Gets the length of the underlying stream + + + + + Gets or sets the position of the underlying stream + + + + + Reads from the underlying stream + + + + + Seeks on the underlying stream + + + + + Sets the length of the underlying stream + + + + + Writes to the underlying stream + + + + + Dispose - by default (IgnoreDispose = true) will do nothing, + leaving the underlying stream undisposed + + + + + In-place and stable implementation of MergeSort + + + + + MergeSort a list of comparable items + + + + + MergeSort a list + + + + + A thread-safe Progress Log Control + + + + + Creates a new progress log control + + + + + The contents of the log as text + + + + + Log a message + + + + + Clear the log + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ASIO 64 bit value + Unfortunately the ASIO API was implemented it before compiler supported consistently 64 bit + integer types. By using the structure the data layout on a little-endian system like the + Intel x86 architecture will result in a "non native" storage of the 64 bit data. The most + significant 32 bit are stored first in memory, the least significant bits are stored in the + higher memory space. However each 32 bit is stored in the native little-endian fashion + + + + + most significant bits (Bits 32..63) + + + + + least significant bits (Bits 0..31) + + + + + ASIO Callbacks + + + + + ASIO Buffer Switch Callback + + + + + ASIO Sample Rate Did Change Callback + + + + + ASIO Message Callback + + + + + ASIO Buffer Switch Time Info Callback + + + + + Buffer switch callback + void (*bufferSwitch) (long doubleBufferIndex, AsioBool directProcess); + + + + + Sample Rate Changed callback + void (*sampleRateDidChange) (AsioSampleRate sRate); + + + + + ASIO Message callback + long (*asioMessage) (long selector, long value, void* message, double* opt); + + + + + ASIO Buffer Switch Time Info Callback + AsioTime* (*bufferSwitchTimeInfo) (AsioTime* params, long doubleBufferIndex, AsioBool directProcess); + + + + + ASIO Channel Info + + + + + on input, channel index + + + + + Is Input + + + + + Is Active + + + + + Channel Info + + + + + ASIO Sample Type + + + + + Name + + + + + ASIODriverCapability holds all the information from the AsioDriver. + Use ASIODriverExt to get the Capabilities + + + + + Drive Name + + + + + Number of Input Channels + + + + + Number of Output Channels + + + + + Input Latency + + + + + Output Latency + + + + + Buffer Minimum Size + + + + + Buffer Maximum Size + + + + + Buffer Preferred Size + + + + + Buffer Granularity + + + + + Sample Rate + + + + + Input Channel Info + + + + + Output Channel Info + + + + + ASIO Error Codes + + + + + This value will be returned whenever the call succeeded + + + + + unique success return value for ASIOFuture calls + + + + + hardware input or output is not present or available + + + + + hardware is malfunctioning (can be returned by any ASIO function) + + + + + input parameter invalid + + + + + hardware is in a bad mode or used in a bad mode + + + + + hardware is not running when sample position is inquired + + + + + sample clock or rate cannot be determined or is not present + + + + + not enough memory for completing the request + + + + + ASIO Message Selector + + + + + selector in <value>, returns 1L if supported, + + + + + returns engine (host) asio implementation version, + + + + + request driver reset. if accepted, this + + + + + not yet supported, will currently always return 0L. + + + + + the driver went out of sync, such that + + + + + the drivers latencies have changed. The engine + + + + + if host returns true here, it will expect the + + + + + supports timecode + + + + + unused - value: number of commands, message points to mmc commands + + + + + kAsioSupportsXXX return 1 if host supports this + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + driver detected an overload + + + + + ASIO Sample Type + + + + + Int 16 MSB + + + + + Int 24 MSB (used for 20 bits as well) + + + + + Int 32 MSB + + + + + IEEE 754 32 bit float + + + + + IEEE 754 64 bit double float + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + Int 16 LSB + + + + + Int 24 LSB + used for 20 bits as well + + + + + Int 32 LSB + + + + + IEEE 754 32 bit float, as found on Intel x86 architecture + + + + + IEEE 754 64 bit double float, as found on Intel x86 architecture + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + DSD 1 bit data, 8 samples per byte. First sample in Least significant bit. + + + + + DSD 1 bit data, 8 samples per byte. First sample in Most significant bit. + + + + + DSD 8 bit data, 1 sample per byte. No Endianness required. + + + + + Main AsioDriver Class. To use this class, you need to query first the GetAsioDriverNames() and + then use the GetAsioDriverByName to instantiate the correct AsioDriver. + This is the first AsioDriver binding fully implemented in C#! + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Gets the ASIO driver names installed. + + a list of driver names. Use this name to GetAsioDriverByName + + + + Instantiate a AsioDriver given its name. + + The name of the driver + an AsioDriver instance + + + + Instantiate the ASIO driver by GUID. + + The GUID. + an AsioDriver instance + + + + Inits the AsioDriver.. + + The sys handle. + + + + + Gets the name of the driver. + + + + + + Gets the driver version. + + + + + + Gets the error message. + + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Gets the number of channels. + + The num input channels. + The num output channels. + + + + Gets the latencies (n.b. does not throw an exception) + + The input latency. + The output latency. + + + + Gets the size of the buffer. + + Size of the min. + Size of the max. + Size of the preferred. + The granularity. + + + + Determines whether this instance can use the specified sample rate. + + The sample rate. + + true if this instance [can sample rate] the specified sample rate; otherwise, false. + + + + + Gets the sample rate. + + + + + + Sets the sample rate. + + The sample rate. + + + + Gets the clock sources. + + The clocks. + The num sources. + + + + Sets the clock source. + + The reference. + + + + Gets the sample position. + + The sample pos. + The time stamp. + + + + Gets the channel info. + + The channel number. + if set to true [true for input info]. + Channel Info + + + + Creates the buffers. + + The buffer infos. + The num channels. + Size of the buffer. + The callbacks. + + + + Disposes the buffers. + + + + + Controls the panel. + + + + + Futures the specified selector. + + The selector. + The opt. + + + + Notifies OutputReady to the AsioDriver. + + + + + + Releases this instance. + + + + + Handles the exception. Throws an exception based on the error. + + The error to check. + Method name + + + + Inits the vTable method from GUID. This is a tricky part of this class. + + The ASIO GUID. + + + + Internal VTable structure to store all the delegates to the C++ COM method. + + + + + Callback used by the AsioDriverExt to get wave data + + + + + AsioDriverExt is a simplified version of the AsioDriver. It provides an easier + way to access the capabilities of the Driver and implement the callbacks necessary + for feeding the driver. + Implementation inspired from Rob Philpot's with a managed C++ ASIO wrapper BlueWave.Interop.Asio + http://www.codeproject.com/KB/mcpp/Asio.Net.aspx + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Initializes a new instance of the class based on an already + instantiated AsioDriver instance. + + A AsioDriver already instantiated. + + + + Allows adjustment of which is the first output channel we write to + + Output Channel offset + Input Channel offset + + + + Gets the driver used. + + The ASIOdriver. + + + + Starts playing the buffers. + + + + + Stops playing the buffers. + + + + + Shows the control panel. + + + + + Releases this instance. + + + + + Determines whether the specified sample rate is supported. + + The sample rate. + + true if [is sample rate supported]; otherwise, false. + + + + + Sets the sample rate. + + The sample rate. + + + + Gets or sets the fill buffer callback. + + The fill buffer callback. + + + + Gets the capabilities of the AsioDriver. + + The capabilities. + + + + Creates the buffers for playing. + + The number of outputs channels. + The number of input channel. + if set to true [use max buffer size] else use Prefered size + + + + Builds the capabilities internally. + + + + + Callback called by the AsioDriver on fill buffer demand. Redirect call to external callback. + + Index of the double buffer. + if set to true [direct process]. + + + + Callback called by the AsioDriver on event "Samples rate changed". + + The sample rate. + + + + Asio message call back. + + The selector. + The value. + The message. + The opt. + + + + + Buffers switch time info call back. + + The asio time param. + Index of the double buffer. + if set to true [direct process]. + + + + + This class stores convertors for different interleaved WaveFormat to ASIOSampleType separate channel + format. + + + + + Selects the sample convertor based on the input WaveFormat and the output ASIOSampleTtype. + + The wave format. + The type. + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Generic converter 24 LSB + + + + + Generic convertor for float + + + + + ASIO common Exception. + + + + + Gets the name of the error. + + The error. + the name of the error + + + + Flags for use with acmDriverAdd + + + + + ACM_DRIVERADDF_LOCAL + + + + + ACM_DRIVERADDF_GLOBAL + + + + + ACM_DRIVERADDF_FUNCTION + + + + + ACM_DRIVERADDF_NOTIFYHWND + + + + + Represents an installed ACM Driver + + + + + Helper function to determine whether a particular codec is installed + + The short name of the function + Whether the codec is installed + + + + Attempts to add a new ACM driver from a file + + Full path of the .acm or dll file containing the driver + Handle to the driver + + + + Removes a driver previously added using AddLocalDriver + + Local driver to remove + + + + Show Format Choose Dialog + + Owner window handle, can be null + Window title + Enumeration flags. None to get everything + Enumeration format. Only needed with certain enumeration flags + The selected format + Textual description of the selected format + Textual description of the selected format tag + True if a format was selected + + + + Gets the maximum size needed to store a WaveFormat for ACM interop functions + + + + + Finds a Driver by its short name + + Short Name + The driver, or null if not found + + + + Gets a list of the ACM Drivers installed + + + + + The callback for acmDriverEnum + + + + + Creates a new ACM Driver object + + Driver handle + + + + The short name of this driver + + + + + The full name of this driver + + + + + The driver ID + + + + + ToString + + + + + The list of FormatTags for this ACM Driver + + + + + Gets all the supported formats for a given format tag + + Format tag + Supported formats + + + + Opens this driver + + + + + Closes this driver + + + + + Dispose + + + + + Interop structure for ACM driver details (ACMDRIVERDETAILS) + http://msdn.microsoft.com/en-us/library/dd742889%28VS.85%29.aspx + + + + + DWORD cbStruct + + + + + FOURCC fccType + + + + + FOURCC fccComp + + + + + WORD wMid; + + + + + WORD wPid + + + + + DWORD vdwACM + + + + + DWORD vdwDriver + + + + + DWORD fdwSupport; + + + + + DWORD cFormatTags + + + + + DWORD cFilterTags + + + + + HICON hicon + + + + + TCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; + + + + + TCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; + + + + + TCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; + + + + + TCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; + + + + + TCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; + + + + + ACMDRIVERDETAILS_SHORTNAME_CHARS + + + + + ACMDRIVERDETAILS_LONGNAME_CHARS + + + + + ACMDRIVERDETAILS_COPYRIGHT_CHARS + + + + + ACMDRIVERDETAILS_LICENSING_CHARS + + + + + ACMDRIVERDETAILS_FEATURES_CHARS + + + + + Flags indicating what support a particular ACM driver has + + + + ACMDRIVERDETAILS_SUPPORTF_CODEC - Codec + + + ACMDRIVERDETAILS_SUPPORTF_CONVERTER - Converter + + + ACMDRIVERDETAILS_SUPPORTF_FILTER - Filter + + + ACMDRIVERDETAILS_SUPPORTF_HARDWARE - Hardware + + + ACMDRIVERDETAILS_SUPPORTF_ASYNC - Async + + + ACMDRIVERDETAILS_SUPPORTF_LOCAL - Local + + + ACMDRIVERDETAILS_SUPPORTF_DISABLED - Disabled + + + + ACM_DRIVERENUMF_NOLOCAL, Only global drivers should be included in the enumeration + + + + + ACM_DRIVERENUMF_DISABLED, Disabled ACM drivers should be included in the enumeration + + + + + ACM Format + + + + + Format Index + + + + + Format Tag + + + + + Support Flags + + + + + WaveFormat + + + + + WaveFormat Size + + + + + Format Description + + + + + ACMFORMATCHOOSE + http://msdn.microsoft.com/en-us/library/dd742911%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD fdwStyle; + + + + + HWND hwndOwner; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + LPCTSTR pszTitle; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + LPTSTR pszName; + n.b. can be written into + + + + + DWORD cchName + Should be at least 128 unless name is zero + + + + + DWORD fdwEnum; + + + + + LPWAVEFORMATEX pwfxEnum; + + + + + HINSTANCE hInstance; + + + + + LPCTSTR pszTemplateName; + + + + + LPARAM lCustData; + + + + + ACMFORMATCHOOSEHOOKPROC pfnHook; + + + + + None + + + + + ACMFORMATCHOOSE_STYLEF_SHOWHELP + + + + + ACMFORMATCHOOSE_STYLEF_ENABLEHOOK + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE + + + + + ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT + + + + + ACMFORMATCHOOSE_STYLEF_CONTEXTHELP + + + + + ACMFORMATDETAILS + http://msdn.microsoft.com/en-us/library/dd742913%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD dwFormatIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD fdwSupport; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + ACMFORMATDETAILS_FORMAT_CHARS + + + + + Format Enumeration Flags + + + + + None + + + + + ACM_FORMATENUMF_CONVERT + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will only enumerate destination formats that can be converted from the given pwfx format. + + + + + ACM_FORMATENUMF_HARDWARE + The enumerator should only enumerate formats that are supported as native input or output formats on one or more of the installed waveform-audio devices. This flag provides a way for an application to choose only formats native to an installed waveform-audio device. This flag must be used with one or both of the ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT flags. Specifying both ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT will enumerate only formats that can be opened for input or output. This is true regardless of whether this flag is specified. + + + + + ACM_FORMATENUMF_INPUT + Enumerator should enumerate only formats that are supported for input (recording). + + + + + ACM_FORMATENUMF_NCHANNELS + The nChannels member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_NSAMPLESPERSEC + The nSamplesPerSec member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_OUTPUT + Enumerator should enumerate only formats that are supported for output (playback). + + + + + ACM_FORMATENUMF_SUGGEST + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate all suggested destination formats for the given pwfx format. This mechanism can be used instead of the acmFormatSuggest function to allow an application to choose the best suggested format for conversion. The dwFormatIndex member will always be set to zero on return. + + + + + ACM_FORMATENUMF_WBITSPERSAMPLE + The wBitsPerSample member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_WFORMATTAG + The wFormatTag member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. The dwFormatTag member of the ACMFORMATDETAILS structure must be equal to the wFormatTag member. + + + + + ACM_FORMATSUGGESTF_WFORMATTAG + + + + + ACM_FORMATSUGGESTF_NCHANNELS + + + + + ACM_FORMATSUGGESTF_NSAMPLESPERSEC + + + + + ACM_FORMATSUGGESTF_WBITSPERSAMPLE + + + + + ACM_FORMATSUGGESTF_TYPEMASK + + + + + ACM Format Tag + + + + + Format Tag Index + + + + + Format Tag + + + + + Format Size + + + + + Support Flags + + + + + Standard Formats Count + + + + + Format Description + + + + + DWORD cbStruct; + + + + + DWORD dwFormatTagIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD cbFormatSize; + + + + + DWORD fdwSupport; + + + + + DWORD cStandardFormats; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + ACMFORMATTAGDETAILS_FORMATTAG_CHARS + + + + + Interop definitions for Windows ACM (Audio Compression Manager) API + + + + + http://msdn.microsoft.com/en-us/library/dd742910%28VS.85%29.aspx + UINT ACMFORMATCHOOSEHOOKPROC acmFormatChooseHookProc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + + + + + http://msdn.microsoft.com/en-us/library/dd742916%28VS.85%29.aspx + MMRESULT acmFormatSuggest( + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + DWORD cbwfxDst, + DWORD fdwSuggest); + + + + + http://msdn.microsoft.com/en-us/library/dd742928%28VS.85%29.aspx + MMRESULT acmStreamOpen( + LPHACMSTREAM phas, + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + LPWAVEFILTER pwfltr, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + + + + + A version with pointers for troubleshooting + + + + + AcmStream encapsulates an Audio Compression Manager Stream + used to convert audio from one format to another + + + + + Creates a new ACM stream to convert one format to another. Note that + not all conversions can be done in one step + + The source audio format + The destination audio format + + + + Creates a new ACM stream to convert one format to another, using a + specified driver identified and wave filter + + the driver identifier + the source format + the wave filter + + + + Returns the number of output bytes for a given number of input bytes + + Number of input bytes + Number of output bytes + + + + Returns the number of source bytes for a given number of destination bytes + + Number of destination bytes + Number of source bytes + + + + Suggests an appropriate PCM format that the compressed format can be converted + to in one step + + The compressed format + The PCM format + + + + Returns the Source Buffer. Fill this with data prior to calling convert + + + + + Returns the Destination buffer. This will contain the converted data + after a successful call to Convert + + + + + Report that we have repositioned in the source stream + + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of source bytes actually converted + The number of converted bytes in the DestinationBuffer + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of converted bytes in the DestinationBuffer + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + ACMSTREAMHEADER_STATUSF_DONE + + + + + ACMSTREAMHEADER_STATUSF_PREPARED + + + + + ACMSTREAMHEADER_STATUSF_INQUEUE + + + + + Interop structure for ACM stream headers. + ACMSTREAMHEADER + http://msdn.microsoft.com/en-us/library/dd742926%28VS.85%29.aspx + + + + + ACM_STREAMOPENF_QUERY, ACM will be queried to determine whether it supports the given conversion. A conversion stream will not be opened, and no handle will be returned in the phas parameter. + + + + + ACM_STREAMOPENF_ASYNC, Stream conversion should be performed asynchronously. If this flag is specified, the application can use a callback function to be notified when the conversion stream is opened and closed and after each buffer is converted. In addition to using a callback function, an application can examine the fdwStatus member of the ACMSTREAMHEADER structure for the ACMSTREAMHEADER_STATUSF_DONE flag. + + + + + ACM_STREAMOPENF_NONREALTIME, ACM will not consider time constraints when converting the data. By default, the driver will attempt to convert the data in real time. For some formats, specifying this flag might improve the audio quality or other characteristics. + + + + + CALLBACK_TYPEMASK, callback type mask + + + + + CALLBACK_NULL, no callback + + + + + CALLBACK_WINDOW, dwCallback is a HWND + + + + + CALLBACK_TASK, dwCallback is a HTASK + + + + + CALLBACK_FUNCTION, dwCallback is a FARPROC + + + + + CALLBACK_THREAD, thread ID replaces 16 bit task + + + + + CALLBACK_EVENT, dwCallback is an EVENT Handle + + + + + ACM_STREAMSIZEF_SOURCE + + + + + ACM_STREAMSIZEF_DESTINATION + + + + + Summary description for WaveFilter. + + + + + cbStruct + + + + + dwFilterTag + + + + + fdwFilter + + + + + reserved + + + + + ADSR sample provider allowing you to specify attack, decay, sustain and release values + + + + + Creates a new AdsrSampleProvider with default values + + + + + Attack time in seconds + + + + + Release time in seconds + + + + + Reads audio from this sample provider + + + + + Enters the Release phase + + + + + The output WaveFormat + + + + + Sample Provider to concatenate multiple sample providers together + + + + + Creates a new ConcatenatingSampleProvider + + The source providers to play one after the other. Must all share the same sample rate and channel count + + + + The WaveFormat of this Sample Provider + + + + + Read Samples from this sample provider + + + + + Sample Provider to allow fading in and out + + + + + Creates a new FadeInOutSampleProvider + + The source stream with the audio to be faded in or out + If true, we start faded out + + + + Requests that a fade-in begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Requests that a fade-out begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Reads samples from this sample provider + + Buffer to read into + Offset within buffer to write to + Number of samples desired + Number of samples read + + + + WaveFormat of this SampleProvider + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing sample provider, allowing re-patching of input channels to different + output channels + + Input sample providers. Must all be of the same sample rate, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads samples from this sample provider + + Buffer to be filled with sample data + Offset into buffer to start writing to, usually 0 + Number of samples required + Number of samples read + + + + The output WaveFormat for this SampleProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Allows you to: + 1. insert a pre-delay of silence before the source begins + 2. skip over a certain amount of the beginning of the source + 3. only play a set amount from the source + 4. insert silence at the end after the source is complete + + + + + Number of samples of silence to insert before playing source + + + + + Amount of silence to insert before playing + + + + + Number of samples in source to discard + + + + + Amount of audio to skip over from the source before beginning playback + + + + + Number of samples to read from source (if 0, then read it all) + + + + + Amount of audio to take from the source (TimeSpan.Zero means play to end) + + + + + Number of samples of silence to insert after playing source + + + + + Amount of silence to insert after playing source + + + + + Creates a new instance of offsetSampleProvider + + The Source Sample Provider to read from + + + + The WaveFormat of this SampleProvider + + + + + Reads from this sample provider + + Sample buffer + Offset within sample buffer to read to + Number of samples required + Number of samples read + + + + Converts an IWaveProvider containing 32 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm32BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Utility class for converting to SampleProvider + + + + + Helper function to go from IWaveProvider to a SampleProvider + Must already be PCM or IEEE float + + The WaveProvider to convert + A sample provider + + + + Converts a sample provider to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts a sample provider to 24 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream, clipping if necessary + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + The Format of this IWaveProvider + + + + + + Volume of this channel. 1.0 = full scale, 0.0 to mute + + + + + Signal Generator + Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep. + + + Posibility to change ISampleProvider + Example : + --------- + WaveOut _waveOutGene = new WaveOut(); + WaveGenerator wg = new SignalGenerator(); + wg.Type = ... + wg.Frequency = ... + wg ... + _waveOutGene.Init(wg); + _waveOutGene.Play(); + + + + + Initializes a new instance for the Generator (Default :: 44.1Khz, 2 channels, Sinus, Frequency = 440, Gain = 1) + + + + + Initializes a new instance for the Generator (UserDef SampleRate & Channels) + + Desired sample rate + Number of channels + + + + The waveformat of this WaveProvider (same as the source) + + + + + Frequency for the Generator. (20.0 - 20000.0 Hz) + Sin, Square, Triangle, SawTooth, Sweep (Start Frequency). + + + + + Return Log of Frequency Start (Read only) + + + + + End Frequency for the Sweep Generator. (Start Frequency in Frequency) + + + + + Return Log of Frequency End (Read only) + + + + + Gain for the Generator. (0.0 to 1.0) + + + + + Channel PhaseReverse + + + + + Type of Generator. + + + + + Length Seconds for the Sweep Generator. + + + + + Reads from this provider. + + + + + Private :: Random for WhiteNoise & Pink Noise (Value form -1 to 1) + + Random value from -1 to +1 + + + + Signal Generator type + + + + + Pink noise + + + + + White noise + + + + + Sweep + + + + + Sine wave + + + + + Square wave + + + + + Triangle Wave + + + + + Sawtooth wave + + + + + Author: Freefall + Date: 05.08.16 + Based on: the port of Stephan M. Bernsee´s pitch shifting class + Port site: https://sites.google.com/site/mikescoderama/pitch-shifting + Test application and github site: https://github.com/Freefall63/NAudio-Pitchshifter + + NOTE: I strongly advice to add a Limiter for post-processing. + For my needs the FastAttackCompressor1175 provides acceptable results: + https://github.com/Jiyuu/SkypeFX/blob/master/JSNet/FastAttackCompressor1175.cs + + UPDATE: Added a simple Limiter based on the pydirac implementation. + https://github.com/echonest/remix/blob/master/external/pydirac225/source/Dirac_LE.cpp + + + + + + Creates a new SMB Pitch Shifting Sample Provider with default settings + + Source provider + + + + Creates a new SMB Pitch Shifting Sample Provider with custom settings + + Source provider + FFT Size (any power of two <= 4096: 4096, 2048, 1024, 512, ...) + Oversampling (number of overlapping windows) + Initial pitch (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + Read from this sample provider + + + + + WaveFormat + + + + + Pitch Factor (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + + Takes a stereo input and turns it to mono + + + + + Creates a new mono ISampleProvider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this SampleProvider + + + + + Helper class turning an already 64 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Fully managed resampling sample provider, based on the WDL Resampler + + + + + Constructs a new resampler + + Source to resample + Desired output sample rate + + + + Reads from this sample provider + + + + + Output WaveFormat + + + + + Sample provider interface to make WaveChannel32 extensible + Still a bit ugly, hence internal at the moment - and might even make these into + bit depth converting WaveProviders + + + + + A sample provider mixer, allowing inputs to be added and removed + + + + + Creates a new MixingSampleProvider, with no inputs, but a specified WaveFormat + + The WaveFormat of this mixer. All inputs must be in this format + + + + Creates a new MixingSampleProvider, based on the given inputs + + Mixer inputs - must all have the same waveformat, and must + all be of the same WaveFormat. There must be at least one input + + + + Returns the mixer inputs (read-only - use AddMixerInput to add an input + + + + + When set to true, the Read method always returns the number + of samples requested, even if there are no inputs, or if the + current inputs reach their end. Setting this to true effectively + makes this a never-ending sample provider, so take care if you plan + to write it out to a file. + + + + + Adds a WaveProvider as a Mixer input. + Must be PCM or IEEE float already + + IWaveProvider mixer input + + + + Adds a new mixer input + + Mixer input + + + + Raised when a mixer input has been removed because it has ended + + + + + Removes a mixer input + + Mixer input to remove + + + + Removes all mixer inputs + + + + + The output WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + SampleProvider event args + + + + + Constructs a new SampleProviderEventArgs + + + + + The Sample Provider + + + + + Converts a mono sample provider to stereo, with a customisable pan strategy + + + + + Initialises a new instance of the PanningSampleProvider + + Source sample provider, must be mono + + + + Pan value, must be between -1 (left) and 1 (right) + + + + + The pan strategy currently in use + + + + + The WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Pair of floating point values, representing samples or multipliers + + + + + Left value + + + + + Right value + + + + + Required Interface for a Panning Strategy + + + + + Gets the left and right multipliers for a given pan value + + Pan value from -1 to 1 + Left and right multipliers in a stereo sample pair + + + + Simplistic "balance" control - treating the mono input as if it was stereo + In the centre, both channels full volume. Opposite channel decays linearly + as balance is turned to to one side + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Square Root Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Sinus Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Linear Pan + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Simple SampleProvider that passes through audio unchanged and raises + an event every n samples with the maximum sample value from the period + for metering purposes + + + + + Number of Samples per notification + + + + + Raised periodically to inform the user of the max volume + + + + + Initialises a new instance of MeteringSampleProvider that raises 10 stream volume + events per second + + Source sample provider + + + + Initialises a new instance of MeteringSampleProvider + + source sampler provider + Number of samples between notifications + + + + The WaveFormat of this sample provider + + + + + Reads samples from this Sample Provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Event args for aggregated stream volume + + + + + Max sample values array (one for each channel) + + + + + Simple class that raises an event on every sample + + + + + Initializes a new instance of NotifyingSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Sample notifier + + + + + Very simple sample provider supporting adjustable gain + + + + + Initializes a new instance of VolumeSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Helper base class for classes converting to ISampleProvider + + + + + Source Wave Provider + + + + + Source buffer (to avoid constantly creating small buffers during playback) + + + + + Initialises a new instance of SampleProviderConverterBase + + Source Wave provider + + + + Wave format of this wave provider + + + + + Reads samples from the source wave provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Ensure the source buffer exists and is big enough + + Bytes required + + + + Helper class for when you need to convert back to an IWaveProvider from + an ISampleProvider. Keeps it as IEEE float + + + + + Initializes a new instance of the WaveProviderFloatToWaveProvider class + + Source wave provider + + + + Reads from this provider + + + + + The waveformat of this WaveProvider (same as the source) + + + + + No nonsense mono to stereo provider, no volume adjustment, + just copies input to left and right. + + + + + Initializes a new instance of MonoToStereoSampleProvider + + Source sample provider + + + + WaveFormat of this provider + + + + + Reads samples from this provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Multiplier for left channel (default is 1.0) + + + + + Multiplier for right channel (default is 1.0) + + + + + Helper class turning an already 32 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Converts an IWaveProvider containing 16 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm16BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Samples required + Number of samples read + + + + Converts an IWaveProvider containing 24 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm24BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 8 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm8BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples to read + Number of samples read + + + + Utility class that takes an IWaveProvider input at any bit depth + and exposes it as an ISampleProvider. Can turn mono inputs into stereo, + and allows adjusting of volume + (The eventual successor to WaveChannel32) + This class also serves as an example of how you can link together several simple + Sample Providers to form a more useful class. + + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + force mono inputs to become stereo + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + The WaveFormat of this Sample Provider + + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Raised periodically to inform the user of the max volume + (before the volume meter) + + + + + Useful extension methods to make switching between WaveAndSampleProvider easier + + + + + Converts a WaveProvider into a SampleProvider (only works for PCM) + + WaveProvider to convert + + + + + Allows sending a SampleProvider directly to an IWavePlayer without needing to convert + back to an IWaveProvider + + The WavePlayer + + + + + + Turns WaveFormatExtensible into a standard waveformat if possible + + Input wave format + A standard PCM or IEEE waveformat, or the original waveformat + + + + Converts a ISampleProvider to a IWaveProvider but still 32 bit float + + SampleProvider to convert + An IWaveProvider + + + + Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit + + SampleProvider to convert + A 16 bit IWaveProvider + + + + Concatenates one Sample Provider on the end of another + + The sample provider to play first + The sample provider to play next + A single sampleprovider to play one after the other + + + + Concatenates one Sample Provider on the end of another with silence inserted + + The sample provider to play first + Silence duration to insert between the two + The sample provider to play next + A single sample provider + + + + Skips over a specified amount of time (by consuming source stream) + + Source sample provider + Duration to skip over + A sample provider that skips over the specified amount of time + + + + Takes a specified amount of time from the source stream + + Source sample provider + Duration to take + A sample provider that reads up to the specified amount of time + + + + Converts a Stereo Sample Provider to mono, allowing mixing of channel volume + + Stereo Source Provider + Amount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + Amount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + A mono SampleProvider + + + + Converts a Mono ISampleProvider to stereo + + Mono Source Provider + Amount to mix to left channel (1.0 is full volume) + Amount to mix to right channel (1.0 is full volume) + + + + + Recording using waveIn api with event callbacks. + Use this for recording in non-gui applications + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + Channel Mode + + + + + Stereo + + + + + Joint Stereo + + + + + Dual Channel + + + + + Mono + + + + + An ID3v2 Tag + + + + + Reads an ID3v2 tag from a stream + + + + + Creates a new ID3v2 tag from a collection of key-value pairs. + + A collection of key-value pairs containing the tags to include in the ID3v2 tag. + A new ID3v2 tag + + + + Convert the frame size to a byte array. + + The frame body size. + + + + + Creates an ID3v2 frame for the given key-value pair. + + + + + + + + Gets the Id3v2 Header size. The size is encoded so that only 7 bits per byte are actually used. + + + + + + + Creates the Id3v2 tag header and returns is as a byte array. + + The Id3v2 frames that will be included in the file. This is used to calculate the ID3v2 tag size. + + + + + Creates the Id3v2 tag for the given key-value pairs and returns it in the a stream. + + + + + + + Raw data from this tag + + + + + Interface for MP3 frame by frame decoder + + + + + Decompress a single MP3 frame + + Frame to decompress + Output buffer + Offset within output buffer + Bytes written to output buffer + + + + Tell the decoder that we have repositioned + + + + + PCM format that we are converting into + + + + + Represents an MP3 Frame + + + + + Reads an MP3 frame from a stream + + input stream + A valid MP3 frame, or null if none found + + + Reads an MP3Frame from a stream + http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm has some good info + also see http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx + + A valid MP3 frame, or null if none found + + + + Constructs an MP3 frame + + + + + checks if the four bytes represent a valid header, + if they are, will parse the values into Mp3Frame + + + + + Sample rate of this frame + + + + + Frame length in bytes + + + + + Bit Rate + + + + + Raw frame data (includes header bytes) + + + + + MPEG Version + + + + + MPEG Layer + + + + + Channel Mode + + + + + The number of samples in this frame + + + + + The channel extension bits + + + + + The bitrate index (directly from the header) + + + + + Whether the Copyright bit is set + + + + + Whether a CRC is present + + + + + Not part of the MP3 frame itself - indicates where in the stream we found this header + + + + + MP3 Frame Decompressor using ACM + + + + + Creates a new ACM frame decompressor + + The MP3 source format + + + + Output format (PCM) + + + + + Decompresses a frame + + The MP3 frame + destination buffer + Offset within destination buffer + Bytes written into destination buffer + + + + Resets the MP3 Frame Decompressor after a reposition operation + + + + + Disposes of this MP3 frame decompressor + + + + + Finalizer ensuring that resources get released properly + + + + + MPEG Layer flags + + + + + Reserved + + + + + Layer 3 + + + + + Layer 2 + + + + + Layer 1 + + + + + MPEG Version Flags + + + + + Version 2.5 + + + + + Reserved + + + + + Version 2 + + + + + Version 1 + + + + + Represents a Xing VBR header + + + + + Load Xing Header + + Frame + Xing Header + + + + Sees if a frame contains a Xing header + + + + + Number of frames + + + + + Number of bytes + + + + + VBR Scale property + + + + + The MP3 frame + + + + ACM_METRIC_COUNT_DRIVERS + + + ACM_METRIC_COUNT_CODECS + + + ACM_METRIC_COUNT_CONVERTERS + + + ACM_METRIC_COUNT_FILTERS + + + ACM_METRIC_COUNT_DISABLED + + + ACM_METRIC_COUNT_HARDWARE + + + ACM_METRIC_COUNT_LOCAL_DRIVERS + + + ACM_METRIC_COUNT_LOCAL_CODECS + + + ACM_METRIC_COUNT_LOCAL_CONVERTERS + + + ACM_METRIC_COUNT_LOCAL_FILTERS + + + ACM_METRIC_COUNT_LOCAL_DISABLED + + + ACM_METRIC_HARDWARE_WAVE_INPUT + + + ACM_METRIC_HARDWARE_WAVE_OUTPUT + + + ACM_METRIC_MAX_SIZE_FORMAT + + + ACM_METRIC_MAX_SIZE_FILTER + + + ACM_METRIC_DRIVER_SUPPORT + + + ACM_METRIC_DRIVER_PRIORITY + + + + ACM_STREAMCONVERTF_BLOCKALIGN + + + + + ACM_STREAMCONVERTF_START + + + + + ACM_STREAMCONVERTF_END + + + + + WaveHeader interop structure (WAVEHDR) + http://msdn.microsoft.com/en-us/library/dd743837%28VS.85%29.aspx + + + + pointer to locked data buffer (lpData) + + + length of data buffer (dwBufferLength) + + + used for input only (dwBytesRecorded) + + + for client's use (dwUser) + + + assorted flags (dwFlags) + + + loop control counter (dwLoops) + + + PWaveHdr, reserved for driver (lpNext) + + + reserved for driver + + + + Wave Header Flags enumeration + + + + + WHDR_BEGINLOOP + This buffer is the first buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_DONE + Set by the device driver to indicate that it is finished with the buffer and is returning it to the application. + + + + + WHDR_ENDLOOP + This buffer is the last buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_INQUEUE + Set by Windows to indicate that the buffer is queued for playback. + + + + + WHDR_PREPARED + Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function. + + + + + WASAPI Loopback Capture + based on a contribution from "Pygmy" - http://naudio.codeplex.com/discussions/203605 + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Gets the default audio loopback capture device + + The default audio loopback capture device + + + + Capturing wave format + + + + + Specify loopback + + + + + Allows recording using the Windows waveIn APIs + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Creates a WaveIn device using the specified window handle for callbacks + + A valid window handle + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Called when we get a new buffer of recorded data + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + WaveInCapabilities structure (based on WAVEINCAPS2 from mmsystem.h) + http://msdn.microsoft.com/en-us/library/ms713726(VS.85).aspx + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Number of channels supported + + + + + The product name + + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name from the registry if supported + + + + + Event Args for WaveInStream event + + + + + Creates new WaveInEventArgs + + + + + Buffer containing recorded data. Note that it might not be completely + full. + + + + + The number of recorded bytes in Buffer. + + + + + MME Wave function interop + + + + + CALLBACK_NULL + No callback + + + + + CALLBACK_FUNCTION + dwCallback is a FARPROC + + + + + CALLBACK_EVENT + dwCallback is an EVENT handle + + + + + CALLBACK_WINDOW + dwCallback is a HWND + + + + + CALLBACK_THREAD + callback is a thread ID + + + + + WIM_OPEN + + + + + WIM_CLOSE + + + + + WIM_DATA + + + + + WOM_CLOSE + + + + + WOM_DONE + + + + + WOM_OPEN + + + + + WaveOutCapabilities structure (based on WAVEOUTCAPS2 from mmsystem.h) + http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutcaps_str.asp + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Optional functionality supported by the device + + + + + Number of channels supported + + + + + Whether playback control is supported + + + + + The product name + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Supported wave formats for WaveOutCapabilities + + + + + 11.025 kHz, Mono, 8-bit + + + + + 11.025 kHz, Stereo, 8-bit + + + + + 11.025 kHz, Mono, 16-bit + + + + + 11.025 kHz, Stereo, 16-bit + + + + + 22.05 kHz, Mono, 8-bit + + + + + 22.05 kHz, Stereo, 8-bit + + + + + 22.05 kHz, Mono, 16-bit + + + + + 22.05 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 48 kHz, Mono, 8-bit + + + + + 48 kHz, Stereo, 8-bit + + + + + 48 kHz, Mono, 16-bit + + + + + 48 kHz, Stereo, 16-bit + + + + + 96 kHz, Mono, 8-bit + + + + + 96 kHz, Stereo, 8-bit + + + + + 96 kHz, Mono, 16-bit + + + + + 96 kHz, Stereo, 16-bit + + + + + Flags indicating what features this WaveOut device supports + + + + supports pitch control (WAVECAPS_PITCH) + + + supports playback rate control (WAVECAPS_PLAYBACKRATE) + + + supports volume control (WAVECAPS_VOLUME) + + + supports separate left-right volume control (WAVECAPS_LRVOLUME) + + + (WAVECAPS_SYNC) + + + (WAVECAPS_SAMPLEACCURATE) + + + + GSM 610 + + + + + Creates a GSM 610 WaveFormat + For now hardcoded to 13kbps + + + + + Samples per block + + + + + Writes this structure to a BinaryWriter + + + + + IMA/DVI ADPCM Wave Format + Work in progress + + + + + parameterless constructor for Marshalling + + + + + Creates a new IMA / DVI ADPCM Wave Format + + Sample Rate + Number of channels + Bits Per Sample + + + + MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h + + + + + Wave format ID (wID) + + + + + Padding flags (fdwFlags) + + + + + Block Size (nBlockSize) + + + + + Frames per block (nFramesPerBlock) + + + + + Codec Delay (nCodecDelay) + + + + + Creates a new MP3 WaveFormat + + + + + Wave Format Padding Flags + + + + + MPEGLAYER3_FLAG_PADDING_ISO + + + + + MPEGLAYER3_FLAG_PADDING_ON + + + + + MPEGLAYER3_FLAG_PADDING_OFF + + + + + Wave Format ID + + + + MPEGLAYER3_ID_UNKNOWN + + + MPEGLAYER3_ID_MPEG + + + MPEGLAYER3_ID_CONSTANTFRAMESIZE + + + + DSP Group TrueSpeech + + + + + DSP Group TrueSpeech WaveFormat + + + + + Writes this structure to a BinaryWriter + + + + + Represents a Wave file format + + + + format type + + + number of channels + + + sample rate + + + for buffer estimation + + + block size of data + + + number of bits per sample of mono data + + + number of following bytes + + + + Creates a new PCM 44.1Khz stereo 16 bit format + + + + + Creates a new 16 bit wave format with the specified sample + rate and channel count + + Sample Rate + Number of channels + + + + Gets the size of a wave buffer equivalent to the latency in milliseconds. + + The milliseconds. + + + + + Creates a WaveFormat with custom members + + The encoding + Sample Rate + Number of channels + Average Bytes Per Second + Block Align + Bits Per Sample + + + + + Creates an A-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a Mu-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a new PCM format with the specified sample rate, bit depth and channels + + + + + Creates a new 32 bit IEEE floating point wave format + + sample rate + number of channels + + + + Helper function to retrieve a WaveFormat structure from a pointer + + WaveFormat structure + + + + + Helper function to marshal WaveFormat to an IntPtr + + WaveFormat + IntPtr to WaveFormat structure (needs to be freed by callee) + + + + Reads in a WaveFormat (with extra data) from a fmt chunk (chunk identifier and + length should already have been read) + + Binary reader + Format chunk length + A WaveFormatExtraData + + + + Reads a new WaveFormat object from a stream + + A binary reader that wraps the stream + + + + Reports this WaveFormat as a string + + String describing the wave format + + + + Compares with another WaveFormat object + + Object to compare to + True if the objects are the same + + + + Provides a Hashcode for this WaveFormat + + A hashcode + + + + Returns the encoding type used + + + + + Writes this WaveFormat object to a stream + + the output stream + + + + Returns the number of channels (1=mono,2=stereo etc) + + + + + Returns the sample rate (samples per second) + + + + + Returns the average number of bytes used per second + + + + + Returns the block alignment + + + + + Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8) + Can be 0 for some codecs + + + + + Returns the number of extra bytes used by this waveformat. Often 0, + except for compressed formats which store extra data after the WAVEFORMATEX header + + + + + Microsoft ADPCM + See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm + + + + + Empty constructor needed for marshalling from a pointer + + + + + Samples per block + + + + + Number of coefficients + + + + + Coefficients + + + + + Microsoft ADPCM + + Sample Rate + Channels + + + + Serializes this wave format + + Binary writer + + + + String Description of this WaveFormat + + + + + Custom marshaller for WaveFormat structures + + + + + Gets the instance of this marshaller + + + + + + + Clean up managed data + + + + + Clean up native data + + + + + + Get native data size + + + + + Marshal managed to native + + + + + Marshal Native to Managed + + + + + Summary description for WaveFormatEncoding. + + + + WAVE_FORMAT_UNKNOWN, Microsoft Corporation + + + WAVE_FORMAT_PCM Microsoft Corporation + + + WAVE_FORMAT_ADPCM Microsoft Corporation + + + WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation + + + WAVE_FORMAT_VSELP Compaq Computer Corp. + + + WAVE_FORMAT_IBM_CVSD IBM Corporation + + + WAVE_FORMAT_ALAW Microsoft Corporation + + + WAVE_FORMAT_MULAW Microsoft Corporation + + + WAVE_FORMAT_DTS Microsoft Corporation + + + WAVE_FORMAT_DRM Microsoft Corporation + + + WAVE_FORMAT_WMAVOICE9 + + + WAVE_FORMAT_OKI_ADPCM OKI + + + WAVE_FORMAT_DVI_ADPCM Intel Corporation + + + WAVE_FORMAT_IMA_ADPCM Intel Corporation + + + WAVE_FORMAT_MEDIASPACE_ADPCM Videologic + + + WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp + + + WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation + + + WAVE_FORMAT_DIGISTD DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. + + + WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation + + + WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. + + + WAVE_FORMAT_CU_CODEC Hewlett-Packard Company + + + WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America + + + WAVE_FORMAT_SONARC Speech Compression + + + WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc + + + WAVE_FORMAT_ECHOSC1 Echo Speech Corporation + + + WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. + + + WAVE_FORMAT_APTX Audio Processing Technology + + + WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. + + + WAVE_FORMAT_PROSODY_1612, Aculab plc + + + WAVE_FORMAT_LRC, Merging Technologies S.A. + + + WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories + + + WAVE_FORMAT_GSM610, Microsoft Corporation + + + WAVE_FORMAT_MSNAUDIO, Microsoft Corporation + + + WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation + + + WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited + + + WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. + + + WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_MPEG, Microsoft Corporation + + + + + + + + + WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_GSM + + + WAVE_FORMAT_G729 + + + WAVE_FORMAT_G723 + + + WAVE_FORMAT_ACELP + + + + WAVE_FORMAT_RAW_AAC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation + + + + + Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation + + + + + Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS + + + + + Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + + Source wmCodec.h + + + + MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral SBR or PS tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + NOKIA_MPEG_ADTS_AAC + Source wmCodec.h + + + NOKIA_MPEG_RAW_AAC + Source wmCodec.h + + + VODAFONE_MPEG_ADTS_AAC + Source wmCodec.h + + + VODAFONE_MPEG_RAW_AAC + Source wmCodec.h + + + + High-Efficiency Advanced Audio Coding (HE-AAC) stream. + The format block is an HEAACWAVEFORMAT structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + WAVE_FORMAT_DVM + + + WAVE_FORMAT_VORBIS1 "Og" Original stream compatible + + + WAVE_FORMAT_VORBIS2 "Pg" Have independent header + + + WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header + + + WAVE_FORMAT_VORBIS1P "og" Original stream compatible + + + WAVE_FORMAT_VORBIS2P "pg" Have independent headere + + + WAVE_FORMAT_VORBIS3P "qg" Have no codebook header + + + WAVE_FORMAT_EXTENSIBLE + + + + + + + WaveFormatExtensible + http://www.microsoft.com/whdc/device/audio/multichaud.mspx + + + + + Parameterless constructor for marshalling + + + + + Creates a new WaveFormatExtensible for PCM or IEEE + + + + + WaveFormatExtensible for PCM or floating point can be awkward to work with + This creates a regular WaveFormat structure representing the same audio format + Returns the WaveFormat unchanged for non PCM or IEEE float + + + + + + SubFormat (may be one of AudioMediaSubtypes) + + + + + Serialize + + + + + + String representation + + + + + This class used for marshalling from unmanaged code + + + + + Allows the extra data to be read + + + + + parameterless constructor for marshalling + + + + + Reads this structure from a BinaryReader + + + + + Writes this structure to a BinaryWriter + + + + + The WMA wave format. + May not be much use because WMA codec is a DirectShow DMO not an ACM + + + + + Generic interface for wave recording + + + + + Recording WaveFormat + + + + + Start Recording + + + + + Stop Recording + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + This class writes audio data to a .aif file on disk + + + + + Creates an Aiff file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Aiff File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + AiffFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new AiffFileWriter + + The filename to write to + The Wave Format of the output data + + + + The aiff file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this aiff file + + + + + Returns false: Cannot read from a AiffFileWriter + + + + + Returns true: Can write to a AiffFileWriter + + + + + Returns false: Cannot seek within a AiffFileWriter + + + + + Read is not supported for a AiffFileWriter + + + + + Seek is not supported for a AiffFileWriter + + + + + SetLength is not supported for AiffFileWriter + + + + + + Gets the Position in the AiffFile (i.e. number of bytes written so far) + + + + + Appends bytes to the AiffFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Aiff file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Aiff file + They will be converted to the appropriate bit depth depending on the WaveFormat of the AIF file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Aiff file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this AiffFileWriter + + + + + Raised when ASIO data has been recorded. + It is important to handle this as quickly as possible as it is in the buffer callback + + + + + Initialises a new instance of AsioAudioAvailableEventArgs + + Pointers to the ASIO buffers for each channel + Pointers to the ASIO buffers for each channel + Number of samples in each buffer + Audio format within each buffer + + + + Pointer to a buffer per input channel + + + + + Pointer to a buffer per output channel + Allows you to write directly to the output buffers + If you do so, set SamplesPerBuffer = true, + and make sure all buffers are written to with valid data + + + + + Set to true if you have written to the output buffers + If so, AsioOut will not read from its source + + + + + Number of samples in each buffer + + + + + Converts all the recorded audio into a buffer of 32 bit floating point samples, interleaved by channel + + The samples as 32 bit floating point, interleaved + + + + Audio format within each buffer + Most commonly this will be one of, Int32LSB, Int16LSB, Int24LSB or Float32LSB + + + + + Gets as interleaved samples, allocating a float array + + The samples as 32 bit floating point values + + + + ASIO Out Player. New implementation using an internal C# binding. + + This implementation is only supporting Short16Bit and Float32Bit formats and is optimized + for 2 outputs channels . + SampleRate is supported only if AsioDriver is supporting it + + This implementation is probably the first AsioDriver binding fully implemented in C#! + + Original Contributor: Mark Heath + New Contributor to C# binding : Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Playback Stopped + + + + + When recording, fires whenever recorded audio is available + + + + + Initializes a new instance of the class with the first + available ASIO Driver. + + + + + Initializes a new instance of the class with the driver name. + + Name of the device. + + + + Opens an ASIO output device + + Device number (zero based) + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Dispose + + + + + Gets the names of the installed ASIO Driver. + + an array of driver names + + + + Determines whether ASIO is supported. + + + true if ASIO is supported; otherwise, false. + + + + + Inits the driver from the asio driver name. + + Name of the driver. + + + + Shows the control panel + + + + + Starts playback + + + + + Stops playback + + + + + Pauses playback + + + + + Initialises to play + + Source wave provider + + + + Initialises to play, with optional recording + + Source wave provider - set to null for record only + Number of channels to record + Specify sample rate here if only recording, ignored otherwise + + + + driver buffer update callback to fill the wave buffer. + + The input channels. + The output channels. + + + + Gets the latency (in ms) of the playback driver + + + + + Playback State + + + + + Driver Name + + + + + The number of output channels we are currently using for playback + (Must be less than or equal to DriverOutputChannelCount) + + + + + The number of input channels we are currently recording from + (Must be less than or equal to DriverInputChannelCount) + + + + + The maximum number of input channels this ASIO driver supports + + + + + The maximum number of output channels this ASIO driver supports + + + + + The number of samples per channel, per buffer. + + + + + By default the first channel on the input WaveProvider is sent to the first ASIO output. + This option sends it to the specified channel number. + Warning: make sure you don't set it higher than the number of available output channels - + the number of source channels. + n.b. Future NAudio may modify this + + + + + Input channel offset (used when recording), allowing you to choose to record from just one + specific input rather than them all + + + + + Sets the volume (1.0 is unity gain) + Not supported for ASIO Out. Set the volume on the input stream instead + + + + + Get the input channel name + + channel index (zero based) + channel name + + + + Get the output channel name + + channel index (zero based) + channel name + + + + A wave file writer that adds cue support + + + + + Writes a wave file, including a cues chunk + + + + + Adds a cue to the Wave file + + Sample position + Label text + + + + Updates the header, and writes the cues out + + + + + Media Foundation Encoder class allows you to use Media Foundation to encode an IWaveProvider + to any supported encoding format + + + + + Queries the available bitrates for a given encoding output type, sample rate and number of channels + + Audio subtype - a value from the AudioSubtypes class + The sample rate of the PCM to encode + The number of channels of the PCM to encode + An array of available bitrates in average bits per second + + + + Gets all the available media types for a particular + + Audio subtype - a value from the AudioSubtypes class + An array of available media types that can be encoded with this subtype + + + + Helper function to simplify encoding Window Media Audio + Should be supported on Vista and above (not tested) + + Input provider, must be PCM + Output file path, should end with .wma + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to MP3 + By default, will only be available on Windows 8 and above + + Input provider, must be PCM + Output file path, should end with .mp3 + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to AAC + By default, will only be available on Windows 7 and above + + Input provider, must be PCM + Output file path, should end with .mp4 (or .aac on Windows 8) + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Tries to find the encoding media type with the closest bitrate to that specified + + Audio subtype, a value from AudioSubtypes + Your encoder input format (used to check sample rate and channel count) + Your desired bitrate + The closest media type, or null if none available + + + + Creates a new encoder that encodes to the specified output media type + + Desired output media type + + + + Encodes a file + + Output filename (container type is deduced from the filename) + Input provider (should be PCM, some encoders will also allow IEEE float) + + + + Disposes this instance + + + + + + Disposes this instance + + + + + Finalizer + + + + + Stopped Event Args + + + + + Initializes a new instance of StoppedEventArgs + + An exception to report (null if no exception) + + + + An exception. Will be null if the playback or record operation stopped + + + + + IWaveBuffer interface use to store wave datas. + Data can be manipulated with arrays (,, + , ) that are pointing to the same memory buffer. + This is a requirement for all subclasses. + + Use the associated Count property based on the type of buffer to get the number of data in the + buffer. + + for the standard implementation using C# unions. + + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets the byte buffer count. + + The byte buffer count. + + + + Gets the float buffer count. + + The float buffer count. + + + + Gets the short buffer count. + + The short buffer count. + + + + Gets the int buffer count. + + The int buffer count. + + + + Represents the interface to a device that can play a WaveFile + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + The volume 1.0 is full scale + + + + + Indicates that playback has gone into a stopped state due to + reaching the end of the input stream or an error has been encountered during playback + + + + + Interface for IWavePlayers that can report position + + + + + Position (in terms of bytes played - does not necessarily) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Generic interface for all WaveProviders. + + + + + Gets the WaveFormat of this WaveProvider. + + The wave format. + + + + Fill the specified buffer with wave data. + + The buffer to fill of wave data. + Offset into buffer + The number of bytes to read + the number of bytes written to the buffer. + + + + NativeDirectSoundOut using DirectSound COM interop. + Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr + Modified by: Graham "Gee" Plumb + + + + + Playback Stopped + + + + + Gets the DirectSound output devices in the system + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + (40ms seems to work under Vista). + + The latency. + Selected device + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets the current position from the wave output device. + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + + The volume 1.0 is full scale + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Determines whether the SecondaryBuffer is lost. + + + true if [is buffer lost]; otherwise, false. + + + + + Convert ms to bytes size according to WaveFormat + + The ms + number of byttes + + + + Processes the samples in a separate thread. + + + + + Stop playback + + + + + Feeds the SecondaryBuffer with the WaveStream + + number of bytes to feed + + + + IDirectSound interface + + + + + IDirectSoundBuffer interface + + + + + IDirectSoundNotify interface + + + + + Instanciate DirectSound from the DLL + + The GUID. + The direct sound. + The p unk outer. + + + + DirectSound default playback device GUID + + + + + DirectSound default capture device GUID + + + + + DirectSound default device for voice playback + + + + + DirectSound default device for voice capture + + + + + The DSEnumCallback function is an application-defined callback function that enumerates the DirectSound drivers. + The system calls this function in response to the application's call to the DirectSoundEnumerate or DirectSoundCaptureEnumerate function. + + Address of the GUID that identifies the device being enumerated, or NULL for the primary device. This value can be passed to the DirectSoundCreate8 or DirectSoundCaptureCreate8 function to create a device object for that driver. + Address of a null-terminated string that provides a textual description of the DirectSound device. + Address of a null-terminated string that specifies the module name of the DirectSound driver corresponding to this device. + Address of application-defined data. This is the pointer passed to DirectSoundEnumerate or DirectSoundCaptureEnumerate as the lpContext parameter. + Returns TRUE to continue enumerating drivers, or FALSE to stop. + + + + The DirectSoundEnumerate function enumerates the DirectSound drivers installed in the system. + + callback function + User context + + + + Gets the HANDLE of the desktop window. + + HANDLE of the Desktop window + + + + Class for enumerating DirectSound devices + + + + + The device identifier + + + + + Device description + + + + + Device module name + + + + + Like IWaveProvider, but makes it much simpler to put together a 32 bit floating + point mixing engine + + + + + Gets the WaveFormat of this Sample Provider. + + The wave format. + + + + Fill the specified buffer with 32 bit floating point samples + + The buffer to fill with samples. + Offset into buffer + The number of samples to read + the number of samples written to the buffer. + + + + Playback State + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + Support for playback using Wasapi + + + + + Playback Stopped + + + + + WASAPI Out shared mode, defauult + + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + Desired latency in milliseconds + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Creates a new WASAPI Output + + Device to use + + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Begin Playback + + + + + Stop playback and flush buffers + + + + + Stop playback without flushing buffers + + + + + Initialize for playing the specified wave stream + + IWaveProvider to play + + + + Playback State + + + + + Volume + + + + + Retrieve the AudioStreamVolume object for this audio stream + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Dispose + + + + + WaveBuffer class use to store wave datas. Data can be manipulated with arrays + (,,, ) that are pointing to the + same memory buffer. Use the associated Count property based on the type of buffer to get the number of + data in the buffer. + Implicit casting is now supported to float[], byte[], int[], short[]. + You must not use Length on returned arrays. + + n.b. FieldOffset is 8 now to allow it to work natively on 64 bit + + + + + Number of Bytes + + + + + Initializes a new instance of the class. + + The number of bytes. The size of the final buffer will be aligned on 4 Bytes (upper bound) + + + + Initializes a new instance of the class binded to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Binds this WaveBuffer instance to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets or sets the byte buffer count. + + The byte buffer count. + + + + Gets or sets the float buffer count. + + The float buffer count. + + + + Gets or sets the short buffer count. + + The short buffer count. + + + + Gets or sets the int buffer count. + + The int buffer count. + + + + Clears the associated buffer. + + + + + Copy this WaveBuffer to a destination buffer up to ByteBufferCount bytes. + + + + + Checks the validity of the count parameters. + + Name of the arg. + The value. + The size of value. + + + + Wave Callback Info + + + + + Callback Strategy + + + + + Window Handle (if applicable) + + + + + Sets up a new WaveCallbackInfo for function callbacks + + + + + Sets up a new WaveCallbackInfo to use a New Window + IMPORTANT: only use this on the GUI thread + + + + + Sets up a new WaveCallbackInfo to use an existing window + IMPORTANT: only use this on the GUI thread + + + + + Wave Callback Strategy + + + + + Use a function + + + + + Create a new window (should only be done if on GUI thread) + + + + + Use an existing window handle + + + + + Use an event handle + + + + + This class writes WAV data to a .wav file on disk + + + + + Creates a 16 bit Wave File from an ISampleProvider + BEWARE: the source provider must not return data indefinitely + + The filename to write to + The source sample provider + + + + Creates a Wave file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + Writes to a stream by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The stream the method will output to + The source WaveProvider + + + + WaveFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new WaveFileWriter + + The filename to write to + The Wave Format of the output data + + + + The wave file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this wave file + + + + + Returns false: Cannot read from a WaveFileWriter + + + + + Returns true: Can write to a WaveFileWriter + + + + + Returns false: Cannot seek within a WaveFileWriter + + + + + Read is not supported for a WaveFileWriter + + + + + Seek is not supported for a WaveFileWriter + + + + + SetLength is not supported for WaveFileWriter + + + + + + Gets the Position in the WaveFile (i.e. number of bytes written so far) + + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Wave file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Wave file + They will be converted to the appropriate bit depth depending on the WaveFormat of the WAV file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + Also updates header, so that WAV file will be valid up to the point currently written + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this WaveFileWriter + + + + + Represents a wave out device + + + + + Indicates playback has stopped automatically + + + + + Retrieves the capabilities of a waveOut device + + Device to test + The WaveOut device capabilities + + + + Returns the number of Wave Out devices available in the system + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Creates a default WaveOut device + Will use window callbacks if called from a GUI thread, otherwise function + callbacks + + + + + Creates a WaveOut device using the specified window handle for callbacks + + A valid window handle + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Volume for this device 1.0 is full scale + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Alternative WaveOut class, making use of the Event callback + + + + + Indicates playback has stopped automatically + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Obsolete property + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Provides a buffered store of samples + Read method will return queued samples or fill buffer with zeroes + Now backed by a circular buffer + + + + + Creates a new buffered WaveProvider + + WaveFormat + + + + If true, always read the amount of data requested, padding with zeroes if necessary + By default is set to true + + + + + Buffer length in bytes + + + + + Buffer duration + + + + + If true, when the buffer is full, start throwing away data + if false, AddSamples will throw an exception when buffer is full + + + + + The number of buffered bytes + + + + + Buffered Duration + + + + + Gets the WaveFormat + + + + + Adds samples. Takes a copy of buffer, so that buffer can be reused if necessary + + + + + Reads from this WaveProvider + Will always return count bytes, since we will zero-fill the buffer if not enough available + + + + + Discards all audio from the buffer + + + + + The Media Foundation Resampler Transform + + + + + Creates the Media Foundation Resampler, allowing modifying of sample rate, bit depth and channel count + + Source provider, must be PCM + Output format, must also be PCM + + + + Creates a resampler with a specified target output sample rate + + Source provider + Output sample rate + + + + Creates and configures the actual Resampler transform + + A newly created and configured resampler MFT + + + + Gets or sets the Resampler quality. n.b. set the quality before starting to resample. + 1 is lowest quality (linear interpolation) and 60 is best quality + + + + + Disposes this resampler + + + + + WaveProvider that can mix together multiple 32 bit floating point input provider + All channels must have the same number of inputs and same sample rate + n.b. Work in Progress - not tested yet + + + + + Creates a new MixingWaveProvider32 + + + + + Creates a new 32 bit MixingWaveProvider32 + + inputs - must all have the same format. + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove an input from the mixer + + waveProvider to remove + + + + The number of inputs to this mixer + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing wave provider, allowing re-patching of input channels to different + output channels + + Input wave providers. Must all be of the same format, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads data from this WaveProvider + + Buffer to be filled with sample data + Offset to write to within buffer, usually 0 + Number of bytes required + Number of bytes read + + + + The WaveFormat of this WaveProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Silence producing wave provider + Useful for playing silence when doing a WASAPI Loopback Capture + + + + + Creates a new silence producing wave provider + + Desired WaveFormat (should be PCM / IEE float + + + + Read silence from into the buffer + + + + + WaveFormat of this silence producing wave provider + + + + + Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together + + + + + Creates a new mono waveprovider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels + + + + + Creates a new stereo waveprovider based on a mono input + + Mono 16 bit PCM input + + + + 1.0 to copy the mono stream to the left channel without adjusting volume + + + + + 1.0 to copy the mono stream to the right channel without adjusting volume + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float + + + + + Constructs a new VolumeWaveProvider16 + + Source provider, must be 16 bit PCM + + + + Gets or sets volume. + 1.0 is full scale, 0.0 is silence, anything over 1.0 will amplify but potentially clip + + + + + WaveFormat of this WaveProvider + + + + + Read bytes from this WaveProvider + + Buffer to read into + Offset within buffer to read to + Bytes desired + Bytes read + + + + Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Creates a new WaveFloatTo16Provider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way + + + + + Creates a new Wave16toFloatProvider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Buffered WaveProvider taking source data from WaveIn + + + + + Creates a new WaveInProvider + n.b. Should make sure the WaveFormat is set correctly on IWaveIn before calling + + The source of wave data + + + + Reads data from the WaveInProvider + + + + + The WaveFormat + + + + + Base class for creating a 16 bit wave provider + + + + + Initializes a new instance of the WaveProvider16 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider16 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a short array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Base class for creating a 32 bit floating point wave provider + Can also be used as a base class for an ISampleProvider that can + be plugged straight into anything requiring an IWaveProvider + + + + + Initializes a new instance of the WaveProvider32 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider32 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a float array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Utility class to intercept audio from an IWaveProvider and + save it to disk + + + + + Constructs a new WaveRecorder + + The location to write the WAV file to + The Source Wave Provider + + + + Read simply returns what the source returns, but writes to disk along the way + + + + + The WaveFormat + + + + + Closes the WAV file + + + + A read-only stream of AIFF data based on an aiff file + with an associated WaveFormat + originally contributed to NAudio by Giawa + + + + Supports opening a AIF file + The AIF is of similar nastiness to the WAV format. + This supports basic reading of uncompressed PCM AIF files, + with 8, 16, 24 and 32 bit PCM data. + + + + + Creates an Aiff File Reader based on an input stream + + The input stream containing a AIF file including header + + + + Ensures valid AIFF header and then finds data offset. + + The stream, positioned at the start of audio data + The format found + The position of the data chunk + The length of the data chunk + Additional chunks found + + + + Cleans up the resources associated with this AiffFileReader + + + + + + + + + + + + + + + Number of Samples (if possible to calculate) + + + + + Position in the AIFF file + + + + + + Reads bytes from the AIFF File + + + + + + AIFF Chunk + + + + + Chunk Name + + + + + Chunk Length + + + + + Chunk start + + + + + Creates a new AIFF Chunk + + + + + AudioFileReader simplifies opening an audio file in NAudio + Simply pass in the filename, and it will attempt to open the + file and set up a conversion path that turns into PCM IEEE float. + ACM codecs will be used for conversion. + It provides a volume property and implements both WaveStream and + ISampleProvider, making it possibly the only stage in your audio + pipeline necessary for simple playback scenarios + + + + + Initializes a new instance of AudioFileReader + + The file to open + + + + Creates the reader stream, supporting all filetypes in the core NAudio library, + and ensuring we are in PCM format + + File Name + + + + File Name + + + + + WaveFormat of this stream + + + + + Length of this stream (in bytes) + + + + + Position of this stream (in bytes) + + + + + Reads from this wave stream + + Audio buffer + Offset into buffer + Number of bytes required + Number of bytes read + + + + Reads audio from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Gets or Sets the Volume of this AudioFileReader. 1.0f is full volume + + + + + Helper to convert source to dest bytes + + + + + Helper to convert dest to source bytes + + + + + Disposes this AudioFileReader + + True if called from Dispose + + + + Helper stream that lets us read from compressed audio files with large block alignment + as though we could read any amount and reposition anywhere + + + + + Creates a new BlockAlignReductionStream + + the input stream + + + + Block alignment of this stream + + + + + Wave Format + + + + + Length of this Stream + + + + + Current position within stream + + + + + Disposes this WaveStream + + + + + Reads data from this stream + + + + + + + + + Implementation of Com IStream + + + + + Holds information on a cue: a labeled position within a Wave file + + + + + Cue position in samples + + + + + Label of the cue + + + + + Creates a Cue based on a sample position and label + + + + + + + Holds a list of cues + + + The specs for reading and writing cues from the cue and list RIFF chunks + are from http://www.sonicspot.com/guide/wavefiles.html and http://www.wotsit.org/ + ------------------------------ + The cues are stored like this: + ------------------------------ + struct CuePoint + { + Int32 dwIdentifier; + Int32 dwPosition; + Int32 fccChunk; + Int32 dwChunkStart; + Int32 dwBlockStart; + Int32 dwSampleOffset; + } + + struct CueChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwCuePoints; + CuePoint[] points; + } + ------------------------------ + Labels look like this: + ------------------------------ + struct ListHeader + { + Int32 listID; /* 'list' */ + Int32 chunkSize; /* includes the Type ID below */ + Int32 typeID; /* 'adtl' */ + } + + struct LabelChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwIdentifier; + Char[] dwText; /* Encoded with extended ASCII */ + } LabelChunk; + + + + + Creates an empty cue list + + + + + Adds an item to the list + + Cue + + + + Gets sample positions for the embedded cues + + Array containing the cue positions + + + + Gets labels for the embedded cues + + Array containing the labels + + + + Creates a cue list from the cue RIFF chunk and the list RIFF chunk + + The data contained in the cue chunk + The data contained in the list chunk + + + + Gets the cues as the concatenated cue and list RIFF chunks. + + RIFF chunks containing the cue data + + + + Number of cues + + + + + Accesses the cue at the specified index + + + + + + + Checks if the cue and list chunks exist and if so, creates a cue list + + + + + A wave file reader supporting cue reading + + + + + Loads a wavefile and supports reading cues + + + + + + Cue List (can be null if cues not present) + + + + + An interface for WaveStreams which can report notification of individual samples + + + + + A sample has been detected + + + + + Sample event arguments + + + + + Left sample + + + + + Right sample + + + + + Constructor + + + + + Class for reading any file that Media Foundation can play + Will only work in Windows Vista and above + Automatically converts to PCM + If it is a video file with multiple audio streams, it will pick out the first audio stream + + + + + Allows customisation of this reader class + + + + + Sets up the default settings for MediaFoundationReader + + + + + Allows us to request IEEE float output (n.b. no guarantee this will be accepted) + + + + + If true, the reader object created in the constructor is used in Read + Should only be set to true if you are working entirely on an STA thread, or + entirely with MTA threads. + + + + + If true, the reposition does not happen immediately, but waits until the + next call to read to be processed. + + + + + Default constructor + + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename (can also be a URL e.g. http:// mms:// file://) + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename + Advanced settings + + + + Initializes + + + + + Creates the reader (overridable by ) + + + + + Reads from this wave stream + + Buffer to read into + Offset in buffer + Bytes required + Number of bytes read; 0 indicates end of stream + + + + WaveFormat of this stream (n.b. this is after converting to PCM) + + + + + The bytesRequired of this stream in bytes (n.b may not be accurate) + + + + + Current position within this stream + + + + + Cleans up after finishing with this reader + + true if called from Dispose + + + + WaveFormat has changed + + + + + Class for reading from MP3 files + + + + + The MP3 wave format (n.b. NOT the output format of this stream - see the WaveFormat property) + + + + Supports opening a MP3 file + + + Supports opening a MP3 file + MP3 File name + Factory method to build a frame decompressor + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + Factory method to build a frame decompressor + + + + Function that can create an MP3 Frame decompressor + + A WaveFormat object describing the MP3 file format + An MP3 Frame decompressor + + + + Creates an ACM MP3 Frame decompressor. This is the default with NAudio + + A WaveFormat object based + + + + + Gets the total length of this file in milliseconds. + + + + + ID3v2 tag if present + + + + + ID3v1 tag if present + + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + This is the length in bytes of data available to be read out from the Read method + (i.e. the decompressed MP3 length) + n.b. this may return 0 for files whose length is unknown + + + + + + + + + + + + + + + Reads decompressed PCM data from our MP3 file. + + + + + Xing header if present + + + + + Disposes this WaveStream + + + + + WaveStream that simply passes on data from its source stream + (e.g. a MemoryStream) + + + + + Initialises a new instance of RawSourceWaveStream + + The source stream containing raw audio + The waveformat of the audio in the source stream + + + + Initialises a new instance of RawSourceWaveStream + + The buffer containing raw audio + Offset in the source buffer to read from + Number of bytes to read in the buffer + The waveformat of the audio in the source stream + + + + The WaveFormat of this stream + + + + + The length in bytes of this stream (if supported) + + + + + The current position in this stream + + + + + Reads data from the stream + + + + + Wave Stream for converting between sample rates + + + + + WaveStream to resample using the DMO Resampler + + Input Stream + Desired Output Format + + + + Stream Wave Format + + + + + Stream length in bytes + + + + + Stream position in bytes + + + + + Reads data from input stream + + buffer + offset into buffer + Bytes required + Number of bytes read + + + + Dispose + + True if disposing (not from finalizer) + + + + Holds information about a RIFF file chunk + + + + + Creates a RiffChunk object + + + + + The chunk identifier + + + + + The chunk identifier converted to a string + + + + + The chunk length + + + + + The stream position this chunk is located at + + + + + A simple compressor + + + + + Create a new simple compressor stream + + Source stream + + + + Make-up Gain + + + + + Threshold + + + + + Ratio + + + + + Attack time + + + + + Release time + + + + + Determine whether the stream has the required amount of data. + + Number of bytes of data required from the stream. + Flag indicating whether the required amount of data is avialable. + + + + Turns gain on or off + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Gets the WaveFormat of this stream + + + + + Reads bytes from this stream + + Buffer to read into + Offset in array to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Gets the block alignment for this stream + + + + + MediaFoundationReader supporting reading from a stream + + + + + Constructs a new media foundation reader from a stream + + + + + Creates the reader + + + + + WaveStream that converts 32 bit audio back down to 16 bit, clipping if necessary + + + + + The method reuses the same buffer to prevent + unnecessary allocations. + + + + + Creates a new Wave32To16Stream + + the source stream + + + + Sets the volume for this stream. 1.0f is full scale + + + + + + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + Destination buffer + Offset into destination buffer + + Number of bytes read. + + + + Conversion to 16 bit and clipping + + + + + + + + + + Clip indicator. Can be reset. + + + + + Disposes this WaveStream + + + + + Represents Channel for the WaveMixerStream + 32 bit output and 16 bit input + It's output is always stereo + The input stream can be panned + + + + + Creates a new WaveChannel32 + + the source stream + stream volume (1 is 0dB) + pan control (-1 to 1) + + + + Creates a WaveChannel32 with default settings + + The source stream + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + If true, Read always returns the number of bytes requested + + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Pan of this channel (from -1 to 1) + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Sample + + + + + Raise the sample event (no check for null because it has already been done) + + + + This class supports the reading of WAV files, + providing a repositionable WaveStream that returns the raw data + contained in the WAV file + + + + Supports opening a WAV file + The WAV file format is a real mess, but we will only + support the basic WAV file format which actually covers the vast + majority of WAV files out there. For more WAV file format information + visit www.wotsit.org. If you have a WAV file that can't be read by + this class, email it to the NAudio project and we will probably + fix this reader to support it + + + + + Creates a Wave File Reader based on an input stream + + The input stream containing a WAV file including header + + + + Gets a list of the additional chunks found in this file + + + + + Gets the data for the specified chunk + + + + + Cleans up the resources associated with this WaveFileReader + + + + + + + + + + This is the length of audio data contained in this WAV file, in bytes + (i.e. the byte length of the data chunk, not the length of the WAV file itself) + + + + + + Number of Sample Frames (if possible to calculate) + This currently does not take into account number of channels + Multiply number of channels if you want the total number of samples + + + + + Position in the WAV data chunk. + + + + + + Reads bytes from the Wave File + + + + + + Attempts to read the next sample or group of samples as floating point normalised into the range -1.0f to 1.0f + + An array of samples, 1 for mono, 2 for stereo etc. Null indicates end of file reached + + + + + Attempts to read a sample into a float. n.b. only applicable for uncompressed formats + Will normalise the value read into the range -1.0f to 1.0f if it comes from a PCM encoding + + False if the end of the WAV data chunk was reached + + + + IWaveProvider that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source Provider + + + + Gets the WaveFormat of this stream + + + + + Indicates that a reposition has taken place, and internal buffers should be reset + + + + + Reads bytes from this stream + + Buffer to read into + Offset in buffer to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Disposes this resource + + + + + Finalizer + + + + + WaveStream that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source stream + + + + Creates a stream that can convert to PCM + + The source stream + A PCM stream + + + + Gets or sets the current position in the stream + + + + + Converts source bytes to destination bytes + + + + + Converts destination bytes to source bytes + + + + + Returns the stream length + + + + + Gets the WaveFormat of this stream + + + + + + + Buffer to read into + Offset within buffer to write to + Number of bytes to read + Bytes read + + + + Disposes this stream + + true if the user called this + + + + A buffer of Wave samples + + + + + creates a new wavebuffer + + WaveIn device to write to + Buffer size in bytes + + + + Place this buffer back to record more audio + + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + + Provides access to the actual record buffer (for reading only) + + + + + Indicates whether the Done flag is set on this buffer + + + + + Indicates whether the InQueue flag is set on this buffer + + + + + Number of bytes recorded + + + + + The buffer size in bytes + + + + + WaveStream that can mix together multiple 32 bit input streams + (Normally used with stereo input channels) + All channels must have the same number of inputs + + + + + Creates a new 32 bit WaveMixerStream + + + + + Creates a new 32 bit WaveMixerStream + + An Array of WaveStreams - must all have the same format. + Use WaveChannel is designed for this purpose. + Automatically stop when all inputs have been read + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove a WaveStream from the mixer + + waveStream to remove + + + + The number of inputs to this mixer + + + + + Automatically stop when all inputs have been read + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Length of this Wave Stream (in bytes) + + + + + + Position within this Wave Stream (in bytes) + + + + + + + + + + + Disposes this WaveStream + + + + + Simply shifts the input stream in time, optionally + clipping its start and end. + (n.b. may include looping in the future) + + + + + Creates a new WaveOffsetStream + + the source stream + the time at which we should start reading from the source stream + amount to trim off the front of the source stream + length of time to play from source stream + + + + Creates a WaveOffsetStream with default settings (no offset or pre-delay, + and whole length of source stream) + + The source stream + + + + The length of time before which no audio will be played + + + + + An offset into the source stream from which to start playing + + + + + Length of time to read from the source stream + + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + A buffer of Wave samples for streaming to a Wave Output device + + + + + creates a new wavebuffer + + WaveOut device to write to + Buffer size in bytes + Stream to provide more data + Lock to protect WaveOut API's from being called on >1 thread + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + this is called by the WAVE callback and should be used to refill the buffer + + + + Whether the header's in queue flag is set + + + + + The buffer size in bytes + + + + + Base class for all WaveStream classes. Derives from stream. + + + + + Retrieves the WaveFormat for this stream + + + + + We can read from this stream + + + + + We can seek within this stream + + + + + We can't write to this stream + + + + + Flush does not need to do anything + See + + + + + An alternative way of repositioning. + See + + + + + Sets the length of the WaveStream. Not Supported. + + + + + + Writes to the WaveStream. Not Supported. + + + + + The block alignment for this wavestream. Do not modify the Position + to anything that is not a whole multiple of this value + + + + + Moves forward or backwards the specified number of seconds in the stream + + Number of seconds to move, can be negative + + + + The current position in the stream in Time format + + + + + Total length in real-time of the stream (may be an estimate for compressed files) + + + + + Whether the WaveStream has non-zero sample data at the current position for the + specified count + + Number of bytes to read + + + + Contains the name and CLSID of a DirectX Media Object + + + + + Name + + + + + CLSID + + + + + Initializes a new instance of DmoDescriptor + + + + + DirectX Media Object Enumerator + + + + + Get audio effect names + + Audio effect names + + + + Get audio encoder names + + Audio encoder names + + + + Get audio decoder names + + Audio decoder names + + + + DMO Guids for use with DMOEnum + dmoreg.h + + + + + MediaErr.h + + + + + DMO_PARTIAL_MEDIATYPE + + + + + defined in Medparam.h + + + + + Windows Media Resampler Props + wmcodecdsp.h + + + + + Range is 1 to 60 + + + + + Specifies the channel matrix. + + + + + Attempting to implement the COM IMediaBuffer interface as a .NET object + Not sure what will happen when I pass this to an unmanaged object + + + + + Creates a new Media Buffer + + Maximum length in bytes + + + + Dispose and free memory for buffer + + + + + Finalizer + + + + + Set length of valid data in the buffer + + length + HRESULT + + + + Gets the maximum length of the buffer + + Max length (output parameter) + HRESULT + + + + Gets buffer and / or length + + Pointer to variable into which buffer pointer should be written + Pointer to variable into which valid data length should be written + HRESULT + + + + Length of data in the media buffer + + + + + Loads data into this buffer + + Data to load + Number of bytes to load + + + + Retrieves the data in the output buffer + + buffer to retrieve into + offset within that buffer + + + + Media Object + + + + + Creates a new Media Object + + Media Object COM interface + + + + Number of input streams + + + + + Number of output streams + + + + + Gets the input media type for the specified input stream + + Input stream index + Input type index + DMO Media Type or null if there are no more input types + + + + Gets the DMO Media Output type + + The output stream + Output type index + DMO Media Type or null if no more available + + + + retrieves the media type that was set for an output stream, if any + + Output stream index + DMO Media Type or null if no more available + + + + Enumerates the supported input types + + Input stream index + Enumeration of input types + + + + Enumerates the output types + + Output stream index + Enumeration of supported output types + + + + Querys whether a specified input type is supported + + Input stream index + Media type to check + true if supports + + + + Sets the input type helper method + + Input stream index + Media type + Flags (can be used to test rather than set) + + + + Sets the input type + + Input stream index + Media Type + + + + Sets the input type to the specified Wave format + + Input stream index + Wave format + + + + Requests whether the specified Wave format is supported as an input + + Input stream index + Wave format + true if supported + + + + Helper function to make a DMO Media Type to represent a particular WaveFormat + + + + + Checks if a specified output type is supported + n.b. you may need to set the input type first + + Output stream index + Media type + True if supported + + + + Tests if the specified Wave Format is supported for output + n.b. may need to set the input type first + + Output stream index + Wave format + True if supported + + + + Helper method to call SetOutputType + + + + + Sets the output type + n.b. may need to set the input type first + + Output stream index + Media type to set + + + + Set output type to the specified wave format + n.b. may need to set input type first + + Output stream index + Wave format + + + + Get Input Size Info + + Input Stream Index + Input Size Info + + + + Get Output Size Info + + Output Stream Index + Output Size Info + + + + Process Input + + Input Stream index + Media Buffer + Flags + Timestamp + Duration + + + + Process Output + + Flags + Output buffer count + Output buffers + + + + Gives the DMO a chance to allocate any resources needed for streaming + + + + + Tells the DMO to free any resources needed for streaming + + + + + Gets maximum input latency + + input stream index + Maximum input latency as a ref-time + + + + Flushes all buffered data + + + + + Report a discontinuity on the specified input stream + + Input Stream index + + + + Is this input stream accepting data? + + Input Stream index + true if accepting data + + + + Experimental code, not currently being called + Not sure if it is necessary anyway + + + + + Media Object Size Info + + + + + Minimum Buffer Size, in bytes + + + + + Max Lookahead + + + + + Alignment + + + + + Media Object Size Info + + + + + ToString + + + + + MP_PARAMINFO + + + + + MP_TYPE + + + + + MPT_INT + + + + + MPT_FLOAT + + + + + MPT_BOOL + + + + + MPT_ENUM + + + + + MPT_MAX + + + + + MP_CURVE_TYPE + + + + + uuids.h, ksuuids.h + + + + + implements IMediaObject (DirectX Media Object) + implements IMFTransform (Media Foundation Transform) + On Windows XP, it is always an MM (if present at all) + + + + + Windows Media MP3 Decoder (as a DMO) + WORK IN PROGRESS - DO NOT USE! + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + DMO Input Data Buffer Flags + + + + + None + + + + + DMO_INPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_INPUT_DATA_BUFFERF_TIME + + + + + DMO_INPUT_DATA_BUFFERF_TIMELENGTH + + + + + http://msdn.microsoft.com/en-us/library/aa929922.aspx + DMO_MEDIA_TYPE + + + + + Major type + + + + + Major type name + + + + + Subtype + + + + + Subtype name + + + + + Fixed size samples + + + + + Sample size + + + + + Format type + + + + + Format type name + + + + + Gets the structure as a Wave format (if it is one) + + + + + Sets this object up to point to a wave format + + Wave format structure + + + + DMO Output Data Buffer + + + + + Creates a new DMO Output Data Buffer structure + + Maximum buffer size + + + + Dispose + + + + + Media Buffer + + + + + Length of data in buffer + + + + + Status Flags + + + + + Timestamp + + + + + Duration + + + + + Retrives the data in this buffer + + Buffer to receive data + Offset into buffer + + + + Is more data available + If true, ProcessOuput should be called again + + + + + DMO Output Data Buffer Flags + + + + + None + + + + + DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_OUTPUT_DATA_BUFFERF_TIME + + + + + DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH + + + + + DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE + + + + + DMO Process Output Flags + + + + + None + + + + + DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER + + + + + IMediaBuffer Interface + + + + + Set Length + + Length + HRESULT + + + + Get Max Length + + Max Length + HRESULT + + + + Get Buffer and Length + + Pointer to variable into which to write the Buffer Pointer + Pointer to variable into which to write the Valid Data Length + HRESULT + + + + defined in mediaobj.h + + + + + From wmcodecsdp.h + Implements: + - IMediaObject + - IMFTransform (Media foundation - we will leave this for now as there is loads of MF stuff) + - IPropertyStore + - IWMResamplerProps + Can resample PCM or IEEE + + + + + DMO Resampler + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + Soundfont generator + + + + + Gets the generator type + + + + + Generator amount as an unsigned short + + + + + Generator amount as a signed short + + + + + Low byte amount + + + + + High byte amount + + + + + Instrument + + + + + Sample Header + + + + + + + + + + Generator types + + + + Start address offset + + + End address offset + + + Start loop address offset + + + End loop address offset + + + Start address coarse offset + + + Modulation LFO to pitch + + + Vibrato LFO to pitch + + + Modulation envelope to pitch + + + Initial filter cutoff frequency + + + Initial filter Q + + + Modulation LFO to filter Cutoff frequency + + + Modulation envelope to filter cutoff frequency + + + End address coarse offset + + + Modulation LFO to volume + + + Unused + + + Chorus effects send + + + Reverb effects send + + + Pan + + + Unused + + + Unused + + + Unused + + + Delay modulation LFO + + + Frequency modulation LFO + + + Delay vibrato LFO + + + Frequency vibrato LFO + + + Delay modulation envelope + + + Attack modulation envelope + + + Hold modulation envelope + + + Decay modulation envelope + + + Sustain modulation envelop + + + Release modulation envelope + + + Key number to modulation envelope hold + + + Key number to modulation envelope decay + + + Delay volume envelope + + + Attack volume envelope + + + Hold volume envelope + + + Decay volume envelope + + + Sustain volume envelope + + + Release volume envelope + + + Key number to volume envelope hold + + + Key number to volume envelope decay + + + Instrument + + + Reserved + + + Key range + + + Velocity range + + + Start loop address coarse offset + + + Key number + + + Velocity + + + Initial attenuation + + + Reserved + + + End loop address coarse offset + + + Coarse tune + + + Fine tune + + + Sample ID + + + Sample modes + + + Reserved + + + Scale tuning + + + Exclusive class + + + Overriding root key + + + Unused + + + Unused + + + + A soundfont info chunk + + + + + SoundFont Version + + + + + WaveTable sound engine + + + + + Bank name + + + + + Data ROM + + + + + Creation Date + + + + + Author + + + + + Target Product + + + + + Copyright + + + + + Comments + + + + + Tools + + + + + ROM Version + + + + + + + + + + SoundFont instrument + + + + + instrument name + + + + + Zones + + + + + + + + + + Instrument Builder + + + + + Transform Types + + + + + Linear + + + + + Modulator + + + + + Source Modulation data type + + + + + Destination generator type + + + + + Amount + + + + + Source Modulation Amount Type + + + + + Source Transform Type + + + + + + + + + + Controller Sources + + + + + No Controller + + + + + Note On Velocity + + + + + Note On Key Number + + + + + Poly Pressure + + + + + Channel Pressure + + + + + Pitch Wheel + + + + + Pitch Wheel Sensitivity + + + + + Source Types + + + + + Linear + + + + + Concave + + + + + Convex + + + + + Switch + + + + + Modulator Type + + + + + + + + + + + A SoundFont Preset + + + + + Preset name + + + + + Patch Number + + + + + Bank number + + + + + Zones + + + + + + + + + + Class to read the SoundFont file presets chunk + + + + + The Presets contained in this chunk + + + + + The instruments contained in this chunk + + + + + The sample headers contained in this chunk + + + + + + + + + + just reads a chunk ID at the current position + + chunk ID + + + + reads a chunk at the current position + + + + + creates a new riffchunk from current position checking that we're not + at the end of this chunk first + + the new chunk + + + + useful for chunks that just contain a string + + chunk as string + + + + A SoundFont Sample Header + + + + + The sample name + + + + + Start offset + + + + + End offset + + + + + Start loop point + + + + + End loop point + + + + + Sample Rate + + + + + Original pitch + + + + + Pitch correction + + + + + Sample Link + + + + + SoundFont Sample Link Type + + + + + + + + + + SoundFont sample modes + + + + + No loop + + + + + Loop Continuously + + + + + Reserved no loop + + + + + Loop and continue + + + + + Sample Link Type + + + + + Mono Sample + + + + + Right Sample + + + + + Left Sample + + + + + Linked Sample + + + + + ROM Mono Sample + + + + + ROM Right Sample + + + + + ROM Left Sample + + + + + ROM Linked Sample + + + + + SoundFont Version Structure + + + + + Major Version + + + + + Minor Version + + + + + Builds a SoundFont version + + + + + Reads a SoundFont Version structure + + + + + Writes a SoundFont Version structure + + + + + Gets the length of this structure + + + + + Represents a SoundFont + + + + + Loads a SoundFont from a file + + Filename of the SoundFont + + + + Loads a SoundFont from a stream + + stream + + + + The File Info Chunk + + + + + The Presets + + + + + The Instruments + + + + + The Sample Headers + + + + + The Sample Data + + + + + + + + + + base class for structures that can read themselves + + + + + A SoundFont zone + + + + + + + + + + Modulators for this Zone + + + + + Generators for this Zone + + + + + Summary description for Fader. + + + + + Required designer variable. + + + + + Creates a new Fader control + + + + + Clean up any resources being used. + + + + + + + + + + + + + + + + + + + + + + + + + Minimum value of this fader + + + + + Maximum value of this fader + + + + + Current value of this fader + + + + + Fader orientation + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Pan slider control + + + + + Required designer variable. + + + + + True when pan value changed + + + + + Creates a new PanSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + The current Pan setting + + + + + Control that represents a potentiometer + TODO list: + Optional Log scale + Optional reverse scale + Keyboard control + Optional bitmap mode + Optional complete draw mode + Tooltip support + + + + + Value changed event + + + + + Creates a new pot control + + + + + Minimum Value of the Pot + + + + + Maximum Value of the Pot + + + + + The current value of the pot + + + + + Draws the control + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Handles the mouse up event to allow changing value by dragging + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Implements a rudimentary volume meter + + + + + Basic volume meter + + + + + On Fore Color Changed + + + + + Current Value + + + + + Minimum decibels + + + + + Maximum decibels + + + + + Meter orientation + + + + + Paints the volume meter + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + VolumeSlider control + + + + + Required designer variable. + + + + + Volume changed event + + + + + Creates a new VolumeSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + The volume for this control + + + + + Windows Forms control for painting audio waveforms + + + + + Constructs a new instance of the WaveFormPainter class + + + + + On Resize + + + + + On ForeColor Changed + + + + + + Add Max Value + + + + + + On Paint + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Control for viewing waveforms + + + + + Required designer variable. + + + + + Creates a new WaveViewer control + + + + + sets the associated wavestream + + + + + The zoom level, in samples per pixel + + + + + Start position (currently in bytes) + + + + + Clean up any resources being used. + + + + + + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Boolean mixer control + + + + + Gets the details for this control + + memory pointer + + + + The current value of the control + + + + + Custom Mixer control + + + + + Get the data for this custom control + + pointer to memory to receive data + + + + List text mixer control + + + + + Get the details for this control + + Memory location to read to + + + Represents a Windows mixer device + + + The number of mixer devices available + + + Connects to the specified mixer + The index of the mixer to use. + This should be between zero and NumberOfDevices - 1 + + + The number of destinations this mixer supports + + + The name of this mixer device + + + The manufacturer code for this mixer device + + + The product identifier code for this mixer device + + + Retrieve the specified MixerDestination object + The ID of the destination to use. + Should be between 0 and DestinationCount - 1 + + + + A way to enumerate the destinations + + + + + A way to enumerate all available devices + + + + + Represents a mixer control + + + + + Mixer Handle + + + + + Number of Channels + + + + + Mixer Handle Type + + + + + Gets all the mixer controls + + Mixer Handle + Mixer Line + Mixer Handle Type + + + + + Gets a specified Mixer Control + + Mixer Handle + Line ID + Control ID + Number of Channels + Flags to use (indicates the meaning of mixerHandle) + + + + + Gets the control details + + + + + Gets the control details + + + + + + Mixer control name + + + + + Mixer control type + + + + + Returns true if this is a boolean control + + Control type + + + + Is this a boolean control + + + + + Determines whether a specified mixer control type is a list text control + + + + + True if this is a list text control + + + + + True if this is a signed control + + + + + True if this is an unsigned control + + + + + True if this is a custom control + + + + + String representation for debug purposes + + + + + Mixer control types + + + + Custom + + + Boolean meter + + + Signed meter + + + Peak meter + + + Unsigned meter + + + Boolean + + + On Off + + + Mute + + + Mono + + + Loudness + + + Stereo Enhance + + + Button + + + Decibels + + + Signed + + + Unsigned + + + Percent + + + Slider + + + Pan + + + Q-sound pan + + + Fader + + + Volume + + + Bass + + + Treble + + + Equaliser + + + Single Select + + + Mux + + + Multiple select + + + Mixer + + + Micro time + + + Milli time + + + + Represents a mixer line (source or destination) + + + + + Creates a new mixer destination + + Mixer Handle + Destination Index + Mixer Handle Type + + + + Creates a new Mixer Source For a Specified Source + + Mixer Handle + Destination Index + Source Index + Flag indicating the meaning of mixerHandle + + + + Creates a new Mixer Source + + Wave In Device + + + + Mixer Line Name + + + + + Mixer Line short name + + + + + The line ID + + + + + Component Type + + + + + Mixer destination type description + + + + + Number of channels + + + + + Number of sources + + + + + Number of controls + + + + + Is this destination active + + + + + Is this destination disconnected + + + + + Is this destination a source + + + + + Gets the specified source + + + + + Enumerator for the controls on this Mixer Limne + + + + + Enumerator for the sources on this Mixer Line + + + + + The name of the target output device + + + + + Describes this Mixer Line (for diagnostic purposes) + + + + + Mixer Interop Flags + + + + + MIXER_OBJECTF_HANDLE = 0x80000000; + + + + + MIXER_OBJECTF_MIXER = 0x00000000; + + + + + MIXER_OBJECTF_HMIXER + + + + + MIXER_OBJECTF_WAVEOUT + + + + + MIXER_OBJECTF_HWAVEOUT + + + + + MIXER_OBJECTF_WAVEIN + + + + + MIXER_OBJECTF_HWAVEIN + + + + + MIXER_OBJECTF_MIDIOUT + + + + + MIXER_OBJECTF_HMIDIOUT + + + + + MIXER_OBJECTF_MIDIIN + + + + + MIXER_OBJECTF_HMIDIIN + + + + + MIXER_OBJECTF_AUX + + + + + MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000; + MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000; + + + + + MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001; + MIXER_SETCONTROLDETAILSF_LISTTEXT = 0x00000001; + + + + + MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F; + + + + + MIXER_GETLINECONTROLSF_ALL = 0x00000000; + + + + + MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001; + + + + + MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002; + + + + + MIXER_GETLINEINFOF_DESTINATION = 0x00000000; + + + + + MIXER_GETLINEINFOF_SOURCE = 0x00000001; + + + + + MIXER_GETLINEINFOF_LINEID = 0x00000002; + + + + + MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003; + + + + + MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004; + + + + + MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F; + + + + + Mixer Line Flags + + + + + Audio line is active. An active line indicates that a signal is probably passing + through the line. + + + + + Audio line is disconnected. A disconnected line's associated controls can still be + modified, but the changes have no effect until the line is connected. + + + + + Audio line is an audio source line associated with a single audio destination line. + If this flag is not set, this line is an audio destination line associated with zero + or more audio source lines. + + + + + BOUNDS structure + + + + + dwMinimum / lMinimum / reserved 0 + + + + + dwMaximum / lMaximum / reserved 1 + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + METRICS structure + + + + + cSteps / reserved[0] + + + + + cbCustomData / reserved[1], number of bytes for control details + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + MIXERCONTROL struct + http://msdn.microsoft.com/en-us/library/dd757293%28VS.85%29.aspx + + + + + Mixer Line Component type enumeration + + + + + Audio line is a destination that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_DST_UNDEFINED + + + + + Audio line is a digital destination (for example, digital input to a DAT or CD audio device). + MIXERLINE_COMPONENTTYPE_DST_DIGITAL + + + + + Audio line is a line level destination (for example, line level input from a CD audio device) that will be the final recording source for the analog-to-digital converter (ADC). Because most audio cards for personal computers provide some sort of gain for the recording audio source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_DST_WAVEIN type. + MIXERLINE_COMPONENTTYPE_DST_LINE + + + + + Audio line is a destination used for a monitor. + MIXERLINE_COMPONENTTYPE_DST_MONITOR + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive speakers. This is the typical component type for the audio output of audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_SPEAKERS + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive headphones. Most audio cards use the same audio destination line for speakers and headphones, in which case the mixer device simply uses the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS type. + MIXERLINE_COMPONENTTYPE_DST_HEADPHONES + + + + + Audio line is a destination that will be routed to a telephone line. + MIXERLINE_COMPONENTTYPE_DST_TELEPHONE + + + + + Audio line is a destination that will be the final recording source for the waveform-audio input (ADC). This line typically provides some sort of gain or attenuation. This is the typical component type for the recording line of most audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_WAVEIN + + + + + Audio line is a destination that will be the final recording source for voice input. This component type is exactly like MIXERLINE_COMPONENTTYPE_DST_WAVEIN but is intended specifically for settings used during voice recording/recognition. Support for this line is optional for a mixer device. Many mixer devices provide only MIXERLINE_COMPONENTTYPE_DST_WAVEIN. + MIXERLINE_COMPONENTTYPE_DST_VOICEIN + + + + + Audio line is a source that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED + + + + + Audio line is a digital source (for example, digital output from a DAT or audio CD). + MIXERLINE_COMPONENTTYPE_SRC_DIGITAL + + + + + Audio line is a line-level source (for example, line-level input from an external stereo) that can be used as an optional recording source. Because most audio cards for personal computers provide some sort of gain for the recording source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY type. + MIXERLINE_COMPONENTTYPE_SRC_LINE + + + + + Audio line is a microphone recording source. Most audio cards for personal computers provide at least two types of recording sources: an auxiliary audio line and microphone input. A microphone audio line typically provides some sort of gain. Audio cards that use a single input for use with a microphone or auxiliary audio line should use the MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE component type. + MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE + + + + + Audio line is a source originating from the output of an internal synthesizer. Most audio cards for personal computers provide some sort of MIDI synthesizer (for example, an Adlib®-compatible or OPL/3 FM synthesizer). + MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER + + + + + Audio line is a source originating from the output of an internal audio CD. This component type is provided for audio cards that provide an audio source line intended to be connected to an audio CD (or CD-ROM playing an audio CD). + MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC + + + + + Audio line is a source originating from an incoming telephone line. + MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE + + + + + Audio line is a source originating from personal computer speaker. Several audio cards for personal computers provide the ability to mix what would typically be played on the internal speaker with the output of an audio card. Some audio cards support the ability to use this output as a recording source. + MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER + + + + + Audio line is a source originating from the waveform-audio output digital-to-analog converter (DAC). Most audio cards for personal computers provide this component type as a source to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination. Some cards also allow this source to be routed to the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT + + + + + Audio line is a source originating from the auxiliary audio line. This line type is intended as a source with gain or attenuation that can be routed to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination and/or recorded from the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY + + + + + Audio line is an analog source (for example, analog output from a video-cassette tape). + MIXERLINE_COMPONENTTYPE_SRC_ANALOG + + + + + Represents a signed mixer control + + + + + Gets details for this contrl + + + + + The value of the control + + + + + Minimum value for this control + + + + + Maximum value for this control + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + + Represents an unsigned mixer control + + + + + Gets the details for this control + + + + + The control value + + + + + The control's minimum value + + + + + The control's maximum value + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + Manufacturer codes from mmreg.h + + + + Microsoft Corporation + + + Creative Labs, Inc + + + Media Vision, Inc. + + + Fujitsu Corp. + + + Artisoft, Inc. + + + Turtle Beach, Inc. + + + IBM Corporation + + + Vocaltec LTD. + + + Roland + + + DSP Solutions, Inc. + + + NEC + + + ATI + + + Wang Laboratories, Inc + + + Tandy Corporation + + + Voyetra + + + Antex Electronics Corporation + + + ICL Personal Systems + + + Intel Corporation + + + Advanced Gravis + + + Video Associates Labs, Inc. + + + InterActive Inc + + + Yamaha Corporation of America + + + Everex Systems, Inc + + + Echo Speech Corporation + + + Sierra Semiconductor Corp + + + Computer Aided Technologies + + + APPS Software International + + + DSP Group, Inc + + + microEngineering Labs + + + Computer Friends, Inc. + + + ESS Technology + + + Audio, Inc. + + + Motorola, Inc. + + + Canopus, co., Ltd. + + + Seiko Epson Corporation + + + Truevision + + + Aztech Labs, Inc. + + + Videologic + + + SCALACS + + + Korg Inc. + + + Audio Processing Technology + + + Integrated Circuit Systems, Inc. + + + Iterated Systems, Inc. + + + Metheus + + + Logitech, Inc. + + + Winnov, Inc. + + + NCR Corporation + + + EXAN + + + AST Research Inc. + + + Willow Pond Corporation + + + Sonic Foundry + + + Vitec Multimedia + + + MOSCOM Corporation + + + Silicon Soft, Inc. + + + Supermac + + + Audio Processing Technology + + + Speech Compression + + + Ahead, Inc. + + + Dolby Laboratories + + + OKI + + + AuraVision Corporation + + + Ing C. Olivetti & C., S.p.A. + + + I/O Magic Corporation + + + Matsushita Electric Industrial Co., LTD. + + + Control Resources Limited + + + Xebec Multimedia Solutions Limited + + + New Media Corporation + + + Natural MicroSystems + + + Lyrrus Inc. + + + Compusic + + + OPTi Computers Inc. + + + Adlib Accessories Inc. + + + Compaq Computer Corp. + + + Dialogic Corporation + + + InSoft, Inc. + + + M.P. Technologies, Inc. + + + Weitek + + + Lernout & Hauspie + + + Quanta Computer Inc. + + + Apple Computer, Inc. + + + Digital Equipment Corporation + + + Mark of the Unicorn + + + Workbit Corporation + + + Ositech Communications Inc. + + + miro Computer Products AG + + + Cirrus Logic + + + ISOLUTION B.V. + + + Horizons Technology, Inc + + + Computer Concepts Ltd + + + Voice Technologies Group, Inc. + + + Radius + + + Rockwell International + + + Co. XYZ for testing + + + Opcode Systems + + + Voxware Inc + + + Northern Telecom Limited + + + APICOM + + + Grande Software + + + ADDX + + + Wildcat Canyon Software + + + Rhetorex Inc + + + Brooktree Corporation + + + ENSONIQ Corporation + + + FAST Multimedia AG + + + NVidia Corporation + + + OKSORI Co., Ltd. + + + DiAcoustics, Inc. + + + Gulbransen, Inc. + + + Kay Elemetrics, Inc. + + + Crystal Semiconductor Corporation + + + Splash Studios + + + Quarterdeck Corporation + + + TDK Corporation + + + Digital Audio Labs, Inc. + + + Seer Systems, Inc. + + + PictureTel Corporation + + + AT&T Microelectronics + + + Osprey Technologies, Inc. + + + Mediatrix Peripherals + + + SounDesignS M.C.S. Ltd. + + + A.L. Digital Ltd. + + + Spectrum Signal Processing, Inc. + + + Electronic Courseware Systems, Inc. + + + AMD + + + Core Dynamics + + + CANAM Computers + + + Softsound, Ltd. + + + Norris Communications, Inc. + + + Danka Data Devices + + + EuPhonics + + + Precept Software, Inc. + + + Crystal Net Corporation + + + Chromatic Research, Inc + + + Voice Information Systems, Inc + + + Vienna Systems + + + Connectix Corporation + + + Gadget Labs LLC + + + Frontier Design Group LLC + + + Viona Development GmbH + + + Casio Computer Co., LTD + + + Diamond Multimedia + + + S3 + + + Fraunhofer + + + + Summary description for MmException. + + + + + Creates a new MmException + + The result returned by the Windows API call + The name of the Windows API that failed + + + + Helper function to automatically raise an exception on failure + + The result of the API call + The API function name + + + + Returns the Windows API result + + + + + Windows multimedia error codes from mmsystem.h. + + + + no error, MMSYSERR_NOERROR + + + unspecified error, MMSYSERR_ERROR + + + device ID out of range, MMSYSERR_BADDEVICEID + + + driver failed enable, MMSYSERR_NOTENABLED + + + device already allocated, MMSYSERR_ALLOCATED + + + device handle is invalid, MMSYSERR_INVALHANDLE + + + no device driver present, MMSYSERR_NODRIVER + + + memory allocation error, MMSYSERR_NOMEM + + + function isn't supported, MMSYSERR_NOTSUPPORTED + + + error value out of range, MMSYSERR_BADERRNUM + + + invalid flag passed, MMSYSERR_INVALFLAG + + + invalid parameter passed, MMSYSERR_INVALPARAM + + + handle being used simultaneously on another thread (eg callback),MMSYSERR_HANDLEBUSY + + + specified alias not found, MMSYSERR_INVALIDALIAS + + + bad registry database, MMSYSERR_BADDB + + + registry key not found, MMSYSERR_KEYNOTFOUND + + + registry read error, MMSYSERR_READERROR + + + registry write error, MMSYSERR_WRITEERROR + + + registry delete error, MMSYSERR_DELETEERROR + + + registry value not found, MMSYSERR_VALNOTFOUND + + + driver does not call DriverCallback, MMSYSERR_NODRIVERCB + + + more data to be returned, MMSYSERR_MOREDATA + + + unsupported wave format, WAVERR_BADFORMAT + + + still something playing, WAVERR_STILLPLAYING + + + header not prepared, WAVERR_UNPREPARED + + + device is synchronous, WAVERR_SYNC + + + Conversion not possible (ACMERR_NOTPOSSIBLE) + + + Busy (ACMERR_BUSY) + + + Header Unprepared (ACMERR_UNPREPARED) + + + Cancelled (ACMERR_CANCELED) + + + invalid line (MIXERR_INVALLINE) + + + invalid control (MIXERR_INVALCONTROL) + + + invalid value (MIXERR_INVALVALUE) + + + diff --git a/packages/NAudio.1.8.2/lib/windows8/NAudio.Win8.XML b/packages/NAudio.1.8.2/lib/windows8/NAudio.Win8.XML new file mode 100644 index 0000000..2431e2e --- /dev/null +++ b/packages/NAudio.1.8.2/lib/windows8/NAudio.Win8.XML @@ -0,0 +1,13623 @@ + + + + NAudio.Win8 + + + + + a-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts an a-law encoded byte to a 16 bit linear sample + + a-law encoded byte + Linear sample + + + + A-law encoder + + + + + Encodes a single 16 bit sample to a-law + + 16 bit PCM sample + a-law encoded byte + + + + SpanDSP - a series of DSP components for telephony + + g722_decode.c - The ITU G.722 codec, decode part. + + Written by Steve Underwood <steveu@coppice.org> + + Copyright (C) 2005 Steve Underwood + Ported to C# by Mark Heath 2011 + + Despite my general liking of the GPL, I place my own contributions + to this code in the public domain for the benefit of all mankind - + even the slimy ones who might try to proprietize my work and use it + to my detriment. + + Based in part on a single channel G.722 codec which is: + Copyright (c) CMU 1993 + Computer Science, Speech Group + Chengxiang Lu and Alex Hauptmann + + + + + hard limits to 16 bit samples + + + + + Decodes a buffer of G722 + + Codec state + Output buffer (to contain decompressed PCM samples) + + Number of bytes in input G722 data to decode + Number of samples written into output buffer + + + + Encodes a buffer of G722 + + Codec state + Output buffer (to contain encoded G722) + PCM 16 bit samples to encode + Number of samples in the input buffer to encode + Number of encoded bytes written into output buffer + + + + Stores state to be used between calls to Encode or Decode + + + + + ITU Test Mode + TRUE if the operating in the special ITU test mode, with the band split filters disabled. + + + + + TRUE if the G.722 data is packed + + + + + 8kHz Sampling + TRUE if encode from 8k samples/second + + + + + Bits Per Sample + 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. + + + + + Signal history for the QMF (x) + + + + + Band + + + + + In bit buffer + + + + + Number of bits in InBuffer + + + + + Out bit buffer + + + + + Number of bits in OutBuffer + + + + + Creates a new instance of G722 Codec State for a + new encode or decode session + + Bitrate (typically 64000) + Special options + + + + Band data for G722 Codec + + + + s + + + sp + + + sz + + + r + + + a + + + ap + + + p + + + d + + + b + + + bp + + + sg + + + nb + + + det + + + + G722 Flags + + + + + None + + + + + Using a G722 sample rate of 8000 + + + + + Packed + + + + + mu-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts a mu-law encoded byte to a 16 bit linear sample + + mu-law encoded byte + Linear sample + + + + mu-law encoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + Encodes a single 16 bit sample to mu-law + + 16 bit PCM sample + mu-law encoded byte + + + + Audio Capture Client + + + + + Gets a pointer to the buffer + + Pointer to the buffer + + + + Gets a pointer to the buffer + + Number of frames to read + Buffer flags + Pointer to the buffer + + + + Gets the size of the next packet + + + + + Release buffer + + Number of frames written + + + + Release the COM object + + + + + Windows CoreAudio AudioClient + + + + + Retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams. + Can be called before initialize + + + + + Initializes the Audio Client + + Share Mode + Stream Flags + Buffer Duration + Periodicity + Wave Format + Audio Session GUID (can be null) + + + + Retrieves the size (maximum capacity) of the audio buffer associated with the endpoint. (must initialize first) + + + + + Retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized. + + + + + Retrieves the number of frames of padding in the endpoint buffer (must initialize first) + + + + + Retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer. + (can be called before initialize) + + + + + Gets the minimum device period + (can be called before initialize) + + + + + Returns the AudioStreamVolume service for this AudioClient. + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Gets the AudioClockClient service + + + + + Gets the AudioRenderClient service + + + + + Gets the AudioCaptureClient service + + + + + Determines whether if the specified output format is supported + + The share mode. + The desired format. + True if the format is supported + + + + Determines if the specified output format is supported in shared mode + + Share Mode + Desired Format + Output The closest match format. + True if the format is supported + + + + Starts the audio stream + + + + + Stops the audio stream. + + + + + Set the Event Handle for buffer synchro. + + The Wait Handle to setup + + + + Resets the audio stream + Reset is a control method that the client calls to reset a stopped audio stream. + Resetting the stream flushes all pending data and resets the audio clock stream + position to 0. This method fails if it is called on a stream that is not stopped + + + + + Dispose + + + + + Audio Client Buffer Flags + + + + + None + + + + + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY + + + + + AUDCLNT_BUFFERFLAGS_SILENT + + + + + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR + + + + + The AudioClientProperties structure is used to set the parameters that describe the properties of the client's audio stream. + + http://msdn.microsoft.com/en-us/library/windows/desktop/hh968105(v=vs.85).aspx + + + + The size of the buffer for the audio stream. + + + + + Boolean value to indicate whether or not the audio stream is hardware-offloaded + + + + + An enumeration that is used to specify the category of the audio stream. + + + + + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + + AUDCLNT_SHAREMODE + + + + + AUDCLNT_SHAREMODE_SHARED, + + + + + AUDCLNT_SHAREMODE_EXCLUSIVE + + + + + AUDCLNT_STREAMFLAGS + + + + + None + + + + + AUDCLNT_STREAMFLAGS_CROSSPROCESS + + + + + AUDCLNT_STREAMFLAGS_LOOPBACK + + + + + AUDCLNT_STREAMFLAGS_EVENTCALLBACK + + + + + AUDCLNT_STREAMFLAGS_NOPERSIST + + + + + Defines values that describe the characteristics of an audio stream. + + + + + No stream options. + + + + + The audio stream is a 'raw' stream that bypasses all signal processing except for endpoint specific, always-on processing in the APO, driver, and hardware. + + + + + Audio Clock Client + + + + + Characteristics + + + + + Frequency + + + + + Get Position + + + + + Adjusted Position + + + + + Can Adjust Position + + + + + Dispose + + + + + Audio Endpoint Volume + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + On Volume Notification + + + + + Volume Range + + + + + Hardware Support + + + + + Step Information + + + + + Channels + + + + + Master Volume Level + + + + + Master Volume Level Scalar + + + + + Mute + + + + + Volume Step Up + + + + + Volume Step Down + + + + + Creates a new Audio endpoint volume + + IAudioEndpointVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Audio Endpoint Volume Channel + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + Volume Level + + + + + Volume Level Scalar + + + + + Audio Endpoint Volume Channels + + + + + Channel Count + + + + + Indexer - get a specific channel + + + + + Audio Endpoint Volume Notifiaction Delegate + + Audio Volume Notification Data + + + + Audio Endpoint Volume Step Information + + + + + Step + + + + + StepCount + + + + + Audio Endpoint Volume Volume Range + + + + + Minimum Decibels + + + + + Maximum Decibels + + + + + Increment Decibels + + + + + Audio Meter Information + + + + + Peak Values + + + + + Hardware Support + + + + + Master Peak Value + + + + + Audio Meter Information Channels + + + + + Metering Channel Count + + + + + Get Peak value + + Channel index + Peak value + + + + Audio Render Client + + + + + Gets a pointer to the buffer + + Number of frames requested + Pointer to the buffer + + + + Release buffer + + Number of frames written + Buffer flags + + + + Release the COM object + + + + + AudioSessionControl object for information + regarding an audio session + + + + + Constructor. + + + + + + Dispose + + + + + Finalizer + + + + + Audio meter information of the audio session. + + + + + Simple audio volume of the audio session (for volume and mute status). + + + + + The current state of the audio session. + + + + + The name of the audio session. + + + + + the path to the icon shown in the mixer. + + + + + The session identifier of the audio session. + + + + + The session instance identifier of the audio session. + + + + + The process identifier of the audio session. + + + + + Is the session a system sounds session. + + + + + the grouping param for an audio session grouping + + + + + + For chanigng the grouping param and supplying the context of said change + + + + + + + Registers an even client for callbacks + + + + + + Unregisters an event client from receiving callbacks + + + + + + AudioSessionEvents callback implementation + + + + + Constructor. + + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + AudioSessionManager + + Designed to manage audio sessions and in particuar the + SimpleAudioVolume interface to adjust a session volume + + + + + Session created delegate + + + + + Occurs when audio session has been added (for example run another program that use audio playback). + + + + + SimpleAudioVolume object + for adjusting the volume for the user session + + + + + AudioSessionControl object + for registring for callbacks and other session information + + + + + Refresh session of current device. + + + + + Returns list of sessions of current device. + + + + + Dispose. + + + + + Finalizer. + + + + + Specifies the category of an audio stream. + + + + + Other audio stream. + + + + + Media that will only stream when the app is in the foreground. + + + + + Media that can be streamed when the app is in the background. + + + + + Real-time communications, such as VOIP or chat. + + + + + Alert sounds. + + + + + Sound effects. + + + + + Game sound effects. + + + + + Background audio for games. + + + + + Manages the AudioStreamVolume for the . + + + + + Verify that the channel index is valid. + + + + + + + Return the current stream volumes for all channels + + An array of volume levels between 0.0 and 1.0 for each channel in the audio stream. + + + + Returns the current number of channels in this audio stream. + + + + + Return the current volume for the requested channel. + + The 0 based index into the channels. + The volume level for the channel between 0.0 and 1.0. + + + + Set the volume level for each channel of the audio stream. + + An array of volume levels (between 0.0 and 1.0) one for each channel. + + A volume level MUST be supplied for reach channel in the audio stream. + + + Thrown when does not contain elements. + + + + + Sets the volume level for one channel in the audio stream. + + The 0-based index into the channels to adjust the volume of. + The volume level between 0.0 and 1.0 for this channel of the audio stream. + + + + Dispose + + + + + Release/cleanup objects during Dispose/finalization. + + True if disposing and false if being finalized. + + + + Audio Volume Notification Data + + + + + Event Context + + + + + Muted + + + + + Guid that raised the event + + + + + Master Volume + + + + + Channels + + + + + Channel Volume + + + + + Audio Volume Notification Data + + + + + + + + + + The EDataFlow enumeration defines constants that indicate the direction + in which audio data flows between an audio endpoint device and an application + + + + + Audio rendering stream. + Audio data flows from the application to the audio endpoint device, which renders the stream. + + + + + Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, + to the application + + + + + Audio rendering or capture stream. Audio data can flow either from the application to the audio + endpoint device, or from the audio endpoint device to the application. + + + + + Device State + + + + + DEVICE_STATE_ACTIVE + + + + + DEVICE_STATE_DISABLED + + + + + DEVICE_STATE_NOTPRESENT + + + + + DEVICE_STATE_UNPLUGGED + + + + + DEVICE_STATEMASK_ALL + + + + + Endpoint Hardware Support + + + + + Volume + + + + + Mute + + + + + Meter + + + + + is defined in WTypes.h + + + + + Audio Client WASAPI Error Codes (HResult) + + + + + AUDCLNT_E_NOT_INITIALIZED + + + + + AUDCLNT_E_UNSUPPORTED_FORMAT + + + + + AUDCLNT_E_DEVICE_IN_USE + + + + + AUDCLNT_E_RESOURCES_INVALIDATED + + + + + Windows CoreAudio IAudioClient interface + Defined in AudioClient.h + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + + Defined in AudioClient.h + + + + + Defined in AudioClient.h + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier for the audio session. + + Receives the session identifier. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier of the audio session instance. + + Receives the identifier of a particular instance. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the process identifier of the audio session. + + Receives the process identifier of the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Indicates whether the session is a system sounds session. + + An HRESULT code indicating whether the operation succeeded of failed. + + + + Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. + + A variable that enables or disables system auto-ducking. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Defines constants that indicate the current state of an audio session. + + + MSDN Reference: http://msdn.microsoft.com/en-us/library/dd370792.aspx + + + + + The audio session is inactive. + + + + + The audio session is active. + + + + + The audio session has expired. + + + + + Defines constants that indicate a reason for an audio session being disconnected. + + + MSDN Reference: Unknown + + + + + The user removed the audio endpoint device. + + + + + The Windows audio service has stopped. + + + + + The stream format changed for the device that the audio session is connected to. + + + + + The user logged off the WTS session that the audio session was running in. + + + + + The WTS session that the audio session was running in was disconnected. + + + + + The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + interface to receive session related events + + + + + notification of volume changes including muting of audio session + + the current volume + the current mute state, true muted, false otherwise + + + + notification of display name changed + + the current display name + + + + notification of icon path changed + + the current icon path + + + + notification of the client that the volume level of an audio channel in the session submix has changed + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + + + + notification of the client that the grouping parameter for the session has changed + + >The new grouping parameter for the session. + + + + notification of the client that the stream-activity state of the session has changed + + The new session state. + + + + notification of the client that the session has been disconnected + + The reason that the audio session was disconnected. + + + + Windows CoreAudio IAudioSessionManager interface + Defined in AudioPolicy.h + + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionNotification interface + Defined in AudioPolicy.h + + + + + + + session being added + An HRESULT code indicating whether the operation succeeded of failed. + + + + defined in MMDeviceAPI.h + + + + + IMMNotificationClient + + + + + Device State Changed + + + + + Device Added + + + + + Device Removed + + + + + Default Device Changed + + + + + Property Value Changed + + + + + + + is defined in propsys.h + + + + + Windows CoreAudio ISimpleAudioVolume interface + Defined in AudioClient.h + + + + + Sets the master volume level for the audio session. + + The new volume level expressed as a normalized value between 0.0 and 1.0. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the client volume level for the audio session. + + Receives the volume level expressed as a normalized value between 0.0 and 1.0. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Sets the muting state for the audio session. + + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the current muting state for the audio session. + + Receives the muting state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + implements IMMDeviceEnumerator + + + + + MMDevice STGM enumeration + + + + + from Propidl.h. + http://msdn.microsoft.com/en-us/library/aa380072(VS.85).aspx + contains a union so we have to do an explicit layout + + + + + Creates a new PropVariant containing a long value + + + + + Helper method to gets blob data + + + + + Interprets a blob as an array of structs + + + + + Gets the type of data in this PropVariant + + + + + Property value + + + + + allows freeing up memory, might turn this into a Dispose method? + + + + + Clears with a known pointer + + + + + MM Device + + + + + Audio Client + + + + + Audio Meter Information + + + + + Audio Endpoint Volume + + + + + AudioSessionManager instance + + + + + Properties + + + + + Friendly name for the endpoint + + + + + Friendly name of device + + + + + Icon path of device + + + + + Device ID + + + + + Data Flow + + + + + Device State + + + + + To string + + + + + Dispose + + + + + Finalizer + + + + + Multimedia Device Collection + + + + + Device count + + + + + Get device by index + + Device index + Device at the specified index + + + + Get Enumerator + + Device enumerator + + + + MM Device Enumerator + + + + + Creates a new MM Device Enumerator + + + + + Enumerate Audio Endpoints + + Desired DataFlow + State Mask + Device Collection + + + + Get Default Endpoint + + Data Flow + Role + Device + + + + Check to see if a default audio end point exists without needing an exception. + + Data Flow + Role + True if one exists, and false if one does not exist. + + + + Get device by ID + + Device ID + Device + + + + Registers a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + Unregisters a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + + + + Called to dispose/finalize contained objects. + + True if disposing, false if called from a finalizer. + + + + PROPERTYKEY is defined in wtypes.h + + + + + Format ID + + + + + Property ID + + + + + + + + + + + Property Keys + + + + + PKEY_DeviceInterface_FriendlyName + + + + + PKEY_AudioEndpoint_FormFactor + + + + + PKEY_AudioEndpoint_ControlPanelPageProvider + + + + + PKEY_AudioEndpoint_Association + + + + + PKEY_AudioEndpoint_PhysicalSpeakers + + + + + PKEY_AudioEndpoint_GUID + + + + + PKEY_AudioEndpoint_Disable_SysFx + + + + + PKEY_AudioEndpoint_FullRangeSpeakers + + + + + PKEY_AudioEndpoint_Supports_EventDriven_Mode + + + + + PKEY_AudioEndpoint_JackSubType + + + + + PKEY_AudioEngine_DeviceFormat + + + + + PKEY_AudioEngine_OEMFormat + + + + + PKEY _Devie_FriendlyName + + + + + PKEY _Device_IconPath + + + + + Property Store class, only supports reading properties at the moment. + + + + + Property Count + + + + + Gets property by index + + Property index + The property + + + + Contains property guid + + Looks for a specific key + True if found + + + + Indexer by guid + + Property Key + Property or null if not found + + + + Gets property key at sepecified index + + Index + Property key + + + + Gets property value at specified index + + Index + Property value + + + + Creates a new property store + + IPropertyStore COM interface + + + + Property Store Property + + + + + Property Key + + + + + Property Value + + + + + The ERole enumeration defines constants that indicate the role + that the system has assigned to an audio endpoint device + + + + + Games, system notification sounds, and voice commands. + + + + + Music, movies, narration, and live music recording + + + + + Voice communications (talking to another person). + + + + + Collection of sessions. + + + + + Returns session at index. + + + + + + + Number of current sessions. + + + + + Windows CoreAudio SimpleAudioVolume + + + + + Creates a new Audio endpoint volume + + ISimpleAudioVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Allows the user to adjust the volume from + 0.0 to 1.0 + + + + + Mute + + + + + Windows Media Resampler Props + wmcodecdsp.h + + + + + Range is 1 to 60 + + + + + Specifies the channel matrix. + + + + + BiQuad filter + + + + + Passes a single sample through the filter + + Input sample + Output sample + + + + Set this up as a low pass filter + + Sample Rate + Cut-off Frequency + Bandwidth + + + + Set this up as a peaking EQ + + Sample Rate + Centre Frequency + Bandwidth (Q) + Gain in decibels + + + + Set this as a high pass filter + + + + + Create a low pass filter + + + + + Create a High pass filter + + + + + Create a bandpass filter with constant skirt gain + + + + + Create a bandpass filter with constant peak gain + + + + + Creates a notch filter + + + + + Creaes an all pass filter + + + + + Create a Peaking EQ + + + + + H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) + + + + a "shelf slope" parameter (for shelving EQ only). + When S = 1, the shelf slope is as steep as it can be and remain monotonically + increasing or decreasing gain with frequency. The shelf slope, in dB/octave, + remains proportional to S for all other values for a fixed f0/Fs and dBgain. + Gain in decibels + + + + H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) + + + + + + + + + + Type to represent complex number + + + + + Real Part + + + + + Imaginary Part + + + + + Envelope generator (ADSR) + + + + + Envelope State + + + + + Idle + + + + + Attack + + + + + Decay + + + + + Sustain + + + + + Release + + + + + Creates and Initializes an Envelope Generator + + + + + Attack Rate (seconds * SamplesPerSecond) + + + + + Decay Rate (seconds * SamplesPerSecond) + + + + + Release Rate (seconds * SamplesPerSecond) + + + + + Sustain Level (1 = 100%) + + + + + Sets the attack curve + + + + + Sets the decay release curve + + + + + Read the next volume multiplier from the envelope generator + + A volume multiplier + + + + Trigger the gate + + If true, enter attack phase, if false enter release phase (unless already idle) + + + + Current envelope state + + + + + Reset to idle state + + + + + Get the current output level + + + + + Summary description for FastFourierTransform. + + + + + This computes an in-place complex-to-complex FFT + x and y are the real and imaginary arrays of 2^m points. + + + + + Applies a Hamming Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hamming window + + + + Applies a Hann Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hann window + + + + Applies a Blackman-Harris Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Blackmann-Harris window + + + + Summary description for ImpulseResponseConvolution. + + + + + A very simple mono convolution algorithm + + + This will be very slow + + + + + This is actually a downwards normalize for data that will clip + + + + + Fully managed resampler, based on Cockos WDL Resampler + + + + + Creates a new Resampler + + + + + sets the mode + if sinc set, it overrides interp or filtercnt + + + + + Sets the filter parameters + used for filtercnt>0 but not sinc + + + + + Set feed mode + + if true, that means the first parameter to ResamplePrepare will specify however much input you have, not how much you want + + + + Reset + + + + + Prepare + note that it is safe to call ResamplePrepare without calling ResampleOut (the next call of ResamplePrepare will function as normal) + nb inbuffer was WDL_ResampleSample **, returning a place to put the in buffer, so we return a buffer and offset + + req_samples is output samples desired if !wantInputDriven, or if wantInputDriven is input samples that we have + + + + returns number of samples desired (put these into *inbuffer) + + + + Channel Mode + + + + + Stereo + + + + + Joint Stereo + + + + + Dual Channel + + + + + Mono + + + + + An ID3v2 Tag + + + + + Reads an ID3v2 tag from a stream + + + + + Creates a new ID3v2 tag from a collection of key-value pairs. + + A collection of key-value pairs containing the tags to include in the ID3v2 tag. + A new ID3v2 tag + + + + Convert the frame size to a byte array. + + The frame body size. + + + + + Creates an ID3v2 frame for the given key-value pair. + + + + + + + + Gets the Id3v2 Header size. The size is encoded so that only 7 bits per byte are actually used. + + + + + + + Creates the Id3v2 tag header and returns is as a byte array. + + The Id3v2 frames that will be included in the file. This is used to calculate the ID3v2 tag size. + + + + + Creates the Id3v2 tag for the given key-value pairs and returns it in the a stream. + + + + + + + Raw data from this tag + + + + + Interface for MP3 frame by frame decoder + + + + + Decompress a single MP3 frame + + Frame to decompress + Output buffer + Offset within output buffer + Bytes written to output buffer + + + + Tell the decoder that we have repositioned + + + + + PCM format that we are converting into + + + + + Represents an MP3 Frame + + + + + Reads an MP3 frame from a stream + + input stream + A valid MP3 frame, or null if none found + + + Reads an MP3Frame from a stream + http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm has some good info + also see http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx + + A valid MP3 frame, or null if none found + + + + Constructs an MP3 frame + + + + + checks if the four bytes represent a valid header, + if they are, will parse the values into Mp3Frame + + + + + Sample rate of this frame + + + + + Frame length in bytes + + + + + Bit Rate + + + + + Raw frame data (includes header bytes) + + + + + MPEG Version + + + + + MPEG Layer + + + + + Channel Mode + + + + + The number of samples in this frame + + + + + The channel extension bits + + + + + The bitrate index (directly from the header) + + + + + Whether the Copyright bit is set + + + + + Whether a CRC is present + + + + + Not part of the MP3 frame itself - indicates where in the stream we found this header + + + + + MPEG Layer flags + + + + + Reserved + + + + + Layer 3 + + + + + Layer 2 + + + + + Layer 1 + + + + + MPEG Version Flags + + + + + Version 2.5 + + + + + Reserved + + + + + Version 2 + + + + + Version 1 + + + + + Represents a Xing VBR header + + + + + Load Xing Header + + Frame + Xing Header + + + + Sees if a frame contains a Xing header + + + + + Number of frames + + + + + Number of bytes + + + + + VBR Scale property + + + + + The MP3 frame + + + + + Event Args for WaveInStream event + + + + + Creates new WaveInEventArgs + + + + + Buffer containing recorded data. Note that it might not be completely + full. + + + + + The number of recorded bytes in Buffer. + + + + + Sample provider interface to make WaveChannel32 extensible + Still a bit ugly, hence internal at the moment - and might even make these into + bit depth converting WaveProviders + + + + + Sample Provider to concatenate multiple sample providers together + + + + + Creates a new ConcatenatingSampleProvider + + The source providers to play one after the other. Must all share the same sample rate and channel count + + + + The WaveFormat of this Sample Provider + + + + + Read Samples from this sample provider + + + + + Sample Provider to allow fading in and out + + + + + Creates a new FadeInOutSampleProvider + + The source stream with the audio to be faded in or out + If true, we start faded out + + + + Requests that a fade-in begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Requests that a fade-out begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Reads samples from this sample provider + + Buffer to read into + Offset within buffer to write to + Number of samples desired + Number of samples read + + + + WaveFormat of this SampleProvider + + + + + Simple SampleProvider that passes through audio unchanged and raises + an event every n samples with the maximum sample value from the period + for metering purposes + + + + + Number of Samples per notification + + + + + Raised periodically to inform the user of the max volume + + + + + Initialises a new instance of MeteringSampleProvider that raises 10 stream volume + events per second + + Source sample provider + + + + Initialises a new instance of MeteringSampleProvider + + source sampler provider + Number of samples between notifications + + + + The WaveFormat of this sample provider + + + + + Reads samples from this Sample Provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Event args for aggregated stream volume + + + + + Max sample values array (one for each channel) + + + + + A sample provider mixer, allowing inputs to be added and removed + + + + + Creates a new MixingSampleProvider, with no inputs, but a specified WaveFormat + + The WaveFormat of this mixer. All inputs must be in this format + + + + Creates a new MixingSampleProvider, based on the given inputs + + Mixer inputs - must all have the same waveformat, and must + all be of the same WaveFormat. There must be at least one input + + + + Returns the mixer inputs (read-only - use AddMixerInput to add an input + + + + + When set to true, the Read method always returns the number + of samples requested, even if there are no inputs, or if the + current inputs reach their end. Setting this to true effectively + makes this a never-ending sample provider, so take care if you plan + to write it out to a file. + + + + + Adds a WaveProvider as a Mixer input. + Must be PCM or IEEE float already + + IWaveProvider mixer input + + + + Adds a new mixer input + + Mixer input + + + + Raised when a mixer input has been removed because it has ended + + + + + Removes a mixer input + + Mixer input to remove + + + + Removes all mixer inputs + + + + + The output WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + SampleProvider event args + + + + + Constructs a new SampleProviderEventArgs + + + + + The Sample Provider + + + + + No nonsense mono to stereo provider, no volume adjustment, + just copies input to left and right. + + + + + Initializes a new instance of MonoToStereoSampleProvider + + Source sample provider + + + + WaveFormat of this provider + + + + + Reads samples from this provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Multiplier for left channel (default is 1.0) + + + + + Multiplier for right channel (default is 1.0) + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing sample provider, allowing re-patching of input channels to different + output channels + + Input sample providers. Must all be of the same sample rate, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads samples from this sample provider + + Buffer to be filled with sample data + Offset into buffer to start writing to, usually 0 + Number of samples required + Number of samples read + + + + The output WaveFormat for this SampleProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Simple class that raises an event on every sample + + + + + Initializes a new instance of NotifyingSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Sample notifier + + + + + Allows you to: + 1. insert a pre-delay of silence before the source begins + 2. skip over a certain amount of the beginning of the source + 3. only play a set amount from the source + 4. insert silence at the end after the source is complete + + + + + Number of samples of silence to insert before playing source + + + + + Amount of silence to insert before playing + + + + + Number of samples in source to discard + + + + + Amount of audio to skip over from the source before beginning playback + + + + + Number of samples to read from source (if 0, then read it all) + + + + + Amount of audio to take from the source (TimeSpan.Zero means play to end) + + + + + Number of samples of silence to insert after playing source + + + + + Amount of silence to insert after playing source + + + + + Creates a new instance of offsetSampleProvider + + The Source Sample Provider to read from + + + + The WaveFormat of this SampleProvider + + + + + Reads from this sample provider + + Sample buffer + Offset within sample buffer to read to + Number of samples required + Number of samples read + + + + Converts a mono sample provider to stereo, with a customisable pan strategy + + + + + Initialises a new instance of the PanningSampleProvider + + Source sample provider, must be mono + + + + Pan value, must be between -1 (left) and 1 (right) + + + + + The pan strategy currently in use + + + + + The WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Pair of floating point values, representing samples or multipliers + + + + + Left value + + + + + Right value + + + + + Required Interface for a Panning Strategy + + + + + Gets the left and right multipliers for a given pan value + + Pan value from -1 to 1 + Left and right multipliers in a stereo sample pair + + + + Simplistic "balance" control - treating the mono input as if it was stereo + In the centre, both channels full volume. Opposite channel decays linearly + as balance is turned to to one side + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Square Root Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Sinus Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Linear Pan + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Converts an IWaveProvider containing 16 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm16BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Samples required + Number of samples read + + + + Converts an IWaveProvider containing 24 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm24BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 32 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm32BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 8 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm8BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples to read + Number of samples read + + + + Utility class that takes an IWaveProvider input at any bit depth + and exposes it as an ISampleProvider. Can turn mono inputs into stereo, + and allows adjusting of volume + (The eventual successor to WaveChannel32) + This class also serves as an example of how you can link together several simple + Sample Providers to form a more useful class. + + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + force mono inputs to become stereo + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + The WaveFormat of this Sample Provider + + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Raised periodically to inform the user of the max volume + (before the volume meter) + + + + + Helper base class for classes converting to ISampleProvider + + + + + Source Wave Provider + + + + + Source buffer (to avoid constantly creating small buffers during playback) + + + + + Initialises a new instance of SampleProviderConverterBase + + Source Wave provider + + + + Wave format of this wave provider + + + + + Reads samples from the source wave provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Ensure the source buffer exists and is big enough + + Bytes required + + + + Utility class for converting to SampleProvider + + + + + Helper function to go from IWaveProvider to a SampleProvider + Must already be PCM or IEEE float + + The WaveProvider to convert + A sample provider + + + + Helper class for when you need to convert back to an IWaveProvider from + an ISampleProvider. Keeps it as IEEE float + + + + + Initializes a new instance of the WaveProviderFloatToWaveProvider class + + Source wave provider + + + + Reads from this provider + + + + + The waveformat of this WaveProvider (same as the source) + + + + + Converts a sample provider to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts a sample provider to 24 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream, clipping if necessary + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + The Format of this IWaveProvider + + + + + + Volume of this channel. 1.0 = full scale, 0.0 to mute + + + + + Signal Generator + Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep. + + + Posibility to change ISampleProvider + Example : + --------- + WaveOut _waveOutGene = new WaveOut(); + WaveGenerator wg = new SignalGenerator(); + wg.Type = ... + wg.Frequency = ... + wg ... + _waveOutGene.Init(wg); + _waveOutGene.Play(); + + + + + Initializes a new instance for the Generator (Default :: 44.1Khz, 2 channels, Sinus, Frequency = 440, Gain = 1) + + + + + Initializes a new instance for the Generator (UserDef SampleRate & Channels) + + Desired sample rate + Number of channels + + + + The waveformat of this WaveProvider (same as the source) + + + + + Frequency for the Generator. (20.0 - 20000.0 Hz) + Sin, Square, Triangle, SawTooth, Sweep (Start Frequency). + + + + + Return Log of Frequency Start (Read only) + + + + + End Frequency for the Sweep Generator. (Start Frequency in Frequency) + + + + + Return Log of Frequency End (Read only) + + + + + Gain for the Generator. (0.0 to 1.0) + + + + + Channel PhaseReverse + + + + + Type of Generator. + + + + + Length Seconds for the Sweep Generator. + + + + + Reads from this provider. + + + + + Private :: Random for WhiteNoise & Pink Noise (Value form -1 to 1) + + Random value from -1 to +1 + + + + Signal Generator type + + + + + Pink noise + + + + + White noise + + + + + Sweep + + + + + Sine wave + + + + + Square wave + + + + + Triangle Wave + + + + + Sawtooth wave + + + + + Takes a stereo input and turns it to mono + + + + + Creates a new mono ISampleProvider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this SampleProvider + + + + + Very simple sample provider supporting adjustable gain + + + + + Initializes a new instance of VolumeSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Helper class turning an already 32 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Helper class turning an already 64 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Fully managed resampling sample provider, based on the WDL Resampler + + + + + Constructs a new resampler + + Source to resample + Desired output sample rate + + + + Reads from this sample provider + + + + + Output WaveFormat + + + + + Useful extension methods to make switching between WaveAndSampleProvider easier + + + + + Converts a WaveProvider into a SampleProvider (only works for PCM) + + WaveProvider to convert + + + + + Allows sending a SampleProvider directly to an IWavePlayer without needing to convert + back to an IWaveProvider + + The WavePlayer + + + + + + Turns WaveFormatExtensible into a standard waveformat if possible + + Input wave format + A standard PCM or IEEE waveformat, or the original waveformat + + + + Converts a ISampleProvider to a IWaveProvider but still 32 bit float + + SampleProvider to convert + An IWaveProvider + + + + Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit + + SampleProvider to convert + A 16 bit IWaveProvider + + + + Concatenates one Sample Provider on the end of another + + The sample provider to play first + The sample provider to play next + A single sampleprovider to play one after the other + + + + Concatenates one Sample Provider on the end of another with silence inserted + + The sample provider to play first + Silence duration to insert between the two + The sample provider to play next + A single sample provider + + + + Skips over a specified amount of time (by consuming source stream) + + Source sample provider + Duration to skip over + A sample provider that skips over the specified amount of time + + + + Takes a specified amount of time from the source stream + + Source sample provider + Duration to take + A sample provider that reads up to the specified amount of time + + + + Converts a Stereo Sample Provider to mono, allowing mixing of channel volume + + Stereo Source Provider + Amount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + Amount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + A mono SampleProvider + + + + Converts a Mono ISampleProvider to stereo + + Mono Source Provider + Amount to mix to left channel (1.0 is full volume) + Amount to mix to right channel (1.0 is full volume) + + + + + Microsoft ADPCM + See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm + + + + + Empty constructor needed for marshalling from a pointer + + + + + Samples per block + + + + + Number of coefficients + + + + + Coefficients + + + + + Microsoft ADPCM + + Sample Rate + Channels + + + + Serializes this wave format + + Binary writer + + + + String Description of this WaveFormat + + + + + GSM 610 + + + + + Creates a GSM 610 WaveFormat + For now hardcoded to 13kbps + + + + + Samples per block + + + + + Writes this structure to a BinaryWriter + + + + + IMA/DVI ADPCM Wave Format + Work in progress + + + + + parameterless constructor for Marshalling + + + + + Creates a new IMA / DVI ADPCM Wave Format + + Sample Rate + Number of channels + Bits Per Sample + + + + MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h + + + + + Wave format ID (wID) + + + + + Padding flags (fdwFlags) + + + + + Block Size (nBlockSize) + + + + + Frames per block (nFramesPerBlock) + + + + + Codec Delay (nCodecDelay) + + + + + Creates a new MP3 WaveFormat + + + + + Wave Format Padding Flags + + + + + MPEGLAYER3_FLAG_PADDING_ISO + + + + + MPEGLAYER3_FLAG_PADDING_ON + + + + + MPEGLAYER3_FLAG_PADDING_OFF + + + + + Wave Format ID + + + + MPEGLAYER3_ID_UNKNOWN + + + MPEGLAYER3_ID_MPEG + + + MPEGLAYER3_ID_CONSTANTFRAMESIZE + + + + DSP Group TrueSpeech + + + + + DSP Group TrueSpeech WaveFormat + + + + + Writes this structure to a BinaryWriter + + + + + Represents a Wave file format + + + + format type + + + number of channels + + + sample rate + + + for buffer estimation + + + block size of data + + + number of bits per sample of mono data + + + number of following bytes + + + + Creates a new PCM 44.1Khz stereo 16 bit format + + + + + Creates a new 16 bit wave format with the specified sample + rate and channel count + + Sample Rate + Number of channels + + + + Gets the size of a wave buffer equivalent to the latency in milliseconds. + + The milliseconds. + + + + + Creates a WaveFormat with custom members + + The encoding + Sample Rate + Number of channels + Average Bytes Per Second + Block Align + Bits Per Sample + + + + + Creates an A-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a Mu-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a new PCM format with the specified sample rate, bit depth and channels + + + + + Creates a new 32 bit IEEE floating point wave format + + sample rate + number of channels + + + + Helper function to retrieve a WaveFormat structure from a pointer + + WaveFormat structure + + + + + Helper function to marshal WaveFormat to an IntPtr + + WaveFormat + IntPtr to WaveFormat structure (needs to be freed by callee) + + + + Reads in a WaveFormat (with extra data) from a fmt chunk (chunk identifier and + length should already have been read) + + Binary reader + Format chunk length + A WaveFormatExtraData + + + + Reads a new WaveFormat object from a stream + + A binary reader that wraps the stream + + + + Reports this WaveFormat as a string + + String describing the wave format + + + + Compares with another WaveFormat object + + Object to compare to + True if the objects are the same + + + + Provides a Hashcode for this WaveFormat + + A hashcode + + + + Returns the encoding type used + + + + + Writes this WaveFormat object to a stream + + the output stream + + + + Returns the number of channels (1=mono,2=stereo etc) + + + + + Returns the sample rate (samples per second) + + + + + Returns the average number of bytes used per second + + + + + Returns the block alignment + + + + + Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8) + Can be 0 for some codecs + + + + + Returns the number of extra bytes used by this waveformat. Often 0, + except for compressed formats which store extra data after the WAVEFORMATEX header + + + + + Summary description for WaveFormatEncoding. + + + + WAVE_FORMAT_UNKNOWN, Microsoft Corporation + + + WAVE_FORMAT_PCM Microsoft Corporation + + + WAVE_FORMAT_ADPCM Microsoft Corporation + + + WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation + + + WAVE_FORMAT_VSELP Compaq Computer Corp. + + + WAVE_FORMAT_IBM_CVSD IBM Corporation + + + WAVE_FORMAT_ALAW Microsoft Corporation + + + WAVE_FORMAT_MULAW Microsoft Corporation + + + WAVE_FORMAT_DTS Microsoft Corporation + + + WAVE_FORMAT_DRM Microsoft Corporation + + + WAVE_FORMAT_WMAVOICE9 + + + WAVE_FORMAT_OKI_ADPCM OKI + + + WAVE_FORMAT_DVI_ADPCM Intel Corporation + + + WAVE_FORMAT_IMA_ADPCM Intel Corporation + + + WAVE_FORMAT_MEDIASPACE_ADPCM Videologic + + + WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp + + + WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation + + + WAVE_FORMAT_DIGISTD DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. + + + WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation + + + WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. + + + WAVE_FORMAT_CU_CODEC Hewlett-Packard Company + + + WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America + + + WAVE_FORMAT_SONARC Speech Compression + + + WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc + + + WAVE_FORMAT_ECHOSC1 Echo Speech Corporation + + + WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. + + + WAVE_FORMAT_APTX Audio Processing Technology + + + WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. + + + WAVE_FORMAT_PROSODY_1612, Aculab plc + + + WAVE_FORMAT_LRC, Merging Technologies S.A. + + + WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories + + + WAVE_FORMAT_GSM610, Microsoft Corporation + + + WAVE_FORMAT_MSNAUDIO, Microsoft Corporation + + + WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation + + + WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited + + + WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. + + + WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_MPEG, Microsoft Corporation + + + + + + + + + WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_GSM + + + WAVE_FORMAT_G729 + + + WAVE_FORMAT_G723 + + + WAVE_FORMAT_ACELP + + + + WAVE_FORMAT_RAW_AAC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation + + + + + Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation + + + + + Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS + + + + + Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + + Source wmCodec.h + + + + MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral SBR or PS tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + NOKIA_MPEG_ADTS_AAC + Source wmCodec.h + + + NOKIA_MPEG_RAW_AAC + Source wmCodec.h + + + VODAFONE_MPEG_ADTS_AAC + Source wmCodec.h + + + VODAFONE_MPEG_RAW_AAC + Source wmCodec.h + + + + High-Efficiency Advanced Audio Coding (HE-AAC) stream. + The format block is an HEAACWAVEFORMAT structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + WAVE_FORMAT_DVM + + + WAVE_FORMAT_VORBIS1 "Og" Original stream compatible + + + WAVE_FORMAT_VORBIS2 "Pg" Have independent header + + + WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header + + + WAVE_FORMAT_VORBIS1P "og" Original stream compatible + + + WAVE_FORMAT_VORBIS2P "pg" Have independent headere + + + WAVE_FORMAT_VORBIS3P "qg" Have no codebook header + + + WAVE_FORMAT_EXTENSIBLE + + + + + + + WaveFormatExtensible + http://www.microsoft.com/whdc/device/audio/multichaud.mspx + + + + + Parameterless constructor for marshalling + + + + + Creates a new WaveFormatExtensible for PCM or IEEE + + + + + WaveFormatExtensible for PCM or floating point can be awkward to work with + This creates a regular WaveFormat structure representing the same audio format + Returns the WaveFormat unchanged for non PCM or IEEE float + + + + + + SubFormat (may be one of AudioMediaSubtypes) + + + + + Serialize + + + + + + String representation + + + + + This class used for marshalling from unmanaged code + + + + + Allows the extra data to be read + + + + + parameterless constructor for marshalling + + + + + Reads this structure from a BinaryReader + + + + + Writes this structure to a BinaryWriter + + + + + The WMA wave format. + May not be much use because WMA codec is a DirectShow DMO not an ACM + + + + + Generic interface for wave recording + + + + + Recording WaveFormat + + + + + Start Recording + + + + + Stop Recording + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + IWaveBuffer interface use to store wave datas. + Data can be manipulated with arrays (,, + , ) that are pointing to the same memory buffer. + This is a requirement for all subclasses. + + Use the associated Count property based on the type of buffer to get the number of data in the + buffer. + + for the standard implementation using C# unions. + + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets the byte buffer count. + + The byte buffer count. + + + + Gets the float buffer count. + + The float buffer count. + + + + Gets the short buffer count. + + The short buffer count. + + + + Gets the int buffer count. + + The int buffer count. + + + + Generic interface for all WaveProviders. + + + + + Gets the WaveFormat of this WaveProvider. + + The wave format. + + + + Fill the specified buffer with wave data. + + The buffer to fill of wave data. + Offset into buffer + The number of bytes to read + the number of bytes written to the buffer. + + + + Like IWaveProvider, but makes it much simpler to put together a 32 bit floating + point mixing engine + + + + + Gets the WaveFormat of this Sample Provider. + + The wave format. + + + + Fill the specified buffer with 32 bit floating point samples + + The buffer to fill with samples. + Offset into buffer + The number of samples to read + the number of samples written to the buffer. + + + + Playback State + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + Stopped Event Args + + + + + Initializes a new instance of StoppedEventArgs + + An exception to report (null if no exception) + + + + An exception. Will be null if the playback or record operation stopped + + + + + WaveBuffer class use to store wave datas. Data can be manipulated with arrays + (,,, ) that are pointing to the + same memory buffer. Use the associated Count property based on the type of buffer to get the number of + data in the buffer. + Implicit casting is now supported to float[], byte[], int[], short[]. + You must not use Length on returned arrays. + + n.b. FieldOffset is 8 now to allow it to work natively on 64 bit + + + + + Number of Bytes + + + + + Initializes a new instance of the class. + + The number of bytes. The size of the final buffer will be aligned on 4 Bytes (upper bound) + + + + Initializes a new instance of the class binded to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Binds this WaveBuffer instance to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets or sets the byte buffer count. + + The byte buffer count. + + + + Gets or sets the float buffer count. + + The float buffer count. + + + + Gets or sets the short buffer count. + + The short buffer count. + + + + Gets or sets the int buffer count. + + The int buffer count. + + + + Clears the associated buffer. + + + + + Copy this WaveBuffer to a destination buffer up to ByteBufferCount bytes. + + + + + Checks the validity of the count parameters. + + Name of the arg. + The value. + The size of value. + + + + Provides a buffered store of samples + Read method will return queued samples or fill buffer with zeroes + Now backed by a circular buffer + + + + + Creates a new buffered WaveProvider + + WaveFormat + + + + If true, always read the amount of data requested, padding with zeroes if necessary + By default is set to true + + + + + Buffer length in bytes + + + + + Buffer duration + + + + + If true, when the buffer is full, start throwing away data + if false, AddSamples will throw an exception when buffer is full + + + + + The number of buffered bytes + + + + + Buffered Duration + + + + + Gets the WaveFormat + + + + + Adds samples. Takes a copy of buffer, so that buffer can be reused if necessary + + + + + Reads from this WaveProvider + Will always return count bytes, since we will zero-fill the buffer if not enough available + + + + + Discards all audio from the buffer + + + + + Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels + + + + + Creates a new stereo waveprovider based on a mono input + + Mono 16 bit PCM input + + + + 1.0 to copy the mono stream to the left channel without adjusting volume + + + + + 1.0 to copy the mono stream to the right channel without adjusting volume + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing wave provider, allowing re-patching of input channels to different + output channels + + Input wave providers. Must all be of the same format, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads data from this WaveProvider + + Buffer to be filled with sample data + Offset to write to within buffer, usually 0 + Number of bytes required + Number of bytes read + + + + The WaveFormat of this WaveProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together + + + + + Creates a new mono waveprovider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float + + + + + Constructs a new VolumeWaveProvider16 + + Source provider, must be 16 bit PCM + + + + Gets or sets volume. + 1.0 is full scale, 0.0 is silence, anything over 1.0 will amplify but potentially clip + + + + + WaveFormat of this WaveProvider + + + + + Read bytes from this WaveProvider + + Buffer to read into + Offset within buffer to read to + Bytes desired + Bytes read + + + + Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way + + + + + Creates a new Wave16toFloatProvider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Creates a new WaveFloatTo16Provider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Buffered WaveProvider taking source data from WaveIn + + + + + Creates a new WaveInProvider + n.b. Should make sure the WaveFormat is set correctly on IWaveIn before calling + + The source of wave data + + + + Reads data from the WaveInProvider + + + + + The WaveFormat + + + + + Base class for creating a 16 bit wave provider + + + + + Initializes a new instance of the WaveProvider16 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider16 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a short array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Base class for creating a 32 bit floating point wave provider + Can also be used as a base class for an ISampleProvider that can + be plugged straight into anything requiring an IWaveProvider + + + + + Initializes a new instance of the WaveProvider32 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider32 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a float array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Helper stream that lets us read from compressed audio files with large block alignment + as though we could read any amount and reposition anywhere + + + + + Creates a new BlockAlignReductionStream + + the input stream + + + + Block alignment of this stream + + + + + Wave Format + + + + + Length of this Stream + + + + + Current position within stream + + + + + Disposes this WaveStream + + + + + Reads data from this stream + + + + + + + + + An interface for WaveStreams which can report notification of individual samples + + + + + A sample has been detected + + + + + Sample event arguments + + + + + Left sample + + + + + Right sample + + + + + Constructor + + + + + Class for reading any file that Media Foundation can play + Will only work in Windows Vista and above + Automatically converts to PCM + If it is a video file with multiple audio streams, it will pick out the first audio stream + + + + + Allows customisation of this reader class + + + + + Sets up the default settings for MediaFoundationReader + + + + + Allows us to request IEEE float output (n.b. no guarantee this will be accepted) + + + + + If true, the reader object created in the constructor is used in Read + Should only be set to true if you are working entirely on an STA thread, or + entirely with MTA threads. + + + + + If true, the reposition does not happen immediately, but waits until the + next call to read to be processed. + + + + + Default constructor + + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename (can also be a URL e.g. http:// mms:// file://) + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename + Advanced settings + + + + Initializes + + + + + Creates the reader (overridable by ) + + + + + Reads from this wave stream + + Buffer to read into + Offset in buffer + Bytes required + Number of bytes read; 0 indicates end of stream + + + + WaveFormat of this stream (n.b. this is after converting to PCM) + + + + + The bytesRequired of this stream in bytes (n.b may not be accurate) + + + + + Current position within this stream + + + + + Cleans up after finishing with this reader + + true if called from Dispose + + + + WaveFormat has changed + + + + + WaveStream that simply passes on data from its source stream + (e.g. a MemoryStream) + + + + + Initialises a new instance of RawSourceWaveStream + + The source stream containing raw audio + The waveformat of the audio in the source stream + + + + Initialises a new instance of RawSourceWaveStream + + The buffer containing raw audio + Offset in the source buffer to read from + Number of bytes to read in the buffer + The waveformat of the audio in the source stream + + + + The WaveFormat of this stream + + + + + The length in bytes of this stream (if supported) + + + + + The current position in this stream + + + + + Reads data from the stream + + + + + A simple compressor + + + + + Create a new simple compressor stream + + Source stream + + + + Make-up Gain + + + + + Threshold + + + + + Ratio + + + + + Attack time + + + + + Release time + + + + + Determine whether the stream has the required amount of data. + + Number of bytes of data required from the stream. + Flag indicating whether the required amount of data is avialable. + + + + Turns gain on or off + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Gets the WaveFormat of this stream + + + + + Reads bytes from this stream + + Buffer to read into + Offset in array to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Gets the block alignment for this stream + + + + + Represents Channel for the WaveMixerStream + 32 bit output and 16 bit input + It's output is always stereo + The input stream can be panned + + + + + Creates a new WaveChannel32 + + the source stream + stream volume (1 is 0dB) + pan control (-1 to 1) + + + + Creates a WaveChannel32 with default settings + + The source stream + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + If true, Read always returns the number of bytes requested + + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Pan of this channel (from -1 to 1) + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Sample + + + + + Raise the sample event (no check for null because it has already been done) + + + + + Simply shifts the input stream in time, optionally + clipping its start and end. + (n.b. may include looping in the future) + + + + + Creates a new WaveOffsetStream + + the source stream + the time at which we should start reading from the source stream + amount to trim off the front of the source stream + length of time to play from source stream + + + + Creates a WaveOffsetStream with default settings (no offset or pre-delay, + and whole length of source stream) + + The source stream + + + + The length of time before which no audio will be played + + + + + An offset into the source stream from which to start playing + + + + + Length of time to read from the source stream + + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Base class for all WaveStream classes. Derives from stream. + + + + + Retrieves the WaveFormat for this stream + + + + + We can read from this stream + + + + + We can seek within this stream + + + + + We can't write to this stream + + + + + Flush does not need to do anything + See + + + + + An alternative way of repositioning. + See + + + + + Sets the length of the WaveStream. Not Supported. + + + + + + Writes to the WaveStream. Not Supported. + + + + + The block alignment for this wavestream. Do not modify the Position + to anything that is not a whole multiple of this value + + + + + Moves forward or backwards the specified number of seconds in the stream + + Number of seconds to move, can be negative + + + + The current position in the stream in Time format + + + + + Total length in real-time of the stream (may be an estimate for compressed files) + + + + + Whether the WaveStream has non-zero sample data at the current position for the + specified count + + Number of bytes to read + + + + Audio Capture using Wasapi + See http://msdn.microsoft.com/en-us/library/dd370800%28VS.85%29.aspx + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Recording wave format + + + + + Way of enumerating all the audio capture devices available on the system + + + + + + Gets the default audio capture device + + The default audio capture device + + + + Initializes the capture device. Must be called on the UI (STA) thread. + If not called manually then StartRecording() will call it internally. + + + + + To allow overrides to specify different flags (e.g. loopback) + + + + + Start Recording + + + + + Stop Recording + + + + + Dispose + + + + + Represents the interface to a device that can play audio + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Obsolete init method + + + + + + + Initialise playback + + Function to create the waveprovider to be played + Called on the playback thread + + + + Current playback state + + + + + Indicates that playback has gone into a stopped state due to + reaching the end of the input stream or an error has been encountered during playback + + + + + This class writes WAV data to a .wav file on disk + + + + + Creates a 16 bit Wave File from an ISampleProvider + BEWARE: the source provider must not return data indefinitely + + The filename to write to + The source sample provider + + + + Creates a Wave file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + WaveFileWriterRT that actually writes to a stream + + Stream to be written to + Wave format to use + + + + The wave file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this wave file + + + + + Returns false: Cannot read from a WaveFileWriterRT + + + + + Returns true: Can write to a WaveFileWriterRT + + + + + Returns false: Cannot seek within a WaveFileWriterRT + + + + + Returns false: Cannot timeout within a WaveFileWriterRT + + + + + CopyToAsync is not supported for a WaveFileWriterRT + + + + + Read is not supported for a WaveFileWriterRT + + + + + ReadAsync is not supported for a WaveFileWriterRT + + + + + ReadByte is not supported for a WaveFileWriterRT + + + + + Seek is not supported for a WaveFileWriterRT + + + + + SetLength is not supported for WaveFileWriterRT + + + + + + Gets the Position in the WaveFile (i.e. number of bytes written so far) + + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + Cancellation token + + + + WriteByte is not supported for a WaveFileWriterRT + Use instead + + value to write + + + + Writes a single sample to the Wave file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Wave file + They will be converted to the appropriate bit depth depending on the WaveFormat of the WAV file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + + + + + Ensures data is written to disk + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this WaveFileWriterRT + + + + + Soundfont generator + + + + + Gets the generator type + + + + + Generator amount as an unsigned short + + + + + Generator amount as a signed short + + + + + Low byte amount + + + + + High byte amount + + + + + Instrument + + + + + Sample Header + + + + + + + + + + Generator types + + + + Start address offset + + + End address offset + + + Start loop address offset + + + End loop address offset + + + Start address coarse offset + + + Modulation LFO to pitch + + + Vibrato LFO to pitch + + + Modulation envelope to pitch + + + Initial filter cutoff frequency + + + Initial filter Q + + + Modulation LFO to filter Cutoff frequency + + + Modulation envelope to filter cutoff frequency + + + End address coarse offset + + + Modulation LFO to volume + + + Unused + + + Chorus effects send + + + Reverb effects send + + + Pan + + + Unused + + + Unused + + + Unused + + + Delay modulation LFO + + + Frequency modulation LFO + + + Delay vibrato LFO + + + Frequency vibrato LFO + + + Delay modulation envelope + + + Attack modulation envelope + + + Hold modulation envelope + + + Decay modulation envelope + + + Sustain modulation envelop + + + Release modulation envelope + + + Key number to modulation envelope hold + + + Key number to modulation envelope decay + + + Delay volume envelope + + + Attack volume envelope + + + Hold volume envelope + + + Decay volume envelope + + + Sustain volume envelope + + + Release volume envelope + + + Key number to volume envelope hold + + + Key number to volume envelope decay + + + Instrument + + + Reserved + + + Key range + + + Velocity range + + + Start loop address coarse offset + + + Key number + + + Velocity + + + Initial attenuation + + + Reserved + + + End loop address coarse offset + + + Coarse tune + + + Fine tune + + + Sample ID + + + Sample modes + + + Reserved + + + Scale tuning + + + Exclusive class + + + Overriding root key + + + Unused + + + Unused + + + + A soundfont info chunk + + + + + SoundFont Version + + + + + WaveTable sound engine + + + + + Bank name + + + + + Data ROM + + + + + Creation Date + + + + + Author + + + + + Target Product + + + + + Copyright + + + + + Comments + + + + + Tools + + + + + ROM Version + + + + + + + + + + SoundFont instrument + + + + + instrument name + + + + + Zones + + + + + + + + + + Instrument Builder + + + + + Transform Types + + + + + Linear + + + + + Modulator + + + + + Source Modulation data type + + + + + Destination generator type + + + + + Amount + + + + + Source Modulation Amount Type + + + + + Source Transform Type + + + + + + + + + + Controller Sources + + + + + No Controller + + + + + Note On Velocity + + + + + Note On Key Number + + + + + Poly Pressure + + + + + Channel Pressure + + + + + Pitch Wheel + + + + + Pitch Wheel Sensitivity + + + + + Source Types + + + + + Linear + + + + + Concave + + + + + Convex + + + + + Switch + + + + + Modulator Type + + + + + + + + + + + A SoundFont Preset + + + + + Preset name + + + + + Patch Number + + + + + Bank number + + + + + Zones + + + + + + + + + + Class to read the SoundFont file presets chunk + + + + + The Presets contained in this chunk + + + + + The instruments contained in this chunk + + + + + The sample headers contained in this chunk + + + + + + + + + + just reads a chunk ID at the current position + + chunk ID + + + + reads a chunk at the current position + + + + + creates a new riffchunk from current position checking that we're not + at the end of this chunk first + + the new chunk + + + + useful for chunks that just contain a string + + chunk as string + + + + A SoundFont Sample Header + + + + + The sample name + + + + + Start offset + + + + + End offset + + + + + Start loop point + + + + + End loop point + + + + + Sample Rate + + + + + Original pitch + + + + + Pitch correction + + + + + Sample Link + + + + + SoundFont Sample Link Type + + + + + + + + + + SoundFont sample modes + + + + + No loop + + + + + Loop Continuously + + + + + Reserved no loop + + + + + Loop and continue + + + + + Sample Link Type + + + + + Mono Sample + + + + + Right Sample + + + + + Left Sample + + + + + Linked Sample + + + + + ROM Mono Sample + + + + + ROM Right Sample + + + + + ROM Left Sample + + + + + ROM Linked Sample + + + + + SoundFont Version Structure + + + + + Major Version + + + + + Minor Version + + + + + Builds a SoundFont version + + + + + Reads a SoundFont Version structure + + + + + Writes a SoundFont Version structure + + + + + Gets the length of this structure + + + + + Represents a SoundFont + + + + + Loads a SoundFont from a stream + + stream + + + + The File Info Chunk + + + + + The Presets + + + + + The Instruments + + + + + The Sample Headers + + + + + The Sample Data + + + + + + + + + + base class for structures that can read themselves + + + + + A SoundFont zone + + + + + + + + + + Modulators for this Zone + + + + + Generators for this Zone + + + + + Audio Subtype GUIDs + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372553%28v=vs.85%29.aspx + + + + + Advanced Audio Coding (AAC). + + + + + Not used + + + + + Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). + + + + + Encrypted audio data used with secure audio path. + + + + + Digital Theater Systems (DTS) audio. + + + + + Uncompressed IEEE floating-point audio. + + + + + MPEG Audio Layer-3 (MP3). + + + + + MPEG-1 audio payload. + + + + + Windows Media Audio 9 Voice codec. + + + + + Uncompressed PCM audio. + + + + + Windows Media Audio 9 Professional codec over S/PDIF. + + + + + Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. + + + + + Dolby Digital (AC-3). + + + + + MPEG-4 and AAC Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + μ-law coding + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Adaptive delta pulse code modulation (ADPCM) + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Dolby Digital Plus formatted for HDMI output. + http://msdn.microsoft.com/en-us/library/windows/hardware/ff538392(v=vs.85).aspx + Reference : internet + + + + + MSAudio1 - unknown meaning + Reference : wmcodecdsp.h + + + + + IMA ADPCM ACM Wrapper + + + + + WMSP2 - unknown meaning + Reference: wmsdkidl.h + + + + + IMFActivate, defined in mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Creates the object associated with this activation object. + + + + + Shuts down the created object. + + + + + Detaches the created object from the activation object. + + + + + Provides a generic way to store key/value pairs on an object. + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704598%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + IMFByteStream + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms698720%28v=vs.85%29.aspx + + + + + Retrieves the characteristics of the byte stream. + virtual HRESULT STDMETHODCALLTYPE GetCapabilities(/*[out]*/ __RPC__out DWORD *pdwCapabilities) = 0; + + + + + Retrieves the length of the stream. + virtual HRESULT STDMETHODCALLTYPE GetLength(/*[out]*/ __RPC__out QWORD *pqwLength) = 0; + + + + + Sets the length of the stream. + virtual HRESULT STDMETHODCALLTYPE SetLength(/*[in]*/ QWORD qwLength) = 0; + + + + + Retrieves the current read or write position in the stream. + virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(/*[out]*/ __RPC__out QWORD *pqwPosition) = 0; + + + + + Sets the current read or write position. + virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(/*[in]*/ QWORD qwPosition) = 0; + + + + + Queries whether the current position has reached the end of the stream. + virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(/*[out]*/ __RPC__out BOOL *pfEndOfStream) = 0; + + + + + Reads data from the stream. + virtual HRESULT STDMETHODCALLTYPE Read(/*[size_is][out]*/ __RPC__out_ecount_full(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbRead) = 0; + + + + + Begins an asynchronous read operation from the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginRead(/*[out]*/ _Out_writes_bytes_(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous read operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndRead(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbRead) = 0; + + + + + Writes data to the stream. + virtual HRESULT STDMETHODCALLTYPE Write(/*[size_is][in]*/ __RPC__in_ecount_full(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbWritten) = 0; + + + + + Begins an asynchronous write operation to the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginWrite(/*[in]*/ _In_reads_bytes_(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous write operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndWrite(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbWritten) = 0; + + + + + Moves the current position in the stream by a specified offset. + virtual HRESULT STDMETHODCALLTYPE Seek(/*[in]*/ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, /*[in]*/ LONGLONG llSeekOffset, /*[in]*/ DWORD dwSeekFlags, /*[out]*/ __RPC__out QWORD *pqwCurrentPosition) = 0; + + + + + Clears any internal buffers used by the stream. + virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; + + + + + Closes the stream and releases any resources associated with the stream. + virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; + + + + + Represents a generic collection of IUnknown pointers. + + + + + Retrieves the number of objects in the collection. + + + + + Retrieves an object in the collection. + + + + + Adds an object to the collection. + + + + + Removes an object from the collection. + + + + + Removes an object from the collection. + + + + + Removes all items from the collection. + + + + + IMFMediaBuffer + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms696261%28v=vs.85%29.aspx + + + + + Gives the caller access to the memory in the buffer. + + + + + Unlocks a buffer that was previously locked. + + + + + Retrieves the length of the valid data in the buffer. + + + + + Sets the length of the valid data in the buffer. + + + + + Retrieves the allocated size of the buffer. + + + + + IMFMediaEvent - Represents an event generated by a Media Foundation object. Use this interface to get information about the event. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms702249%28v=vs.85%29.aspx + Mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the event type. + + + virtual HRESULT STDMETHODCALLTYPE GetType( + /* [out] */ __RPC__out MediaEventType *pmet) = 0; + + + + + Retrieves the extended type of the event. + + + virtual HRESULT STDMETHODCALLTYPE GetExtendedType( + /* [out] */ __RPC__out GUID *pguidExtendedType) = 0; + + + + + Retrieves an HRESULT that specifies the event status. + + + virtual HRESULT STDMETHODCALLTYPE GetStatus( + /* [out] */ __RPC__out HRESULT *phrStatus) = 0; + + + + + Retrieves the value associated with the event, if any. + + + virtual HRESULT STDMETHODCALLTYPE GetValue( + /* [out] */ __RPC__out PROPVARIANT *pvValue) = 0; + + + + + Represents a description of a media format. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms704850%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the major type of the format. + + + + + Queries whether the media type is a compressed format. + + + + + Compares two media types and determines whether they are identical. + + + + + Retrieves an alternative representation of the media type. + + + + + Frees memory that was allocated by the GetRepresentation method. + + + + + Creates an instance of either the sink writer or the source reader. + + + + + Creates an instance of the sink writer or source reader, given a URL. + + + + + Creates an instance of the sink writer or source reader, given an IUnknown pointer. + + + + + CLSID_MFReadWriteClassFactory + + + + + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms702192%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves flags associated with the sample. + + + + + Sets flags associated with the sample. + + + + + Retrieves the presentation time of the sample. + + + + + Sets the presentation time of the sample. + + + + + Retrieves the duration of the sample. + + + + + Sets the duration of the sample. + + + + + Retrieves the number of buffers in the sample. + + + + + Retrieves a buffer from the sample. + + + + + Converts a sample with multiple buffers into a sample with a single buffer. + + + + + Adds a buffer to the end of the list of buffers in the sample. + + + + + Removes a buffer at a specified index from the sample. + + + + + Removes all buffers from the sample. + + + + + Retrieves the total length of the valid data in all of the buffers in the sample. + + + + + Copies the sample data to a buffer. + + + + + Implemented by the Microsoft Media Foundation sink writer object. + + + + + Adds a stream to the sink writer. + + + + + Sets the input format for a stream on the sink writer. + + + + + Initializes the sink writer for writing. + + + + + Delivers a sample to the sink writer. + + + + + Indicates a gap in an input stream. + + + + + Places a marker in the specified stream. + + + + + Notifies the media sink that a stream has reached the end of a segment. + + + + + Flushes one or more streams. + + + + + (Finalize) Completes all writing operations on the sink writer. + + + + + Queries the underlying media sink or encoder for an interface. + + + + + Gets statistics about the performance of the sink writer. + + + + + IMFSourceReader interface + http://msdn.microsoft.com/en-us/library/windows/desktop/dd374655%28v=vs.85%29.aspx + + + + + Queries whether a stream is selected. + + + + + Selects or deselects one or more streams. + + + + + Gets a format that is supported natively by the media source. + + + + + Gets the current media type for a stream. + + + + + Sets the media type for a stream. + + + + + Seeks to a new position in the media source. + + + + + Reads the next sample from the media source. + + + + + Flushes one or more streams. + + + + + Queries the underlying media source or decoder for an interface. + + + + + Gets an attribute from the underlying media source. + + + + + Contains flags that indicate the status of the IMFSourceReader::ReadSample method + http://msdn.microsoft.com/en-us/library/windows/desktop/dd375773(v=vs.85).aspx + + + + + No Error + + + + + An error occurred. If you receive this flag, do not make any further calls to IMFSourceReader methods. + + + + + The source reader reached the end of the stream. + + + + + One or more new streams were created + + + + + The native format has changed for one or more streams. The native format is the format delivered by the media source before any decoders are inserted. + + + + + The current media has type changed for one or more streams. To get the current media type, call the IMFSourceReader::GetCurrentMediaType method. + + + + + There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. + + + + + All transforms inserted by the application have been removed for a particular stream. + + + + + IMFTransform, defined in mftransform.h + + + + + Retrieves the minimum and maximum number of input and output streams. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( + /* [out] */ __RPC__out DWORD *pdwInputMinimum, + /* [out] */ __RPC__out DWORD *pdwInputMaximum, + /* [out] */ __RPC__out DWORD *pdwOutputMinimum, + /* [out] */ __RPC__out DWORD *pdwOutputMaximum) = 0; + + + + + Retrieves the current number of input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + /* [out] */ __RPC__out DWORD *pcInputStreams, + /* [out] */ __RPC__out DWORD *pcOutputStreams) = 0; + + + + + Retrieves the stream identifiers for the input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( + DWORD dwInputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwInputIDArraySize) DWORD *pdwInputIDs, + DWORD dwOutputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwOutputIDArraySize) DWORD *pdwOutputIDs) = 0; + + + + + Gets the buffer requirements and other information for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( + DWORD dwInputStreamID, + /* [out] */ __RPC__out MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the buffer requirements and other information for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( + DWORD dwOutputStreamID, + /* [out] */ __RPC__out MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the global attribute store for this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetAttributes( + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an input stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Removes an input stream from this MFT. + + + virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( + DWORD dwStreamID) = 0; + + + + + Adds one or more new input streams to this MFT. + + + virtual HRESULT STDMETHODCALLTYPE AddInputStreams( + DWORD cStreams, + /* [in] */ __RPC__in DWORD *adwStreamIDs) = 0; + + + + + Gets an available media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( + DWORD dwInputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Retrieves an available media type for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( + DWORD dwOutputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Sets, tests, or clears the media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetInputType( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Sets, tests, or clears the media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetOutputType( + DWORD dwOutputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Gets the current media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Gets the current media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Queries whether an input stream on this Media Foundation transform (MFT) can accept more data. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStatus( + DWORD dwInputStreamID, + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Queries whether the Media Foundation transform (MFT) is ready to produce output data. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Sets the range of time stamps the client needs for output. + + + virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( + LONGLONG hnsLowerBound, + LONGLONG hnsUpperBound) = 0; + + + + + Sends an event to an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessEvent( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaEvent *pEvent) = 0; + + + + + Sends a message to the Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFT_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + + + + Delivers data to an input stream on this Media Foundation transform (MFT). + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessInput( + DWORD dwInputStreamID, + IMFSample *pSample, + DWORD dwFlags) = 0; + + + + + Generates output from the current input data. + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessOutput( + DWORD dwFlags, + DWORD cOutputBufferCount, + /* [size_is][out][in] */ MFT_OUTPUT_DATA_BUFFER *pOutputSamples, + /* [out] */ DWORD *pdwStatus) = 0; + + + + + See mfobjects.h + + + + + Unknown event type. + + + + + Signals a serious error. + + + + + Custom event type. + + + + + A non-fatal error occurred during streaming. + + + + + Session Unknown + + + + + Raised after the IMFMediaSession::SetTopology method completes asynchronously + + + + + Raised by the Media Session when the IMFMediaSession::ClearTopologies method completes asynchronously. + + + + + Raised when the IMFMediaSession::Start method completes asynchronously. + + + + + Raised when the IMFMediaSession::Pause method completes asynchronously. + + + + + Raised when the IMFMediaSession::Stop method completes asynchronously. + + + + + Raised when the IMFMediaSession::Close method completes asynchronously. + + + + + Raised by the Media Session when it has finished playing the last presentation in the playback queue. + + + + + Raised by the Media Session when the playback rate changes. + + + + + Raised by the Media Session when it completes a scrubbing request. + + + + + Raised by the Media Session when the session capabilities change. + + + + + Raised by the Media Session when the status of a topology changes. + + + + + Raised by the Media Session when a new presentation starts. + + + + + Raised by a media source a new presentation is ready. + + + + + License acquisition is about to begin. + + + + + License acquisition is complete. + + + + + Individualization is about to begin. + + + + + Individualization is complete. + + + + + Signals the progress of a content enabler object. + + + + + A content enabler object's action is complete. + + + + + Raised by a trusted output if an error occurs while enforcing the output policy. + + + + + Contains status information about the enforcement of an output policy. + + + + + A media source started to buffer data. + + + + + A media source stopped buffering data. + + + + + The network source started opening a URL. + + + + + The network source finished opening a URL. + + + + + Raised by a media source at the start of a reconnection attempt. + + + + + Raised by a media source at the end of a reconnection attempt. + + + + + Raised by the enhanced video renderer (EVR) when it receives a user event from the presenter. + + + + + Raised by the Media Session when the format changes on a media sink. + + + + + Source Unknown + + + + + Raised when a media source starts without seeking. + + + + + Raised by a media stream when the source starts without seeking. + + + + + Raised when a media source seeks to a new position. + + + + + Raised by a media stream after a call to IMFMediaSource::Start causes a seek in the stream. + + + + + Raised by a media source when it starts a new stream. + + + + + Raised by a media source when it restarts or seeks a stream that is already active. + + + + + Raised by a media source when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media source when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media source when a presentation ends. + + + + + Raised by a media stream when the stream ends. + + + + + Raised when a media stream delivers a new sample. + + + + + Signals that a media stream does not have data available at a specified time. + + + + + Raised by a media stream when it starts or stops thinning the stream. + + + + + Raised by a media stream when the media type of the stream changes. + + + + + Raised by a media source when the playback rate changes. + + + + + Raised by the sequencer source when a segment is completed and is followed by another segment. + + + + + Raised by a media source when the source's characteristics change. + + + + + Raised by a media source to request a new playback rate. + + + + + Raised by a media source when it updates its metadata. + + + + + Raised by the sequencer source when the IMFSequencerSource::UpdateTopology method completes asynchronously. + + + + + Sink Unknown + + + + + Raised by a stream sink when it completes the transition to the running state. + + + + + Raised by a stream sink when it completes the transition to the stopped state. + + + + + Raised by a stream sink when it completes the transition to the paused state. + + + + + Raised by a stream sink when the rate has changed. + + + + + Raised by a stream sink to request a new media sample from the pipeline. + + + + + Raised by a stream sink after the IMFStreamSink::PlaceMarker method is called. + + + + + Raised by a stream sink when the stream has received enough preroll data to begin rendering. + + + + + Raised by a stream sink when it completes a scrubbing request. + + + + + Raised by a stream sink when the sink's media type is no longer valid. + + + + + Raised by the stream sinks of the EVR if the video device changes. + + + + + Provides feedback about playback quality to the quality manager. + + + + + Raised when a media sink becomes invalid. + + + + + The audio session display name changed. + + + + + The volume or mute state of the audio session changed + + + + + The audio device was removed. + + + + + The Windows audio server system was shut down. + + + + + The grouping parameters changed for the audio session. + + + + + The audio session icon changed. + + + + + The default audio format for the audio device changed. + + + + + The audio session was disconnected from a Windows Terminal Services session + + + + + The audio session was preempted by an exclusive-mode connection. + + + + + Trust Unknown + + + + + The output policy for a stream changed. + + + + + Content protection message + + + + + The IMFOutputTrustAuthority::SetPolicy method completed. + + + + + DRM License Backup Completed + + + + + DRM License Backup Progress + + + + + DRM License Restore Completed + + + + + DRM License Restore Progress + + + + + DRM License Acquisition Completed + + + + + DRM Individualization Completed + + + + + DRM Individualization Progress + + + + + DRM Proximity Completed + + + + + DRM License Store Cleaned + + + + + DRM Revocation Download Completed + + + + + Transform Unknown + + + + + Sent by an asynchronous MFT to request a new input sample. + + + + + Sent by an asynchronous MFT when new output data is available from the MFT. + + + + + Sent by an asynchronous Media Foundation transform (MFT) when a drain operation is complete. + + + + + Sent by an asynchronous MFT in response to an MFT_MESSAGE_COMMAND_MARKER message. + + + + + Media Foundation attribute guids + http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx + + + + + Specifies whether an MFT performs asynchronous processing. + + + + + Enables the use of an asynchronous MFT. + + + + + Contains flags for an MFT activation object. + + + + + Specifies the category for an MFT. + + + + + Contains the class identifier (CLSID) of an MFT. + + + + + Contains the registered input types for a Media Foundation transform (MFT). + + + + + Contains the registered output types for a Media Foundation transform (MFT). + + + + + Contains the symbolic link for a hardware-based MFT. + + + + + Contains the display name for a hardware-based MFT. + + + + + Contains a pointer to the stream attributes of the connected stream on a hardware-based MFT. + + + + + Specifies whether a hardware-based MFT is connected to another hardware-based MFT. + + + + + Specifies the preferred output format for an encoder. + + + + + Specifies whether an MFT is registered only in the application's process. + + + + + Contains configuration properties for an encoder. + + + + + Specifies whether a hardware device source uses the system time for time stamps. + + + + + Contains an IMFFieldOfUseMFTUnlock pointer, which can be used to unlock the MFT. + + + + + Contains the merit value of a hardware codec. + + + + + Specifies whether a decoder is optimized for transcoding rather than for playback. + + + + + Contains a pointer to the proxy object for the application's presentation descriptor. + + + + + Contains a pointer to the presentation descriptor from the protected media path (PMP). + + + + + Specifies the duration of a presentation, in 100-nanosecond units. + + + + + Specifies the total size of the source file, in bytes. + + + + + Specifies the audio encoding bit rate for the presentation, in bits per second. + + + + + Specifies the video encoding bit rate for the presentation, in bits per second. + + + + + Specifies the MIME type of the content. + + + + + Specifies when a presentation was last modified. + + + + + The identifier of the playlist element in the presentation. + + + + + Contains the preferred RFC 1766 language of the media source. + + + + + The time at which the presentation must begin, relative to the start of the media source. + + + + + Specifies whether the audio streams in the presentation have a variable bit rate. + + + + + Media type Major Type + + + + + Media Type subtype + + + + + Audio block alignment + + + + + Audio average bytes per second + + + + + Audio number of channels + + + + + Audio samples per second + + + + + Audio bits per sample + + + + + Enables the source reader or sink writer to use hardware-based Media Foundation transforms (MFTs). + + + + + Contains additional format data for a media type. + + + + + Specifies for a media type whether each sample is independent of the other samples in the stream. + + + + + Specifies for a media type whether the samples have a fixed size. + + + + + Contains a DirectShow format GUID for a media type. + + + + + Specifies the preferred legacy format structure to use when converting an audio media type. + + + + + Specifies for a media type whether the media data is compressed. + + + + + Approximate data rate of the video stream, in bits per second, for a video media type. + + + + + Specifies the payload type of an Advanced Audio Coding (AAC) stream. + 0 - The stream contains raw_data_block elements only + 1 - Audio Data Transport Stream (ADTS). The stream contains an adts_sequence, as defined by MPEG-2. + 2 - Audio Data Interchange Format (ADIF). The stream contains an adif_sequence, as defined by MPEG-2. + 3 - The stream contains an MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + + + + + Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream, as defined by ISO/IEC 14496-3. + + + + + Media Foundation Errors + + + + RANGES + 14000 - 14999 = General Media Foundation errors + 15000 - 15999 = ASF parsing errors + 16000 - 16999 = Media Source errors + 17000 - 17999 = MEDIAFOUNDATION Network Error Events + 18000 - 18999 = MEDIAFOUNDATION WMContainer Error Events + 19000 - 19999 = MEDIAFOUNDATION Media Sink Error Events + 20000 - 20999 = Renderer errors + 21000 - 21999 = Topology Errors + 25000 - 25999 = Timeline Errors + 26000 - 26999 = Unused + 28000 - 28999 = Transform errors + 29000 - 29999 = Content Protection errors + 40000 - 40999 = Clock errors + 41000 - 41999 = MF Quality Management Errors + 42000 - 42999 = MF Transcode API Errors + + + + + MessageId: MF_E_PLATFORM_NOT_INITIALIZED + + MessageText: + + Platform not initialized. Please call MFStartup().%0 + + + + + MessageId: MF_E_BUFFERTOOSMALL + + MessageText: + + The buffer was too small to carry out the requested action.%0 + + + + + MessageId: MF_E_INVALIDREQUEST + + MessageText: + + The request is invalid in the current state.%0 + + + + + MessageId: MF_E_INVALIDSTREAMNUMBER + + MessageText: + + The stream number provided was invalid.%0 + + + + + MessageId: MF_E_INVALIDMEDIATYPE + + MessageText: + + The data specified for the media type is invalid, inconsistent, or not supported by this object.%0 + + + + + MessageId: MF_E_NOTACCEPTING + + MessageText: + + The callee is currently not accepting further input.%0 + + + + + MessageId: MF_E_NOT_INITIALIZED + + MessageText: + + This object needs to be initialized before the requested operation can be carried out.%0 + + + + + MessageId: MF_E_UNSUPPORTED_REPRESENTATION + + MessageText: + + The requested representation is not supported by this object.%0 + + + + + MessageId: MF_E_NO_MORE_TYPES + + MessageText: + + An object ran out of media types to suggest therefore the requested chain of streaming objects cannot be completed.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SERVICE + + MessageText: + + The object does not support the specified service.%0 + + + + + MessageId: MF_E_UNEXPECTED + + MessageText: + + An unexpected error has occurred in the operation requested.%0 + + + + + MessageId: MF_E_INVALIDNAME + + MessageText: + + Invalid name.%0 + + + + + MessageId: MF_E_INVALIDTYPE + + MessageText: + + Invalid type.%0 + + + + + MessageId: MF_E_INVALID_FILE_FORMAT + + MessageText: + + The file does not conform to the relevant file format specification. + + + + + MessageId: MF_E_INVALIDINDEX + + MessageText: + + Invalid index.%0 + + + + + MessageId: MF_E_INVALID_TIMESTAMP + + MessageText: + + An invalid timestamp was given.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SCHEME + + MessageText: + + The scheme of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_BYTESTREAM_TYPE + + MessageText: + + The byte stream type of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_TIME_FORMAT + + MessageText: + + The given time format is unsupported.%0 + + + + + MessageId: MF_E_NO_SAMPLE_TIMESTAMP + + MessageText: + + The Media Sample does not have a timestamp.%0 + + + + + MessageId: MF_E_NO_SAMPLE_DURATION + + MessageText: + + The Media Sample does not have a duration.%0 + + + + + MessageId: MF_E_INVALID_STREAM_DATA + + MessageText: + + The request failed because the data in the stream is corrupt.%0\n. + + + + + MessageId: MF_E_RT_UNAVAILABLE + + MessageText: + + Real time services are not available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE + + MessageText: + + The specified rate is not supported.%0 + + + + + MessageId: MF_E_THINNING_UNSUPPORTED + + MessageText: + + This component does not support stream-thinning.%0 + + + + + MessageId: MF_E_REVERSE_UNSUPPORTED + + MessageText: + + The call failed because no reverse playback rates are available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE_TRANSITION + + MessageText: + + The requested rate transition cannot occur in the current state.%0 + + + + + MessageId: MF_E_RATE_CHANGE_PREEMPTED + + MessageText: + + The requested rate change has been pre-empted and will not occur.%0 + + + + + MessageId: MF_E_NOT_FOUND + + MessageText: + + The specified object or value does not exist.%0 + + + + + MessageId: MF_E_NOT_AVAILABLE + + MessageText: + + The requested value is not available.%0 + + + + + MessageId: MF_E_NO_CLOCK + + MessageText: + + The specified operation requires a clock and no clock is available.%0 + + + + + MessageId: MF_S_MULTIPLE_BEGIN + + MessageText: + + This callback and state had already been passed in to this event generator earlier.%0 + + + + + MessageId: MF_E_MULTIPLE_BEGIN + + MessageText: + + This callback has already been passed in to this event generator.%0 + + + + + MessageId: MF_E_MULTIPLE_SUBSCRIBERS + + MessageText: + + Some component is already listening to events on this event generator.%0 + + + + + MessageId: MF_E_TIMER_ORPHANED + + MessageText: + + This timer was orphaned before its callback time arrived.%0 + + + + + MessageId: MF_E_STATE_TRANSITION_PENDING + + MessageText: + + A state transition is already pending.%0 + + + + + MessageId: MF_E_UNSUPPORTED_STATE_TRANSITION + + MessageText: + + The requested state transition is unsupported.%0 + + + + + MessageId: MF_E_UNRECOVERABLE_ERROR_OCCURRED + + MessageText: + + An unrecoverable error has occurred.%0 + + + + + MessageId: MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS + + MessageText: + + The provided sample has too many buffers.%0 + + + + + MessageId: MF_E_SAMPLE_NOT_WRITABLE + + MessageText: + + The provided sample is not writable.%0 + + + + + MessageId: MF_E_INVALID_KEY + + MessageText: + + The specified key is not valid. + + + + + MessageId: MF_E_BAD_STARTUP_VERSION + + MessageText: + + You are calling MFStartup with the wrong MF_VERSION. Mismatched bits? + + + + + MessageId: MF_E_UNSUPPORTED_CAPTION + + MessageText: + + The caption of the given URL is unsupported.%0 + + + + + MessageId: MF_E_INVALID_POSITION + + MessageText: + + The operation on the current offset is not permitted.%0 + + + + + MessageId: MF_E_ATTRIBUTENOTFOUND + + MessageText: + + The requested attribute was not found.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_ALLOWED + + MessageText: + + The specified property type is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_SUPPORTED + + MessageText: + + The specified property type is not supported.%0 + + + + + MessageId: MF_E_PROPERTY_EMPTY + + MessageText: + + The specified property is empty.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_EMPTY + + MessageText: + + The specified property is not empty.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_NOT_ALLOWED + + MessageText: + + The vector property specified is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_REQUIRED + + MessageText: + + A vector property is required in this context.%0 + + + + + MessageId: MF_E_OPERATION_CANCELLED + + MessageText: + + The operation is cancelled.%0 + + + + + MessageId: MF_E_BYTESTREAM_NOT_SEEKABLE + + MessageText: + + The provided bytestream was expected to be seekable and it is not.%0 + + + + + MessageId: MF_E_DISABLED_IN_SAFEMODE + + MessageText: + + The Media Foundation platform is disabled when the system is running in Safe Mode.%0 + + + + + MessageId: MF_E_CANNOT_PARSE_BYTESTREAM + + MessageText: + + The Media Source could not parse the byte stream.%0 + + + + + MessageId: MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS + + MessageText: + + Mutually exclusive flags have been specified to source resolver. This flag combination is invalid.%0 + + + + + MessageId: MF_E_MEDIAPROC_WRONGSTATE + + MessageText: + + MediaProc is in the wrong state%0 + + + + + MessageId: MF_E_RT_THROUGHPUT_NOT_AVAILABLE + + MessageText: + + Real time I/O service can not provide requested throughput.%0 + + + + + MessageId: MF_E_RT_TOO_MANY_CLASSES + + MessageText: + + The workqueue cannot be registered with more classes.%0 + + + + + MessageId: MF_E_RT_WOULDBLOCK + + MessageText: + + This operation cannot succeed because another thread owns this object.%0 + + + + + MessageId: MF_E_NO_BITPUMP + + MessageText: + + Internal. Bitpump not found.%0 + + + + + MessageId: MF_E_RT_OUTOFMEMORY + + MessageText: + + No more RT memory available.%0 + + + + + MessageId: MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED + + MessageText: + + An MMCSS class has not been set for this work queue.%0 + + + + + MessageId: MF_E_INSUFFICIENT_BUFFER + + MessageText: + + Insufficient memory for response.%0 + + + + + MessageId: MF_E_CANNOT_CREATE_SINK + + MessageText: + + Activate failed to create mediasink. Call OutputNode::GetUINT32(MF_TOPONODE_MAJORTYPE) for more information. %0 + + + + + MessageId: MF_E_BYTESTREAM_UNKNOWN_LENGTH + + MessageText: + + The length of the provided bytestream is unknown.%0 + + + + + MessageId: MF_E_SESSION_PAUSEWHILESTOPPED + + MessageText: + + The media session cannot pause from a stopped state.%0 + + + + + MessageId: MF_S_ACTIVATE_REPLACED + + MessageText: + + The activate could not be created in the remote process for some reason it was replaced with empty one.%0 + + + + + MessageId: MF_E_FORMAT_CHANGE_NOT_SUPPORTED + + MessageText: + + The data specified for the media type is supported, but would require a format change, which is not supported by this object.%0 + + + + + MessageId: MF_E_INVALID_WORKQUEUE + + MessageText: + + The operation failed because an invalid combination of workqueue ID and flags was specified.%0 + + + + + MessageId: MF_E_DRM_UNSUPPORTED + + MessageText: + + No DRM support is available.%0 + + + + + MessageId: MF_E_UNAUTHORIZED + + MessageText: + + This operation is not authorized.%0 + + + + + MessageId: MF_E_OUT_OF_RANGE + + MessageText: + + The value is not in the specified or valid range.%0 + + + + + MessageId: MF_E_INVALID_CODEC_MERIT + + MessageText: + + The registered codec merit is not valid.%0 + + + + + MessageId: MF_E_HW_MFT_FAILED_START_STREAMING + + MessageText: + + Hardware MFT failed to start streaming due to lack of hardware resources.%0 + + + + + MessageId: MF_S_ASF_PARSEINPROGRESS + + MessageText: + + Parsing is still in progress and is not yet complete.%0 + + + + + MessageId: MF_E_ASF_PARSINGINCOMPLETE + + MessageText: + + Not enough data have been parsed to carry out the requested action.%0 + + + + + MessageId: MF_E_ASF_MISSINGDATA + + MessageText: + + There is a gap in the ASF data provided.%0 + + + + + MessageId: MF_E_ASF_INVALIDDATA + + MessageText: + + The data provided are not valid ASF.%0 + + + + + MessageId: MF_E_ASF_OPAQUEPACKET + + MessageText: + + The packet is opaque, so the requested information cannot be returned.%0 + + + + + MessageId: MF_E_ASF_NOINDEX + + MessageText: + + The requested operation failed since there is no appropriate ASF index.%0 + + + + + MessageId: MF_E_ASF_OUTOFRANGE + + MessageText: + + The value supplied is out of range for this operation.%0 + + + + + MessageId: MF_E_ASF_INDEXNOTLOADED + + MessageText: + + The index entry requested needs to be loaded before it can be available.%0 + + + + + MessageId: MF_E_ASF_TOO_MANY_PAYLOADS + + MessageText: + + The packet has reached the maximum number of payloads.%0 + + + + + MessageId: MF_E_ASF_UNSUPPORTED_STREAM_TYPE + + MessageText: + + Stream type is not supported.%0 + + + + + MessageId: MF_E_ASF_DROPPED_PACKET + + MessageText: + + One or more ASF packets were dropped.%0 + + + + + MessageId: MF_E_NO_EVENTS_AVAILABLE + + MessageText: + + There are no events available in the queue.%0 + + + + + MessageId: MF_E_INVALID_STATE_TRANSITION + + MessageText: + + A media source cannot go from the stopped state to the paused state.%0 + + + + + MessageId: MF_E_END_OF_STREAM + + MessageText: + + The media stream cannot process any more samples because there are no more samples in the stream.%0 + + + + + MessageId: MF_E_SHUTDOWN + + MessageText: + + The request is invalid because Shutdown() has been called.%0 + + + + + MessageId: MF_E_MP3_NOTFOUND + + MessageText: + + The MP3 object was not found.%0 + + + + + MessageId: MF_E_MP3_OUTOFDATA + + MessageText: + + The MP3 parser ran out of data before finding the MP3 object.%0 + + + + + MessageId: MF_E_MP3_NOTMP3 + + MessageText: + + The file is not really a MP3 file.%0 + + + + + MessageId: MF_E_MP3_NOTSUPPORTED + + MessageText: + + The MP3 file is not supported.%0 + + + + + MessageId: MF_E_NO_DURATION + + MessageText: + + The Media stream has no duration.%0 + + + + + MessageId: MF_E_INVALID_FORMAT + + MessageText: + + The Media format is recognized but is invalid.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_FOUND + + MessageText: + + The property requested was not found.%0 + + + + + MessageId: MF_E_PROPERTY_READ_ONLY + + MessageText: + + The property is read only.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_ALLOWED + + MessageText: + + The specified property is not allowed in this context.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NOT_STARTED + + MessageText: + + The media source is not started.%0 + + + + + MessageId: MF_E_UNSUPPORTED_FORMAT + + MessageText: + + The Media format is recognized but not supported.%0 + + + + + MessageId: MF_E_MP3_BAD_CRC + + MessageText: + + The MPEG frame has bad CRC.%0 + + + + + MessageId: MF_E_NOT_PROTECTED + + MessageText: + + The file is not protected.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_WRONGSTATE + + MessageText: + + The media source is in the wrong state%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED + + MessageText: + + No streams are selected in source presentation descriptor.%0 + + + + + MessageId: MF_E_CANNOT_FIND_KEYFRAME_SAMPLE + + MessageText: + + No key frame sample was found.%0 + + + + + MessageId: MF_E_NETWORK_RESOURCE_FAILURE + + MessageText: + + An attempt to acquire a network resource failed.%0 + + + + + MessageId: MF_E_NET_WRITE + + MessageText: + + Error writing to the network.%0 + + + + + MessageId: MF_E_NET_READ + + MessageText: + + Error reading from the network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_NETWORK + + MessageText: + + Internal. Entry cannot complete operation without network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_ASYNC + + MessageText: + + Internal. Async op is required.%0 + + + + + MessageId: MF_E_NET_BWLEVEL_NOT_SUPPORTED + + MessageText: + + Internal. Bandwidth levels are not supported.%0 + + + + + MessageId: MF_E_NET_STREAMGROUPS_NOT_SUPPORTED + + MessageText: + + Internal. Stream groups are not supported.%0 + + + + + MessageId: MF_E_NET_MANUALSS_NOT_SUPPORTED + + MessageText: + + Manual stream selection is not supported.%0 + + + + + MessageId: MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR + + MessageText: + + Invalid presentation descriptor.%0 + + + + + MessageId: MF_E_NET_CACHESTREAM_NOT_FOUND + + MessageText: + + Cannot find cache stream.%0 + + + + + MessageId: MF_I_MANUAL_PROXY + + MessageText: + + The proxy setting is manual.%0 + + + + duplicate removed + MessageId=17011 Severity=Informational Facility=MEDIAFOUNDATION SymbolicName=MF_E_INVALID_REQUEST + Language=English + The request is invalid in the current state.%0 + . + + MessageId: MF_E_NET_REQUIRE_INPUT + + MessageText: + + Internal. Entry cannot complete operation without input.%0 + + + + + MessageId: MF_E_NET_REDIRECT + + MessageText: + + The client redirected to another server.%0 + + + + + MessageId: MF_E_NET_REDIRECT_TO_PROXY + + MessageText: + + The client is redirected to a proxy server.%0 + + + + + MessageId: MF_E_NET_TOO_MANY_REDIRECTS + + MessageText: + + The client reached maximum redirection limit.%0 + + + + + MessageId: MF_E_NET_TIMEOUT + + MessageText: + + The server, a computer set up to offer multimedia content to other computers, could not handle your request for multimedia content in a timely manner. Please try again later.%0 + + + + + MessageId: MF_E_NET_CLIENT_CLOSE + + MessageText: + + The control socket is closed by the client.%0 + + + + + MessageId: MF_E_NET_BAD_CONTROL_DATA + + MessageText: + + The server received invalid data from the client on the control connection.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_SERVER + + MessageText: + + The server is not a compatible streaming media server.%0 + + + + + MessageId: MF_E_NET_UNSAFE_URL + + MessageText: + + Url.%0 + + + + + MessageId: MF_E_NET_CACHE_NO_DATA + + MessageText: + + Data is not available.%0 + + + + + MessageId: MF_E_NET_EOL + + MessageText: + + End of line.%0 + + + + + MessageId: MF_E_NET_BAD_REQUEST + + MessageText: + + The request could not be understood by the server.%0 + + + + + MessageId: MF_E_NET_INTERNAL_SERVER_ERROR + + MessageText: + + The server encountered an unexpected condition which prevented it from fulfilling the request.%0 + + + + + MessageId: MF_E_NET_SESSION_NOT_FOUND + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_NET_NOCONNECTION + + MessageText: + + There is no connection established with the Windows Media server. The operation failed.%0 + + + + + MessageId: MF_E_NET_CONNECTION_FAILURE + + MessageText: + + The network connection has failed.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_PUSHSERVER + + MessageText: + + The Server service that received the HTTP push request is not a compatible version of Windows Media Services (WMS). This error may indicate the push request was received by IIS instead of WMS. Ensure WMS is started and has the HTTP Server control protocol properly enabled and try again.%0 + + + + + MessageId: MF_E_NET_SERVER_ACCESSDENIED + + MessageText: + + The Windows Media server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_PROXY_ACCESSDENIED + + MessageText: + + The proxy server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_CANNOTCONNECT + + MessageText: + + Unable to establish a connection to the server.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_TEMPLATE + + MessageText: + + The specified push template is invalid.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_PUBLISHING_POINT + + MessageText: + + The specified push publishing point is invalid.%0 + + + + + MessageId: MF_E_NET_BUSY + + MessageText: + + The requested resource is in use.%0 + + + + + MessageId: MF_E_NET_RESOURCE_GONE + + MessageText: + + The Publishing Point or file on the Windows Media Server is no longer available.%0 + + + + + MessageId: MF_E_NET_ERROR_FROM_PROXY + + MessageText: + + The proxy experienced an error while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_PROXY_TIMEOUT + + MessageText: + + The proxy did not receive a timely response while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_SERVER_UNAVAILABLE + + MessageText: + + The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.%0 + + + + + MessageId: MF_E_NET_TOO_MUCH_DATA + + MessageText: + + The encoding process was unable to keep up with the amount of supplied data.%0 + + + + + MessageId: MF_E_NET_SESSION_INVALID + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_OFFLINE_MODE + + MessageText: + + The requested URL is not available in offline mode.%0 + + + + + MessageId: MF_E_NET_UDP_BLOCKED + + MessageText: + + A device in the network is blocking UDP traffic.%0 + + + + + MessageId: MF_E_NET_UNSUPPORTED_CONFIGURATION + + MessageText: + + The specified configuration value is not supported.%0 + + + + + MessageId: MF_E_NET_PROTOCOL_DISABLED + + MessageText: + + The networking protocol is disabled.%0 + + + + + MessageId: MF_E_ALREADY_INITIALIZED + + MessageText: + + This object has already been initialized and cannot be re-initialized at this time.%0 + + + + + MessageId: MF_E_BANDWIDTH_OVERRUN + + MessageText: + + The amount of data passed in exceeds the given bitrate and buffer window.%0 + + + + + MessageId: MF_E_LATE_SAMPLE + + MessageText: + + The sample was passed in too late to be correctly processed.%0 + + + + + MessageId: MF_E_FLUSH_NEEDED + + MessageText: + + The requested action cannot be carried out until the object is flushed and the queue is emptied.%0 + + + + + MessageId: MF_E_INVALID_PROFILE + + MessageText: + + The profile is invalid.%0 + + + + + MessageId: MF_E_INDEX_NOT_COMMITTED + + MessageText: + + The index that is being generated needs to be committed before the requested action can be carried out.%0 + + + + + MessageId: MF_E_NO_INDEX + + MessageText: + + The index that is necessary for the requested action is not found.%0 + + + + + MessageId: MF_E_CANNOT_INDEX_IN_PLACE + + MessageText: + + The requested index cannot be added in-place to the specified ASF content.%0 + + + + + MessageId: MF_E_MISSING_ASF_LEAKYBUCKET + + MessageText: + + The ASF leaky bucket parameters must be specified in order to carry out this request.%0 + + + + + MessageId: MF_E_INVALID_ASF_STREAMID + + MessageText: + + The stream id is invalid. The valid range for ASF stream id is from 1 to 127.%0 + + + + + MessageId: MF_E_STREAMSINK_REMOVED + + MessageText: + + The requested Stream Sink has been removed and cannot be used.%0 + + + + + MessageId: MF_E_STREAMSINKS_OUT_OF_SYNC + + MessageText: + + The various Stream Sinks in this Media Sink are too far out of sync for the requested action to take place.%0 + + + + + MessageId: MF_E_STREAMSINKS_FIXED + + MessageText: + + Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.%0 + + + + + MessageId: MF_E_STREAMSINK_EXISTS + + MessageText: + + The given Stream Sink already exists.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_CANCELED + + MessageText: + + Sample allocations have been canceled.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_EMPTY + + MessageText: + + The sample allocator is currently empty, due to outstanding requests.%0 + + + + + MessageId: MF_E_SINK_ALREADYSTOPPED + + MessageText: + + When we try to sopt a stream sink, it is already stopped %0 + + + + + MessageId: MF_E_ASF_FILESINK_BITRATE_UNKNOWN + + MessageText: + + The ASF file sink could not reserve AVIO because the bitrate is unknown.%0 + + + + + MessageId: MF_E_SINK_NO_STREAMS + + MessageText: + + No streams are selected in sink presentation descriptor.%0 + + + + + MessageId: MF_S_SINK_NOT_FINALIZED + + MessageText: + + The sink has not been finalized before shut down. This may cause sink generate a corrupted content.%0 + + + + + MessageId: MF_E_METADATA_TOO_LONG + + MessageText: + + A metadata item was too long to write to the output container.%0 + + + + + MessageId: MF_E_SINK_NO_SAMPLES_PROCESSED + + MessageText: + + The operation failed because no samples were processed by the sink.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_PROCAMP_HW + + MessageText: + + There is no available procamp hardware with which to perform color correction.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_DEINTERLACE_HW + + MessageText: + + There is no available deinterlacing hardware with which to deinterlace the video stream.%0 + + + + + MessageId: MF_E_VIDEO_REN_COPYPROT_FAILED + + MessageText: + + A video stream requires copy protection to be enabled, but there was a failure in attempting to enable copy protection.%0 + + + + + MessageId: MF_E_VIDEO_REN_SURFACE_NOT_SHARED + + MessageText: + + A component is attempting to access a surface for sharing that is not shared.%0 + + + + + MessageId: MF_E_VIDEO_DEVICE_LOCKED + + MessageText: + + A component is attempting to access a shared device that is already locked by another component.%0 + + + + + MessageId: MF_E_NEW_VIDEO_DEVICE + + MessageText: + + The device is no longer available. The handle should be closed and a new one opened.%0 + + + + + MessageId: MF_E_NO_VIDEO_SAMPLE_AVAILABLE + + MessageText: + + A video sample is not currently queued on a stream that is required for mixing.%0 + + + + + MessageId: MF_E_NO_AUDIO_PLAYBACK_DEVICE + + MessageText: + + No audio playback device was found.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE + + MessageText: + + The requested audio playback device is currently in use.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED + + MessageText: + + The audio playback device is no longer present.%0 + + + + + MessageId: MF_E_AUDIO_SERVICE_NOT_RUNNING + + MessageText: + + The audio service is not running.%0 + + + + + MessageId: MF_E_TOPO_INVALID_OPTIONAL_NODE + + MessageText: + + The topology contains an invalid optional node. Possible reasons are incorrect number of outputs and inputs or optional node is at the beginning or end of a segment. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_FIND_DECRYPTOR + + MessageText: + + No suitable transform was found to decrypt the content. %0 + + + + + MessageId: MF_E_TOPO_CODEC_NOT_FOUND + + MessageText: + + No suitable transform was found to encode or decode the content. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_CONNECT + + MessageText: + + Unable to find a way to connect nodes%0 + + + + + MessageId: MF_E_TOPO_UNSUPPORTED + + MessageText: + + Unsupported operations in topoloader%0 + + + + + MessageId: MF_E_TOPO_INVALID_TIME_ATTRIBUTES + + MessageText: + + The topology or its nodes contain incorrectly set time attributes%0 + + + + + MessageId: MF_E_TOPO_LOOPS_IN_TOPOLOGY + + MessageText: + + The topology contains loops, which are unsupported in media foundation topologies%0 + + + + + MessageId: MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_STREAM_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a stream descriptor%0 + + + + + MessageId: MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED + + MessageText: + + A stream descriptor was set on a source stream node but it was not selected on the presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_SOURCE + + MessageText: + + A source stream node in the topology does not have a source%0 + + + + + MessageId: MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED + + MessageText: + + The topology loader does not support sink activates on output nodes.%0 + + + + + MessageId: MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID + + MessageText: + + The sequencer cannot find a segment with the given ID.%0\n. + + + + + MessageId: MF_S_SEQUENCER_CONTEXT_CANCELED + + MessageText: + + The context was canceled.%0\n. + + + + + MessageId: MF_E_NO_SOURCE_IN_CACHE + + MessageText: + + Cannot find source in source cache.%0\n. + + + + + MessageId: MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM + + MessageText: + + Cannot update topology flags.%0\n. + + + + + MessageId: MF_E_TRANSFORM_TYPE_NOT_SET + + MessageText: + + A valid type has not been set for this stream or a stream that it depends on.%0 + + + + + MessageId: MF_E_TRANSFORM_STREAM_CHANGE + + MessageText: + + A stream change has occurred. Output cannot be produced until the streams have been renegotiated.%0 + + + + + MessageId: MF_E_TRANSFORM_INPUT_REMAINING + + MessageText: + + The transform cannot take the requested action until all of the input data it currently holds is processed or flushed.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_MISSING + + MessageText: + + The transform requires a profile but no profile was supplied or found.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT + + MessageText: + + The transform requires a profile but the supplied profile was invalid or corrupt.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_TRUNCATED + + MessageText: + + The transform requires a profile but the supplied profile ended unexpectedly while parsing.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED + + MessageText: + + The property ID does not match any property supported by the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG + + MessageText: + + The variant does not have the type expected for this property ID.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE + + MessageText: + + An attempt was made to set the value on a read-only property.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM + + MessageText: + + The array property value has an unexpected number of dimensions.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG + + MessageText: + + The array or blob property value has an unexpected size.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE + + MessageText: + + The property value is out of range for this transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE + + MessageText: + + The property value is incompatible with some other property or mediatype set on the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set output mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set input mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION + + MessageText: + + The requested operation is not supported for the currently set combination of mediatypes.%0 + + + + + MessageId: MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES + + MessageText: + + The requested feature is not supported in combination with some other currently enabled feature.%0 + + + + + MessageId: MF_E_TRANSFORM_NEED_MORE_INPUT + + MessageText: + + The transform cannot produce output until it gets more input samples.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG + + MessageText: + + The requested operation is not supported for the current speaker configuration.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING + + MessageText: + + The transform cannot accept mediatype changes in the middle of processing.%0 + + + + + MessageId: MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT + + MessageText: + + The caller should not propagate this event to downstream components.%0 + + + + + MessageId: MF_E_UNSUPPORTED_D3D_TYPE + + MessageText: + + The input type is not supported for D3D device.%0 + + + + + MessageId: MF_E_TRANSFORM_ASYNC_LOCKED + + MessageText: + + The caller does not appear to support this transform's asynchronous capabilities.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER + + MessageText: + + An audio compression manager driver could not be initialized by the transform.%0 + + + + + MessageId: MF_E_LICENSE_INCORRECT_RIGHTS + + MessageText: + + You are not allowed to open this file. Contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_OUTOFDATE + + MessageText: + + The license for this media file has expired. Get a new license or contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_REQUIRED + + MessageText: + + You need a license to perform the requested operation on this media file.%0 + + + + + MessageId: MF_E_DRM_HARDWARE_INCONSISTENT + + MessageText: + + The licenses for your media files are corrupted. Contact Microsoft product support.%0 + + + + + MessageId: MF_E_NO_CONTENT_PROTECTION_MANAGER + + MessageText: + + The APP needs to provide IMFContentProtectionManager callback to access the protected media file.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NO_RIGHTS + + MessageText: + + Client does not have rights to restore licenses.%0 + + + + + MessageId: MF_E_BACKUP_RESTRICTED_LICENSE + + MessageText: + + Licenses are restricted and hence can not be backed up.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION + + MessageText: + + License restore requires machine to be individualized.%0 + + + + + MessageId: MF_S_PROTECTION_NOT_REQUIRED + + MessageText: + + Protection for stream is not required.%0 + + + + + MessageId: MF_E_COMPONENT_REVOKED + + MessageText: + + Component is revoked.%0 + + + + + MessageId: MF_E_TRUST_DISABLED + + MessageText: + + Trusted functionality is currently disabled on this component.%0 + + + + + MessageId: MF_E_WMDRMOTA_NO_ACTION + + MessageText: + + No Action is set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_ALREADY_SET + + MessageText: + + Action is already set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE + + MessageText: + + DRM Heaader is not available.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED + + MessageText: + + Current encryption scheme is not supported.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_MISMATCH + + MessageText: + + Action does not match with current configuration.%0 + + + + + MessageId: MF_E_WMDRMOTA_INVALID_POLICY + + MessageText: + + Invalid policy for WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_POLICY_UNSUPPORTED + + MessageText: + + The policies that the Input Trust Authority requires to be enforced are unsupported by the outputs.%0 + + + + + MessageId: MF_E_OPL_NOT_SUPPORTED + + MessageText: + + The OPL that the license requires to be enforced are not supported by the Input Trust Authority.%0 + + + + + MessageId: MF_E_TOPOLOGY_VERIFICATION_FAILED + + MessageText: + + The topology could not be successfully verified.%0 + + + + + MessageId: MF_E_SIGNATURE_VERIFICATION_FAILED + + MessageText: + + Signature verification could not be completed successfully for this component.%0 + + + + + MessageId: MF_E_DEBUGGING_NOT_ALLOWED + + MessageText: + + Running this process under a debugger while using protected content is not allowed.%0 + + + + + MessageId: MF_E_CODE_EXPIRED + + MessageText: + + MF component has expired.%0 + + + + + MessageId: MF_E_GRL_VERSION_TOO_LOW + + MessageText: + + The current GRL on the machine does not meet the minimum version requirements.%0 + + + + + MessageId: MF_E_GRL_RENEWAL_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any renewal entries for the specified revocation.%0 + + + + + MessageId: MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any extensible entries for the specified extension GUID.%0 + + + + + MessageId: MF_E_KERNEL_UNTRUSTED + + MessageText: + + The kernel isn't secure for high security level content.%0 + + + + + MessageId: MF_E_PEAUTH_UNTRUSTED + + MessageText: + + The response from protected environment driver isn't valid.%0 + + + + + MessageId: MF_E_NON_PE_PROCESS + + MessageText: + + A non-PE process tried to talk to PEAuth.%0 + + + + + MessageId: MF_E_REBOOT_REQUIRED + + MessageText: + + We need to reboot the machine.%0 + + + + + MessageId: MF_S_WAIT_FOR_POLICY_SET + + MessageText: + + Protection for this stream is not guaranteed to be enforced until the MEPolicySet event is fired.%0 + + + + + MessageId: MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT + + MessageText: + + This video stream is disabled because it is being sent to an unknown software output.%0 + + + + + MessageId: MF_E_GRL_INVALID_FORMAT + + MessageText: + + The GRL file is not correctly formed, it may have been corrupted or overwritten.%0 + + + + + MessageId: MF_E_GRL_UNRECOGNIZED_FORMAT + + MessageText: + + The GRL file is in a format newer than those recognized by this GRL Reader.%0 + + + + + MessageId: MF_E_ALL_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and required all processes that can run protected media to restart.%0 + + + + + MessageId: MF_E_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and the current process needs to restart.%0 + + + + + MessageId: MF_E_USERMODE_UNTRUSTED + + MessageText: + + The user space is untrusted for protected content play.%0 + + + + + MessageId: MF_E_PEAUTH_SESSION_NOT_STARTED + + MessageText: + + PEAuth communication session hasn't been started.%0 + + + + + MessageId: MF_E_PEAUTH_PUBLICKEY_REVOKED + + MessageText: + + PEAuth's public key is revoked.%0 + + + + + MessageId: MF_E_GRL_ABSENT + + MessageText: + + The GRL is absent.%0 + + + + + MessageId: MF_S_PE_TRUSTED + + MessageText: + + The Protected Environment is trusted.%0 + + + + + MessageId: MF_E_PE_UNTRUSTED + + MessageText: + + The Protected Environment is untrusted.%0 + + + + + MessageId: MF_E_PEAUTH_NOT_STARTED + + MessageText: + + The Protected Environment Authorization service (PEAUTH) has not been started.%0 + + + + + MessageId: MF_E_INCOMPATIBLE_SAMPLE_PROTECTION + + MessageText: + + The sample protection algorithms supported by components are not compatible.%0 + + + + + MessageId: MF_E_PE_SESSIONS_MAXED + + MessageText: + + No more protected environment sessions can be supported.%0 + + + + + MessageId: MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED + + MessageText: + + WMDRM ITA does not allow protected content with high security level for this release.%0 + + + + + MessageId: MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED + + MessageText: + + WMDRM ITA cannot allow the requested action for the content as one or more components is not properly signed.%0 + + + + + MessageId: MF_E_ITA_UNSUPPORTED_ACTION + + MessageText: + + WMDRM ITA does not support the requested action.%0 + + + + + MessageId: MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS + + MessageText: + + WMDRM ITA encountered an error in parsing the Secure Audio Path parameters.%0 + + + + + MessageId: MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS + + MessageText: + + The Policy Manager action passed in is invalid.%0 + + + + + MessageId: MF_E_BAD_OPL_STRUCTURE_FORMAT + + MessageText: + + The structure specifying Output Protection Level is not the correct format.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID + + MessageText: + + WMDRM ITA does not recognize the Explicite Analog Video Output Protection guid specified in the license.%0 + + + + + MessageId: MF_E_NO_PMP_HOST + + MessageText: + + IMFPMPHost object not available.%0 + + + + + MessageId: MF_E_ITA_OPL_DATA_NOT_INITIALIZED + + MessageText: + + WMDRM ITA could not initialize the Output Protection Level data.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Analog Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Digital Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_CLOCK_INVALID_CONTINUITY_KEY + + MessageText: + + The continuity key supplied is not currently valid.%0 + + + + + MessageId: MF_E_CLOCK_NO_TIME_SOURCE + + MessageText: + + No Presentation Time Source has been specified.%0 + + + + + MessageId: MF_E_CLOCK_STATE_ALREADY_SET + + MessageText: + + The clock is already in the requested state.%0 + + + + + MessageId: MF_E_CLOCK_NOT_SIMPLE + + MessageText: + + The clock has too many advanced features to carry out the request.%0 + + + + + MessageId: MF_S_CLOCK_STOPPED + + MessageText: + + Timer::SetTimer returns this success code if called happened while timer is stopped. Timer is not going to be dispatched until clock is running%0 + + + + + MessageId: MF_E_NO_MORE_DROP_MODES + + MessageText: + + The component does not support any more drop modes.%0 + + + + + MessageId: MF_E_NO_MORE_QUALITY_LEVELS + + MessageText: + + The component does not support any more quality levels.%0 + + + + + MessageId: MF_E_DROPTIME_NOT_SUPPORTED + + MessageText: + + The component does not support drop time functionality.%0 + + + + + MessageId: MF_E_QUALITYKNOB_WAIT_LONGER + + MessageText: + + Quality Manager needs to wait longer before bumping the Quality Level up.%0 + + + + + MessageId: MF_E_QM_INVALIDSTATE + + MessageText: + + Quality Manager is in an invalid state. Quality Management is off at this moment.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_CONTAINERTYPE + + MessageText: + + No transcode output container type is specified.%0 + + + + + MessageId: MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS + + MessageText: + + The profile does not have a media type configuration for any selected source streams.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_MATCHING_ENCODER + + MessageText: + + Cannot find an encoder MFT that accepts the user preferred output type.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_INITIALIZED + + MessageText: + + Memory allocator is not initialized.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_COMMITED + + MessageText: + + Memory allocator is not committed yet.%0 + + + + + MessageId: MF_E_ALLOCATOR_ALREADY_COMMITED + + MessageText: + + Memory allocator has already been committed.%0 + + + + + MessageId: MF_E_STREAM_ERROR + + MessageText: + + An error occurred in media stream.%0 + + + + + MessageId: MF_E_INVALID_STREAM_STATE + + MessageText: + + Stream is not in a state to handle the request.%0 + + + + + MessageId: MF_E_HW_STREAM_NOT_CONNECTED + + MessageText: + + Hardware stream is not connected yet.%0 + + + + + Main interface for using Media Foundation with NAudio + + + + + initializes MediaFoundation - only needs to be called once per process + + + + + uninitializes MediaFoundation + + + + + Creates a Media type + + + + + Creates a media type from a WaveFormat + + + + + Creates a memory buffer of the specified size + + Memory buffer size in bytes + The memory buffer + + + + Creates a sample object + + The sample object + + + + Creates a new attributes store + + Initial size + The attributes store + + + + Creates a media foundation byte stream based on a stream object + (usable with WinRT streams) + + The input stream + A media foundation byte stream + + + + Creates a source reader based on a byte stream + + The byte stream + A media foundation source reader + + + + Interop definitions for MediaFoundation + thanks to Lucian Wischik for the initial work on many of these definitions (also various interfaces) + n.b. the goal is to make as much of this internal as possible, and provide + better .NET APIs using the MediaFoundationApi class instead + + + + + Initializes Microsoft Media Foundation. + + + + + Shuts down the Microsoft Media Foundation platform + + + + + Creates an empty media type. + + + + + Initializes a media type from a WAVEFORMATEX structure. + + + + + Converts a Media Foundation audio media type to a WAVEFORMATEX structure. + + TODO: try making second parameter out WaveFormatExtraData + + + + Creates the source reader from a URL. + + + + + Creates the source reader from a byte stream. + + + + + Creates the sink writer from a URL or byte stream. + + + + + Creates a Microsoft Media Foundation byte stream that wraps an IRandomAccessStream object. + + + + + Creates an empty media sample. + + + + + Allocates system memory and creates a media buffer to manage it. + + + + + Creates an empty attribute store. + + + + + All streams + + + + + First audio stream + + + + + First video stream + + + + + Media source + + + + + Media Foundation SDK Version + + + + + Media Foundation API Version + + + + + Media Foundation Version + + + + + An abstract base class for simplifying working with Media Foundation Transforms + You need to override the method that actually creates and configures the transform + + + + + The Source Provider + + + + + The Output WaveFormat + + + + + Constructs a new MediaFoundationTransform wrapper + Will read one second at a time + + The source provider for input data to the transform + The desired output format + + + + To be implemented by overriding classes. Create the transform object, set up its input and output types, + and configure any custom properties in here + + An object implementing IMFTrasform + + + + Disposes this MediaFoundation transform + + + + + Disposes this Media Foundation Transform + + + + + Destructor + + + + + The output WaveFormat of this Media Foundation Transform + + + + + Reads data out of the source, passing it through the transform + + Output buffer + Offset within buffer to write to + Desired byte count + Number of bytes read + + + + Attempts to read from the transform + Some useful info here: + http://msdn.microsoft.com/en-gb/library/windows/desktop/aa965264%28v=vs.85%29.aspx#process_data + + + + + + Indicate that the source has been repositioned and completely drain out the transforms buffers + + + + + Media Foundation Transform Categories + + + + + MFT_CATEGORY_VIDEO_DECODER + + + + + MFT_CATEGORY_VIDEO_ENCODER + + + + + MFT_CATEGORY_VIDEO_EFFECT + + + + + MFT_CATEGORY_MULTIPLEXER + + + + + MFT_CATEGORY_DEMULTIPLEXER + + + + + MFT_CATEGORY_AUDIO_DECODER + + + + + MFT_CATEGORY_AUDIO_ENCODER + + + + + MFT_CATEGORY_AUDIO_EFFECT + + + + + MFT_CATEGORY_VIDEO_PROCESSOR + + + + + MFT_CATEGORY_OTHER + + + + + Media Type helper class, simplifying working with IMFMediaType + (will probably change in the future, to inherit from an attributes class) + Currently does not release the COM object, so you must do that yourself + + + + + Wraps an existing IMFMediaType object + + The IMFMediaType object + + + + Creates and wraps a new IMFMediaType object + + + + + Creates and wraps a new IMFMediaType object based on a WaveFormat + + WaveFormat + + + + Tries to get a UINT32 value, returning a default value if it doesn't exist + + Attribute key + Default value + Value or default if key doesn't exist + + + + The Sample Rate (valid for audio media types) + + + + + The number of Channels (valid for audio media types) + + + + + The number of bits per sample (n.b. not always valid for compressed audio types) + + + + + The average bytes per second (valid for audio media types) + + + + + The Media Subtype. For audio, is a value from the AudioSubtypes class + + + + + The Major type, e.g. audio or video (from the MediaTypes class) + + + + + Access to the actual IMFMediaType object + Use to pass to MF APIs or Marshal.ReleaseComObject when you are finished with it + + + + + Major Media Types + http://msdn.microsoft.com/en-us/library/windows/desktop/aa367377%28v=vs.85%29.aspx + + + + + Default + + + + + Audio + + + + + Video + + + + + Protected Media + + + + + Synchronized Accessible Media Interchange (SAMI) captions. + + + + + Script stream + + + + + Still image stream. + + + + + HTML stream. + + + + + Binary stream. + + + + + A stream that contains data files. + + + + + Contains information about an input stream on a Media Foundation transform (MFT) + + + + + Maximum amount of time between an input sample and the corresponding output sample, in 100-nanosecond units. + + + + + Bitwise OR of zero or more flags from the _MFT_INPUT_STREAM_INFO_FLAGS enumeration. + + + + + The minimum size of each input buffer, in bytes. + + + + + Maximum amount of input data, in bytes, that the MFT holds to perform lookahead. + + + + + The memory alignment required for input buffers. If the MFT does not require a specific alignment, the value is zero. + + + + + Defines messages for a Media Foundation transform (MFT). + + + + + Requests the MFT to flush all stored data. + + + + + Requests the MFT to drain any stored data. + + + + + Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA). + + + + + Drop samples - requires Windows 7 + + + + + Command Tick - requires Windows 8 + + + + + Notifies the MFT that streaming is about to begin. + + + + + Notifies the MFT that streaming is about to end. + + + + + Notifies the MFT that an input stream has ended. + + + + + Notifies the MFT that the first sample is about to be processed. + + + + + Marks a point in the stream. This message applies only to asynchronous MFTs. Requires Windows 7 + + + + + Contains information about an output buffer for a Media Foundation transform. + + + + + Output stream identifier. + + + + + Pointer to the IMFSample interface. + + + + + Before calling ProcessOutput, set this member to zero. + + + + + Before calling ProcessOutput, set this member to NULL. + + + + + Contains information about an output stream on a Media Foundation transform (MFT). + + + + + Bitwise OR of zero or more flags from the _MFT_OUTPUT_STREAM_INFO_FLAGS enumeration. + + + + + Minimum size of each output buffer, in bytes. + + + + + The memory alignment required for output buffers. + + + + + Contains media type information for registering a Media Foundation transform (MFT). + + + + + The major media type. + + + + + The Media Subtype + + + + + Contains statistics about the performance of the sink writer. + + + + + The size of the structure, in bytes. + + + + + The time stamp of the most recent sample given to the sink writer. + + + + + The time stamp of the most recent sample to be encoded. + + + + + The time stamp of the most recent sample given to the media sink. + + + + + The time stamp of the most recent stream tick. + + + + + The system time of the most recent sample request from the media sink. + + + + + The number of samples received. + + + + + The number of samples encoded. + + + + + The number of samples given to the media sink. + + + + + The number of stream ticks received. + + + + + The amount of data, in bytes, currently waiting to be processed. + + + + + The total amount of data, in bytes, that has been sent to the media sink. + + + + + The number of pending sample requests. + + + + + The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. + + + + + Contains flags for registering and enumeration Media Foundation transforms (MFTs). + + + + + None + + + + + The MFT performs synchronous data processing in software. + + + + + The MFT performs asynchronous data processing in software. + + + + + The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. + + + + + The MFT that must be unlocked by the application before use. + + + + + For enumeration, include MFTs that were registered in the caller's process. + + + + + The MFT is optimized for transcoding rather than playback. + + + + + For enumeration, sort and filter the results. + + + + + Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER. + + + + + Indicates the status of an input stream on a Media Foundation transform (MFT). + + + + + None + + + + + The input stream can receive more data at this time. + + + + + Describes an input stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of input data must contain complete, unbroken units of data. + + + + + Each media sample that the client provides as input must contain exactly one unit of data, as defined for the MFT_INPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All input samples must be the same size. + + + + + MTF Input Stream Holds buffers + + + + + The MFT does not hold input samples after the IMFTransform::ProcessInput method returns. + + + + + This input stream can be removed by calling IMFTransform::DeleteInputStream. + + + + + This input stream is optional. + + + + + The MFT can perform in-place processing. + + + + + Defines flags for the IMFTransform::ProcessOutput method. + + + + + None + + + + + The MFT can still generate output from this stream without receiving any more input. + + + + + The format has changed on this output stream, or there is a new preferred format for this stream. + + + + + The MFT has removed this output stream. + + + + + There is no sample ready for this stream. + + + + + Indicates whether a Media Foundation transform (MFT) can produce output data. + + + + + None + + + + + There is a sample available for at least one output stream. + + + + + Describes an output stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of output data from the MFT contains complete, unbroken units of data. + + + + + Each output sample contains exactly one unit of data, as defined for the MFT_OUTPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All output samples are the same size. + + + + + The MFT can discard the output data from this output stream, if requested by the client. + + + + + This output stream is optional. + + + + + The MFT provides the output samples for this stream, either by allocating them internally or by operating directly on the input samples. + + + + + The MFT can either provide output samples for this stream or it can use samples that the client allocates. + + + + + The MFT does not require the client to process the output for this stream. + + + + + The MFT might remove this output stream during streaming. + + + + + Defines flags for processing output samples in a Media Foundation transform (MFT). + + + + + None + + + + + Do not produce output for streams in which the pSample member of the MFT_OUTPUT_DATA_BUFFER structure is NULL. + + + + + Regenerates the last output sample. + + + + + Process Output Status flags + + + + + None + + + + + The Media Foundation transform (MFT) has created one or more new output streams. + + + + + Defines flags for the setting or testing the media type on a Media Foundation transform (MFT). + + + + + None + + + + + Test the proposed media type, but do not set it. + + + + + Helper methods for working with audio buffers + + + + + Ensures the buffer is big enough + + + + + + + + Ensures the buffer is big enough + + + + + + + + these will become extension methods once we move to .NET 3.5 + + + + + Checks if the buffer passed in is entirely full of nulls + + + + + Converts to a string containing the buffer described in hex + + + + + Decodes the buffer using the specified encoding, stopping at the first null + + + + + Concatenates the given arrays into a single array. + + The arrays to concatenate + The concatenated resulting array. + + + + An encoding for use with file types that have one byte per character + + + + + The one and only instance of this class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A very basic circular buffer implementation + + + + + Create a new circular buffer + + Max buffer size in bytes + + + + Write data to the buffer + + Data to write + Offset into data + Number of bytes to write + number of bytes written + + + + Read from the buffer + + Buffer to read into + Offset into read buffer + Bytes to read + Number of bytes actually read + + + + Maximum length of this circular buffer + + + + + Number of bytes currently stored in the circular buffer + + + + + Resets the buffer + + + + + Advances the buffer, discarding bytes + + Bytes to advance + + + + A util class for conversions + + + + + linear to dB conversion + + linear value + decibel value + + + + dB to linear conversion + + decibel value + linear value + + + + Allows us to add descriptions to interop members + + + + + The description + + + + + Field description + + + + + String representation + + + + + + Helper to get descriptions + + + + + Describes the Guid by looking for a FieldDescription attribute on the specified class + + + + + HResult + + + + + S_OK + + + + + S_FALSE + + + + + E_INVALIDARG (from winerror.h) + + + + + MAKE_HRESULT macro + + + + + Helper to deal with the fact that in Win Store apps, + the HResult property name has changed + + COM Exception + The HResult + + + + Methods for converting between IEEE 80-bit extended double precision + and standard C# double precision. + + + + + Converts a C# double precision number to an 80-bit + IEEE extended double precision number (occupying 10 bytes). + + The double precision number to convert to IEEE extended. + An array of 10 bytes containing the IEEE extended number. + + + + Converts an IEEE 80-bit extended precision number to a + C# double precision number. + + The 80-bit IEEE extended number (as an array of 10 bytes). + A C# double precision number that is a close representation of the IEEE extended number. + + + + Pass-through stream that ignores Dispose + Useful for dealing with MemoryStreams that you want to re-use + + + + + The source stream all other methods fall through to + + + + + If true the Dispose will be ignored, if false, will pass through to the SourceStream + Set to true by default + + + + + Creates a new IgnoreDisposeStream + + The source stream + + + + Can Read + + + + + Can Seek + + + + + Can write to the underlying stream + + + + + Flushes the underlying stream + + + + + Gets the length of the underlying stream + + + + + Gets or sets the position of the underlying stream + + + + + Reads from the underlying stream + + + + + Seeks on the underlying stream + + + + + Sets the length of the underlying stream + + + + + Writes to the underlying stream + + + + + Dispose - by default (IgnoreDispose = true) will do nothing, + leaving the underlying stream undisposed + + + + + Support for Marshal Methods in both UWP and .NET 3.5 + + + + + SizeOf a structure + + + + + Offset of a field in a structure + + + + + Pointer to Structure + + + + + In-place and stable implementation of MergeSort + + + + + MergeSort a list of comparable items + + + + + MergeSort a list + + + + + General purpose native methods for internal NAudio use + + + + + WASAPI Out for Windows RT + + + + + Playback Stopped + + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + Desired latency in milliseconds + + + + Creates a new WASAPI Output + + Device to use + + + + + + Properties of the client's audio stream. + Set before calling init + + + + + Sets the parameters that describe the properties of the client's audio stream. + + Boolean value to indicate whether or not the audio stream is hardware-offloaded. + An enumeration that is used to specify the category of the audio stream. + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + Begin Playback + + + + + Stop playback and flush buffers + + + + + Stop playback without flushing buffers + + + + + Old init implementation. Use the func one + + + + + + + Initializes with a function to create the provider that is made on the playback thread + + Creates the wave provider + + + + Initialize for playing the specified wave stream + + + + + Playback State + + + + + Dispose + + + + + Some useful native methods for Windows 8/10 support ( https://msdn.microsoft.com/en-us/library/windows/desktop/hh802935(v=vs.85).aspx ) + + + + + Enables Windows Store apps to access preexisting Component Object Model (COM) interfaces in the WASAPI family. + + A device interface ID for an audio device. This is normally retrieved from a DeviceInformation object or one of the methods of the MediaDevice class. + The IID of a COM interface in the WASAPI family, such as IAudioClient. + Interface-specific activation parameters. For more information, see the pActivationParams parameter in IMMDevice::Activate. + + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + diff --git a/packages/NAudio.1.8.2/license.txt b/packages/NAudio.1.8.2/license.txt new file mode 100644 index 0000000..622a544 --- /dev/null +++ b/packages/NAudio.1.8.2/license.txt @@ -0,0 +1,31 @@ +Microsoft Public License (Ms-PL) + +This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. + +1. Definitions + +The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. + +A "contribution" is the original software, or any additions or changes to the software. + +A "contributor" is any person that distributes its contribution under this license. + +"Licensed patents" are a contributor's patent claims that read directly on its contribution. + +2. Grant of Rights + +(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. + +(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. + +3. Conditions and Limitations + +(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. + +(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. + +(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. + +(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. + +(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. \ No newline at end of file diff --git a/packages/NAudio.1.8.2/readme.txt b/packages/NAudio.1.8.2/readme.txt new file mode 100644 index 0000000..0ac6523 --- /dev/null +++ b/packages/NAudio.1.8.2/readme.txt @@ -0,0 +1,92 @@ +NAudio is an open source .NET audio library written by Mark Heath (mark.heath@gmail.com) +For more information, visit http://naudio.codeplex.com +NAudio is now being hosted on GitHub http://github.com/naudio/NAudio + +THANKS +====== +The following list includes some of the people who have contributed in various ways to NAudio, such as code contributions, +bug fixes, documentation, helping out on the forums and even donations. I haven't finished compiling this list yet, so +if your name should be on it but isn't please let me know and I will include it. Also, some people I only know by their forum +id, so if you want me to put your full name here, please also get in touch. + +in alphabetical order: +Alan Jordan +Alexandre Mutel +Alexander Binkert +AmandaTarafaMas +balistof +biermeester +borman11 +bradb +Brandon Hansen (kg6ypi) +csechet +ChunkWare Music Software +CKing +DaMacc +Dirk Eckhardt +Du10 +eejake52 +Florian Rosmann (filoe) +Freefall +Giawa +Harald Petrovitsch +Hfuy +Iain McCowan +Idael Cardaso +ioctlLR +Ivan Kochurkin (KvanTTT) +Jamie Michael Ewins +jannera +jbaker8935 +jcameron23 +JoeGaggler +jonahoffmann +jontdelorme +Jospin Software +Justin Frankel +K24A3 +Kamen Lichev +Kassoul +kevinxxx +kzych +LionCash +Lustild +Lucian Wischik (ljw1004) +ManuN +MeelMarcel +Michael Chadwick +Michael Feld +Michael J +Michael Lehenbauer +milligan22963 +myrkle +nelsonkidd +Nigel Redmon +Nikolaos Georgiou +Owen Skriloff +owoudenb +painmailer +PPavan +Pygmy +Ray Molenkamp +Roadz +Robert Bristow-Johnson +Scott Fleischman +Simon Clark +Sirish Bajpai +sporn +Steve Underwood +Ted Murphy +Tiny Simple Tools +Tobias Fleming +TomBogle +Tony Cabello +Tony Sistemas +TuneBlade +topher3683 +volmart +Vladimir Rokovanov +Ville Koskinen +Wyatt Rice +Yuval Naveh +Zsb diff --git a/packages/VulkanCore.1.0.0-alpha28/VulkanCore.1.0.0-alpha28.nupkg b/packages/VulkanCore.1.0.0-alpha28/VulkanCore.1.0.0-alpha28.nupkg new file mode 100644 index 0000000..f5e6653 Binary files /dev/null and b/packages/VulkanCore.1.0.0-alpha28/VulkanCore.1.0.0-alpha28.nupkg differ diff --git a/packages/VulkanCore.1.0.0-alpha28/lib/netstandard1.3/VulkanCore.xml b/packages/VulkanCore.1.0.0-alpha28/lib/netstandard1.3/VulkanCore.xml new file mode 100644 index 0000000..e2f85b9 --- /dev/null +++ b/packages/VulkanCore.1.0.0-alpha28/lib/netstandard1.3/VulkanCore.xml @@ -0,0 +1,21006 @@ + + + + VulkanCore + + + + + Structure containing callback functions for memory allocation. + + + + + Initializes a new instance of the structure. + + The application-defined memory allocation function. + The application-defined memory reallocation function. + The application-defined memory free function + + The application-defined function that is called by the implementation when the + implementation makes internal allocations. + + + The application-defined function that is called by the implementation when the + implementation frees internal allocations. + + + The value to be interpreted by the implementation of the callbacks. + + When any of the callbacks in are called, the Vulkan + implementation will pass this value as the first parameter to the callback. + + + This value can vary each time an allocator is passed into a command, even when the same + object takes an allocator in multiple commands. + + + + + + The value to be interpreted by the implementation of the callbacks. + + When any of the callbacks in are called, the Vulkan + implementation will pass this value as the first parameter to the callback. + + + This value can vary each time an allocator is passed into a command, even when the same + object takes an allocator in multiple commands. + + + + + + The application-defined memory allocation function. + + + + + Gets the application-defined memory reallocation function. + + + + + Gets the application-defined memory free function. + + + + + The application-defined function that is called by the implementation when the + implementation makes internal allocations. This value may be null. + + + + + The application-defined function that is called by the implementation when + the implementation frees internal allocations. This value may be null. + + + + + Application-defined memory allocation function. + + If this function is unable to allocate the requested memory, it must return . If the allocation was successful, it must return a valid handle to + memory allocation containing at least bytes, and with the pointer + value being a multiple of . + + + For example, this function (or ) could cause + termination of running Vulkan instance(s) on a failed allocation for debugging purposes, + either directly or indirectly. In these circumstances, it cannot be assumed that any part + of any affected objects are going to operate correctly (even ), and the application must ensure it cleans up properly via + other means (e.g. process termination). + + + If this function returns , and if the implementation is unable + to continue correct processing of the current command without the requested allocation, + it must treat this as a run-time error, and generate at the appropriate time for the command in which the + condition was detected. + + + If the implementation is able to continue correct processing of the current command + without the requested allocation, then it may do so, and must not generate as a result of this failed allocation. + + + + Value specified for in the allocator specified by the application. + + Size in bytes of the requested allocation. + + Requested alignment of the allocation in bytes and must be a power of two. + + + Value specifying the allocation scope of the lifetime of the allocation. + + + + + Application-defined memory reallocation function. + + Must return an allocation with enough space for bytes, and the + contents of the original allocation from bytes zero to `min(original size, new size) - 1` + must be preserved in the returned allocation. If is larger than + the old size, the contents of the additional space are undefined. If satisfying these + requirements involves creating a new allocation, then the old allocation should be freed. + + + If is , then the function must + behave equivalently to a call to with the same parameter + values (without ). + + + If is zero, then the function must behave equivalently to a call + to with the same parameter value, + and 'memory' equal to . + + + If is not , the implementation must + ensure that is equal to the + used to originally allocate . + + + If this function fails and is not + the application must not free the old allocation. + + This function must follow the same rules for return values as . + + + Value specified for in the allocator specified by the application. + + + Must be either or a pointer previously returned by or of the same allocator. + + Size in bytes of the requested allocation. + + Requested alignment of the allocation in bytes and must be a power of two. + + + Value specifying the allocation scope of the lifetime of the allocation. + + + + + Application-defined memory free function. + + may be , which the callback must + handle safely. If is not , it must be + a handle to previously allocated by or . The application should free this memory. + + + + Value specified for in the allocator specified + by the application. + + Allocation to be freed. + + + + Application-defined memory allocation notification function. + This is a purely informational callback. + + + Value specified for in the allocator specified by the application. + + Size in bytes of the requested allocation. + Requested type of an allocation. + + Value specifying the allocation scope of the lifetime of the allocation. + + + + + Application-defined memory free notification function. + + + Value specified for in the allocator specified by the application. + + Size in bytes of the requested allocation. + Requested type of an allocation. + + Value specifying the allocation scope of the lifetime of the allocation. + + + + + Allocation scope. + + + + + Specifies that the allocation is scoped to the duration of the Vulkan command. + + + + + Specifies that the allocation is scoped to the lifetime of the Vulkan object that is + being created or used. + + + + + Specifies that the allocation is scoped to the lifetime of a object. + + + + + Specifies that the allocation is scoped to the lifetime of the Vulkan device. + + + + + Specifies that the allocation is scoped to the lifetime of the Vulkan instance. + + + + + Allocation type. + + + + + Specifies that the allocation is intended for execution by the host. + + + + + Provides AMD specific extension methods for the class. + + + + + Perform an indirect draw with the draw count sourced from a buffer. + + Behaves similar to except that the draw count + is read by the device from a buffer during execution. + + + The command will read an unsigned 32-bit integer from + located at and use this as the draw count. + + + The command buffer into which the command is recorded. + The buffer containing draw parameters. + + The byte offset into where parameters begin. + + The buffer containing the draw count. + + The byte offset into where the draw count begins. + + + Specifies the maximum number of draws that will be executed. + + The actual number of executed draw calls is the minimum of the count specified in + and . + + + The byte stride between successive sets of draw parameters. + + + + Perform an indexed indirect draw with the draw count sourced from a buffer. + + Behaves similar to except that the draw count is + read by the device from a buffer during execution. + + + The command will read an unsigned 32-bit integer from + located at and use this as the draw count. + + + The command buffer into which the command is recorded. + The buffer containing draw parameters. + + The byte offset into where parameters begin. + + The buffer containing the draw count. + + The byte offset into where the draw count begins. + + + Specifies the maximum number of draws that will be executed. + + The actual number of executed draw calls is the minimum of the count specified in + and . + + + The byte stride between successive sets of draw parameters. + + + + Structure defining rasterization order for a graphics pipeline. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies the primitive rasterization order to use. + + + + + Initializes a new instance of the structure. + + Specifies the primitive rasterization order to use. + + Is or a pointer to an extension-specific structure. + + + + + Specify rasterization order for a graphics pipeline. + + + + + Specifies that the order of these operations for each primitive in a subpass must occur + in primitive order. + + + + + Specifies that the order of these operations for each primitive in a subpass may not + occur in primitive order. + + + + + Structure informing whether or not texture gather bias/LOD functionality is + supported for a given image format and a given physical device. + + + + + The type of this structure. + + + + + Is . + + + + + Tells if the image format can be used with texture gather bias/LOD functions, as + introduced by the "VK_AMD_texture_gather_bias_lod" extension. This field is set by the + implementation. User-specified value is ignored. + + + + + Vulkan boolean type. + + true represents a boolean True (integer 1) value, and false a boolean False + (integer 0) value. + + + + + + Initializes a new instance of the struct. + + + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a boolean indicating whether the given is equal to this instance. + + The to compare this instance to. + + true if the other is equal to this instance; false otherwise. + + + + + Returns a boolean indicating whether the given is equal to this instance. + + The to compare against. + + true if the is equal to this instance; false otherwise. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given booleans are equal. + + The first boolean to compare. + The second boolean to compare. + true if the booleans are equal; false otherwise. + + + + Returns a boolean indicating whether the two given booleans are not equal. + + The first boolean to compare. + The second boolean to compare. + + true if the booleans are not equal; false if they are equal. + + + + + Performs an implicit conversion from to . + + The value to convert. + + + + Performs an implicit conversion from to . + + The value to convert. + + + + Performs an implicit conversion from to . + + The value to convert. + + + + Performs an implicit conversion from to . + + The value to convert. + + + + Opaque handle to a buffer object. + + Buffers represent linear arrays of data which are used for various purposes by binding them + to a graphics or compute pipeline via descriptor sets or via certain commands, or by directly + specifying them as parameters to certain commands. + + + + + + Gets the parent of the resource. + + + + + Bind device memory to a buffer object. + Must not already be backed by a memory object. + Must not have been created with any sparse memory binding flags. + + The object describing the device memory to attach. + + The start offset of the region of memory which is to be bound to the buffer. The number + of bytes returned in the member in memory, starting + from bytes, will be bound to the specified buffer. + + Vulkan returns an error code. + + + + Create a new buffer view object. + + + The structure containing parameters to be used to create the buffer. + + Controls host memory allocation. + Vulkan returns an error code. + + + + Returns the memory requirements for the buffer. + + Memory requirements of the buffer object. + + + + Destroy a buffer object. + + + + + Structure specifying the parameters of a newly created buffer object. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask specifying additional parameters of the buffer. + + + + + The size in bytes of the buffer to be created. + + + + + A bitmask specifying allowed usages of the buffer. + + + + + The sharing mode of the buffer when it will be accessed by multiple queue families. + + + + + A list of queue families that will access this buffer (ignored if is not ). + + + + + Initializes a new instance of the structure. + + The size in bytes of the buffer to be created. + The bitmask specifying allowed usages of the buffer. + A bitmask specifying additional parameters of the buffer. + + The sharing mode of the buffer when it will be accessed by multiple queue families. + + + A list of queue families that will access this buffer (ignored if is not ). + + + Is or a pointer to an extension-specific structure. + + + + + Bitmask specifying allowed usages of a buffer. + + + + + Specifies that the buffer can be used as the source of a transfer command. (see the + definition of ). + + + + + Specifies that the buffer can be used as the destination of a transfer command. + + + + + Specifies that the buffer can be used to create a suitable for + occupying a slot of type . + + + + + Specifies that the buffer can be used to create a suitable for + occupying a slot of type . + + + + + Specifies that the buffer can be used in a suitable + for occupying a slot either of type or . + + + + + Specifies that the buffer can be used in a suitable + for occupying a slot either of type or . + + + + + Specifies that the buffer is suitable for passing as the buffer parameter to . + + + + + Specifies that the buffer is suitable for passing as an element of the pBuffers array to + . + + + + + Specifies that the buffer is suitable for passing as the buffer parameter to , , or . It is also suitable for passing as the member, or or member. + + + + + Bitmask specifying additional parameters of a buffer. + + + + + No flags. + + + + + Specifies that the buffer will be backed using sparse memory binding. + + + + + Specifies that the buffer can be partially backed using sparse memory binding. Buffers + created with this flag must also be created with the flag. + + + + + Specifies that the buffer will be backed using sparse memory binding with memory ranges + that might also simultaneously be backing another buffer (or another portion of the same + buffer). Buffers created with this flag must also be created with the flag. + + + + + Structure specifying memory requirements. + + + + + The size, in bytes, of the memory allocation required for the resource. + + + + + The alignment, in bytes, of the offset within the allocation required for the resource. + + + + + A bitmask that contains one bit set for every supported memory type for the resource. Bit + `i` is set if and only if the memory type `i` in the structure for the physical device is supported + for the resource. + + + + + Buffer and image sharing modes. + + + + + Specifies that access to any range or image subresource of the object will be + exclusive to a single queue family at a time. + + + + + Specifies that concurrent access to any range or image subresource of the + object from multiple queue families is supported. + + + + + Opaque handle to a buffer view object. + + A buffer view represents a contiguous range of a buffer and a specific format to be used to + interpret the data. Buffer views are used to enable shaders to access buffer contents + interpreted as formatted data. + + + + + + Gets the parent of the resource. + + + + + Destroy a buffer view object. + + + + + Structure specifying parameters of a newly created buffer view. + + + + + The format of the data elements in the buffer. + + + + + An offset in bytes from the base address of the buffer. Accesses to the buffer view from + shaders use addressing that is relative to this starting offset. + Must be less than the size of buffer. + Must be a multiple of . + + + + + A size in bytes of the buffer view. If range is equal to , the range from offset to the end of the buffer is used. If + is used and the remaining size of the buffer is not a + multiple of the element size of format, then the nearest smaller multiple is used. + + + + + Initializes a new instance of the structure. + + The format of the data elements in the buffer. + + An offset in bytes from the base address of the buffer. Accesses to the buffer view from + shaders use addressing that is relative to this starting offset. + Must be less than the size of buffer. + Must be a multiple of . + + + A size in bytes of the buffer view. If range is equal to , the range from offset to the end of the buffer is used. If + is used and the remaining size of the buffer is not a + multiple of the element size of format, then the nearest smaller multiple is used. + + + + + Structure specifying color value when the format of the image or attachment is one of the + formats other than signed integer or unsigned integer. Floating point values are + automatically converted to the format of the image. + + + + + Gets a with all of its components set to zero. + + + + + The red component of the color. + + + + + The green component of the color. + + + + + The blue component of the color. + + + + + The alpha component of the color. + + + + + Initializes a new instance of the structure. + + The red component. + The green component. + The blue component. + The alpha component. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Structure specifying color value when the format of the image or attachment is signed + integer. Signed integer values are converted to the format of the image by casting to the + smaller type (with negative 32-bit values mapping to negative values in the smaller type). If + the integer value is not representable in the target type (e.g. would overflow in conversion + to that type), the value is undefined. + + + + + Gets a with all of its components set to zero. + + + + + The red component of the color. + + + + + The green component of the color. + + + + + The blue component of the color. + + + + + The alpha component of the color. + + + + + Initializes a new instance of the structure. + + The red component. + The green component. + The blue component. + The alpha component. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Structure specifying color value when the format of the image or attachment is unsigned + integer. Unsigned integer values are converted to the format of the image by casting to the + integer type with fewer bits. + + + + + Gets a with all of its components set to zero. + + + + + The red component of the color. + + + + + The green component of the color. + + + + + The blue component of the color. + + + + + The alpha component of the color. + + + + + Initializes a new instance of the structure. + + The red component. + The green component. + The blue component. + The alpha component. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Opaque handle to a command buffer object. + + Command buffers are objects used to record commands which can be subsequently submitted to a + device queue for execution. There are two levels of command buffers - primary command + buffers, which can execute secondary command buffers, and which are submitted to queues, and + secondary command buffers, which can be executed by primary command buffers, and which are + not directly submitted to queues. + + + + + + Gets the parent of the resource. + + + + + Start recording the command buffer. + + + Defines additional information about how the command buffer begins recording. + + Vulkan returns an error code. + + + + Finish recording the command buffer. + + Vulkan returns an error code. + + + + Reset a command buffer to the initial state. + + + A bitmask controlling the reset operation. + + If flags includes , then most or + all memory resources currently owned by the command buffer should be returned to the + parent command pool. If this flag is not set, then the command buffer may hold onto + memory resources and reuse them when recording commands. + + + Vulkan returns an error code. + + + + Bind a pipeline object to a command buffer. + + + Specifies whether pipeline will be bound as a compute or graphics pipeline. There are + separate bind points for each of graphics and compute, so binding one does not disturb + the other. + + The pipeline to be bound. + + + + Set the viewport on a command buffer. + + If the bound pipeline state object was not created with the dynamic state enabled, viewport transformation parameters + are specified using the member in + the pipeline state object. If the pipeline state object was created with the dynamic state enabled, the viewport transformation + parameters are dynamically set and changed with this command. + + + Specifies viewport parameters. + + + + Set the viewport on a command buffer. + + If the bound pipeline state object was not created with the dynamic state enabled, viewport transformation parameters + are specified using the member in + the pipeline state object. If the pipeline state object was created with the dynamic state enabled, the viewport transformation + parameters are dynamically set and changed with this command. + + + + The index of the first viewport whose parameters are updated by the command. + + + The index of the first viewport whose parameters are updated by the command. + + Structures specifying viewport parameters. + + + + Set the dynamic scissor rectangles on a command buffer. + + The scissor test determines if a fragment’s framebuffer coordinates (xf,yf) lie within + the scissor rectangle corresponding to the viewport index used by the primitive that + generated the fragment. If the pipeline state object is created without enabled then the scissor rectangles are set by the state of the pipeline state object. + Otherwise, to dynamically set the scissor rectangles call this command. + + + Defines scissor rectangle. + + + + Set the dynamic scissor rectangles on a command buffer. + + The scissor test determines if a fragment’s framebuffer coordinates (xf,yf) lie within + the scissor rectangle corresponding to the viewport index used by the primitive that + generated the fragment. If the pipeline state object is created without enabled then the scissor rectangles are set by the state of the pipeline state object. + Otherwise, to dynamically set the scissor rectangles call this command. + + + + The index of the first scissor whose state is updated by the command. + + + The number of scissors whose rectangles are updated by the command. + + Structures defining scissor rectangles. + + + + Set the dynamic line width state. + + The line width is set by the + property in the currently active pipeline if the pipeline was not created with enabled. Otherwise, the line width is set by calling this command. + + + The width of rasterized line segments. + + + + Set the depth bias dynamic state. + + The depth values of all fragments generated by the rasterization of a polygon can be + offset by a single value that is computed for that polygon. This behavior is controlled + by the , members, or by the + corresponding parameters to the this command if depth bias state is dynamic. + + + + A scalar factor controlling the constant depth value added to each fragment. + + The maximum (or minimum) depth bias of a fragment. + + A scalar factor applied to a fragment’s slope in depth bias calculations. + + + + + Set the values of blend constants. + + + The R, G, B, and A components of the blend constant color used in blending, depending on + the blend factor. + + + + + Set the depth bounds test values for a command buffer. + + The depth bounds test conditionally disables coverage of a sample based on the outcome of + a comparison between the value za in the depth attachment at location (xf,yf) (for the + appropriate sample) and a range of values. The test is enabled or disabled by the member. If the + pipeline state object is created without the + dynamic state enabled then the range of values used in the depth bounds test are defined + by the and members. Otherwise, to + dynamically set the depth bounds range values call this command. + + + + The lower bound of the range of depth values used in the depth bounds test. + + The upper bound of the range. + + + + Set the stencil compare mask dynamic state. + + If the pipeline state object is created with the dynamic state enabled, then to dynamically set + the stencil compare mask call this command. + + + + A bitmask specifying the set of stencil state for which to update the compare mask. + + The new value to use as the stencil compare mask. + + + + Set the stencil write mask dynamic state. + + If the pipeline state object is created with the dynamic state enabled, then to dynamically set the + stencil write mask call this command. + + + + Specifies the set of stencil state for which to update the write mask. + + The new value to use as the stencil write mask. + + + + Set the stencil reference dynamic state. + + If the pipeline state object is created with the dynamic state enabled, then to dynamically set the + stencil reference value call this command. + + + + Specifies the set of stencil state for which to update the reference value. + + the new value to use as the stencil reference value. + + + + Binds descriptor set to a command buffer. + + + Indicates whether the descriptors will be used by graphics pipelines or compute + pipelines. There is a separate set of bind points for each of graphics and compute, so + binding one does not disturb the other. + + A object used to program the bindings. + + Handle to a object describing the descriptor set to write to. + + Value specifying dynamic offset. + + + + Binds descriptor sets to a command buffer. + + + Indicates whether the descriptors will be used by graphics pipelines or compute + pipelines. There is a separate set of bind points for each of graphics and compute, so + binding one does not disturb the other. + + A object used to program the bindings. + The set number of the first descriptor set to be bound. + + Handles to objects describing the descriptor sets to write to. + + Values specifying dynamic offsets. + + + + Bind an index buffer to a command buffer. + + The buffer being bound. + + The starting offset in bytes within buffer used in index buffer address calculations. + + Selects whether indices are treated as 16 bits or 32 bits. + + + + Bind vertex buffer to a command buffer. + + The handle. + The offsets. + + + + Bind vertex buffers to a command buffer. + + + The index of the first vertex input binding whose state is updated by the command. + + + The number of vertex input bindings whose state is updated by the command. + + An array of handles. + An array of offsets. + + + + Draw primitives. + + When the command is executed, primitives are assembled using the current primitive + topology and consecutive vertex indices with the first + vertex index value equal to . The primitives are drawn + times with instance index starting with and increasing sequentially for each instance. The assembled + primitives execute the currently bound graphics pipeline. + + + The number of vertices to draw. + The number of instances to draw. + The index of the first vertex to draw. + The instance id of the first instance to draw. + + + + Issue an indexed draw into a command buffer. + + When the command is executed, primitives are assembled using the current primitive + topology and vertices whose indices are retrieved from the + index buffer. The index buffer is treated as an array of tightly packed unsigned integers + of size defined by the index type parameter with which + the buffer was bound. + + + The number of vertices to draw. + The number of instances to draw. + The base index within the index buffer. + + The value added to the vertex index before indexing into the vertex buffer. + + The instance id of the first instance to draw. + + + + Issue an indirect draw into a command buffer. + + Behaves similarly to except that the parameters are read by the + device from a buffer during execution. draws are executed by + the command, with parameters taken from buffer starting at and + increasing by bytes for each successive draw. If is less than or equal to one, is ignored. + + + The buffer containing draw parameters. + The byte offset into buffer where parameters begin. + The number of draws to execute, and can be zero. + The byte stride between successive sets of draw parameters. + + + + Perform an indexed indirect draw. + + Behaves similarly to except that the parameters are read by + the device from a buffer during execution. draws are + executed by the command, with parameters taken from buffer starting at and increasing by bytes for each successive + draw. If is less than or equal to one, is ignored. + + + The buffer containing draw parameters. + The byte offset into buffer where parameters begin. + The number of draws to execute, and can be zero. + The byte stride between successive sets of draw parameters. + + + + Dispatch compute work items. + + When the command is executed, a global workgroup consisting of x × y × z local workgroups + is assembled. + + + The number of local workgroups to dispatch in the X dimension. + The number of local workgroups to dispatch in the Y dimension. + The number of local workgroups to dispatch in the Z dimension. + + + + Dispatch compute work items using indirect parameters. + + Behaves similarly to except that the parameters are read by the + device from a buffer during execution. + + + The buffer containing dispatch parameters. + The byte offset into buffer where parameters begin. + + + + Copy data between buffer regions. + + Each region in is copied from the source buffer to the same + region of the destination buffer. and can be the same buffer or alias the same memory, but the result is + undefined if the copy regions overlap in memory. + + + The source buffer. + The destination buffer. + Structures specifying the regions to copy. + + + + Copy data between images. + + The source image. + The current layout of the source image subresource. + The destination image. + The current layout of the destination image subresource. + Structures specifying the regions to copy. + + + + Copy regions of an image, potentially performing format conversion, arbitrary scaling, + and filtering. + + Must not be used for multisampled source or destination images. Use for this purpose. + + + The source image. + The layout of the source image subresources for the blit. + The source image. + + The layout of the destination image subresources for the blit. + + Structures specifying the regions to blit. + Specifies the filter to apply if the blits require scaling. + + + + Copy data from a buffer into an image. + + Each region in is copied from the specified region of the + source buffer to the specified region of the destination image. + + + The source buffer. + The destination image. + + The layout of the destination image subresources for the copy. + + Structures specifying the regions to copy. + + + + Copy image data into a buffer. + + Each region in is copied from the specified region of the + source image to the specified region of the destination buffer. + + + The source image. + The layout of the source image subresources for the copy. + The destination buffer. + Structures specifying the regions to copy. + + + + Update a buffer's contents from host memory. + + must be less than or equal to 65536 bytes. For larger + updates, applications can use buffer to buffer copies. + + + Is only allowed outside of a render pass. This command is treated as "transfer" + operation, for the purposes of synchronization barriers. The must be specified in usage of in order for the buffer to be compatible with . + + + A handle to the buffer to be updated. + + The byte offset into the buffer to start updating, and must be a multiple of 4. + + The number of bytes to update, and must be a multiple of 4. + + A pointer to the source data for the buffer update, and must be at least bytes in size. + + + + + Fill a region of a buffer with a fixed value. + + Is treated as "transfer" operation for the purposes of synchronization barriers. The must be specified in usage of in order for the buffer to be compatible with . + + + The buffer to be filled. + + The byte offset into the buffer at which to start filling, and must be a multiple of 4. + + + the number of bytes to fill, and must be either a multiple of 4, or to fill the range from offset to the end of the buffer. If is used and the remaining size of the buffer is not a multiple of 4, + then the nearest smaller multiple is used. + + + The 4-byte word written repeatedly to the buffer to fill size bytes of data. The data + word is written to memory according to the host endianness. + + + + + Clear regions of a color image. + + Each specified range in is cleared to the value specified by + . + + + The image to be cleared. + + Specifies the current layout of the image subresource ranges to be cleared, and must be + or . + + + Contains the values the image subresource ranges will be cleared to. + + + Structures that describe a range of mipmap levels, array layers, and aspects to be + cleared. The aspect mask of all image subresource ranges must only include . + + + + + Fill regions of a combined depth/stencil image. + + The image to be cleared. + + Specifies the current layout of the image subresource ranges to be cleared, and must be + or . + + + Structure that contains the values the depth and stencil image subresource ranges will be + cleared to. + + + Structures that describe a range of mipmap levels, array layers, and aspects to be + cleared. The aspect mask of each image subresource range in can + include if the image format has a depth component, + and if the image format has a stencil component. + + + + + Clear regions within currently bound framebuffer attachments. + + Can clear multiple regions of each attachment used in the current subpass of a render + pass instance. This command must be called only inside a render pass instance, and + implicitly selects the images to clear based on the current framebuffer attachments and + the command parameters. + + + + Structures defining the attachments to clear and the clear values to use. + + + Structures defining regions within each selected attachment to clear. + + + + + Resolve regions of an image. + + During the resolve the samples corresponding to each pixel location in the source are + converted to a single sample before being written to the destination. If the source + formats are floating-point or normalized types, the sample values for each pixel are + resolved in an implementation-dependent manner. If the source formats are integer types, + a single sample’s value is selected for each pixel. + + + The source image. + The layout of the source image subresources for the resolve. + The destination image. + + The layout of the destination image subresources for the resolve. + + Structures specifying the regions to resolve. + + + + Set an event object to signaled state. + + When is submitted to a queue, it defines an execution + dependency on commands that were submitted before it, and defines an event signal + operation which sets the event to the signaled state. + + + The event that will be signaled. + + Specifies the source stage mask used to determine when the is signaled. + + + + + Reset an event object to non-signaled state. + + When is submitted to a queue, it defines an execution + dependency on commands that were submitted before it, and defines an event unsignal + operation which resets the event to the unsignaled state. + + + The event that will be unsignaled. + + Specifies the source stage mask used to determine when the is unsignaled. + + + + + Wait for one or more events and insert a set of memory. + + When is submitted to a queue, it defines a memory dependency + between prior event signal operations, and subsequent commands. + + + Event object handles to wait on. + The source stage mask. + The destination stage mask. + An array of structures. + An array of structures. + An array of structures. + + + + Wait for an event and insert a set of memory. + + When is submitted to a queue, it defines a memory dependency + between prior event signal operations, and subsequent commands. + + + Event object handle to wait on. + The source stage mask. + The destination stage mask. + An array of structures. + An array of structures. + An array of structures. + + + + Insert a memory dependency. + + When the command is submitted to a queue, it defines a memory dependency between commands + that were submitted before it, and those submitted after it. + + + Defines a source stage mask. + Defines a destination stage mask. + a bitmask of . + An array of structures. + An array of structures. + An array of structures. + + + + Begin a query. + + The query pool that will manage the results of the query. + The query index within the query pool that will contain the results. + + A bitmask indicating constraints on the types of queries that can be performed. + + + + + Ends a query. + + As queries operate asynchronously, ending a query does not immediately set the query’s + status to available. A query is considered finished when the final results of the query + are ready to be retrieved by and , and this is when the query’s status is set to available. + + + Once a query is ended the query must finish in finite time, unless the state of the query + is changed using other commands, e.g. by issuing a reset of the query. + + + The query pool that is managing the results of the query. + The query index within the query pool where the result is stored. + + + + Reset queries in a query pool. + + When executed on a queue, this command sets the status of query indices [firstQuery, + firstQuery + queryCount - 1] to unavailable. + + + The handle of the query pool managing the queries being reset. + The initial query index to reset. + The number of queries to reset. + + + + Write a device timestamp into a query object. + + Latches the value of the timer when all previous commands have completed executing as far + as the specified pipeline stage, and writes the timestamp value to memory. When the + timestamp value is written, the availability status of the query is set to available. + + + Specifies a stage of the pipeline. + The query pool that will manage the timestamp. + The query within the query pool that will contain the timestamp. + + + + Copy the results of queries in a query pool to a buffer object. + + Is guaranteed to see the effect of previous uses of in + the same queue, without any additional synchronization. Thus, the results will always + reflect the most recent use of the query. + + + + The query pool managing the queries containing the desired results. + + The initial query index. + + The number of queries. and + together define a range of queries. + + Buffer object that will receive the results of the copy command. + An offset into . + + The stride in bytes between results for individual queries within . The required size of the backing memory for is determined as described above for . + + A bitmask specifying how and when results are returned. + + + + Update the values of push constants. + + The pipeline layout used to program the push constant updates. + + A bitmask specifying the shader stages that will use the push constants in the updated range. + + Must match exactly the shader stages used in for the range + specified by and . + + + + The start offset of the push constant range to update, in units of bytes. + Must be a multiple of 4. + Must be less than . + + + The size of the push constant range to update, in units of bytes. + Must be a multiple of 4. + + Must be less than or equal to + minus . + + + + An array of bytes containing the new push constant values. + + + + + Begin a new render pass. + + After beginning a render pass instance, the command buffer is ready to record the + commands for the first subpass of that render pass. + + + + Indicates the render pass to begin an instance of, and the framebuffer the instance uses. + + Specifies how the commands in the first subpass will be provided. + + + + Transition to the next subpass of a render pass. + + The subpass index for a render pass begins at zero when + is recorded, and increments each time is recorded. + + + Moving to the next subpass automatically performs any multisample resolve operations in + the subpass being ended. End-of-subpass multisample resolves are treated as color + attachment writes for the purposes of synchronization. That is, they are considered to + execute in the pipeline stage and + their writes are synchronized with . + Synchronization between rendering within a subpass and any resolve operations at the end + of the subpass occurs automatically, without need for explicit dependencies or pipeline + barriers. However, if the resolve attachment is also used in a different subpass, an + explicit dependency is needed. + + + After transitioning to the next subpass, the application can record the commands for that subpass. + + + + Specifies how the commands in the next subpass will be provided, in the same fashion as + the corresponding parameter of . + + + + + End the current render pass. + + Ending a render pass instance performs any multisample resolve operations on the final subpass. + + + + + + Execute a secondary command buffer from a primary command buffer. + + A secondary command buffer must not be directly submitted to a queue. Instead, secondary + command buffers are recorded to execute as part of a primary command buffer with this command. + + + + Secondary command buffer handle, which is recorded to execute in the primary command buffer. + + + + + Execute a secondary command buffer from a primary command buffer. + + A secondary command buffer must not be directly submitted to a queue. Instead, secondary + command buffers are recorded to execute as part of a primary command buffer with this command. + + + + Secondary command buffer handles, which are recorded to execute in the primary command + buffer in the order they are listed in the array. + + + + + Free command buffer. + + + + + Structure specifying the allocation parameters for command buffer object. + + + + + Specifies the command buffer level. + + + + + The number of command buffers to allocate from the pool. + + + + + Inititializes a new instance of the structure. + + Specifies the command buffer level. + The number of command buffers to allocate from the pool. + + + + Enumerant specifying a command buffer level. + + + + + Specifies a primary command buffer. + + + + + Specifies a secondary command buffer. + + + + + Structure specifying a command buffer begin operation. + + + + + A bitmask specifying usage behavior for the command buffer. + + + + + Structure, which is used if command buffer is a secondary command buffer. + If it is a primary command buffer, then this value is ignored. + + + + + Initializes a new instance of the structure. + + A bitmask specifying usage behavior for the command buffer. + + Structure, which is used if command buffer is a secondary command buffer. + If it is a primary command buffer, then this value is ignored. + + + + + Bitmask specifying usage behavior for command buffer. + + + + + No flags. + + + + + Specifies that each recording of the command buffer will only be submitted once, and the + command buffer will be reset and recorded again between each submission. + + + + + Specifies that a secondary command buffer is considered to be entirely inside a render pass. + If this is a primary command buffer, then this bit is ignored. + + + + + Specifies that a command buffer can be resubmitted to a queue while it is in the pending + State, and recorded into multiple primary command buffers. + + + + + Structure specifying command buffer inheritance info. + + + + + A object defining which render passes the will be compatible with and can be executed within. If the will not be executed within a render pass instance, is ignored. + + + + + The index of the subpass within the render pass instance that the will be executed within. If the will + not be executed within a render pass instance, subpass is ignored. + + + + + Optionally refers to the object that the will be rendering to if it is executed within a render pass + instance. It can be 0 if the framebuffer is not known, or if the will not be executed within a render pass instance. + + Specifying the exact framebuffer that the secondary command buffer will be executed with + may result in better performance at command buffer execution time. + + + + + + Indicates whether the command buffer can be executed while an occlusion query is active + in the primary command buffer. If this is true, then this command buffer can be + executed whether the primary command buffer has an occlusion query active or not. If this + is false, then the primary command buffer must not have an occlusion query active. + + + + + Indicates the query flags that can be used by an active occlusion query in the primary + command buffer when this secondary command buffer is executed. If this value includes the + bit, then the active query can return boolean + results or actual sample counts. If this bit is not set, then the active query must not + use the bit. + + + + + Specifies the set of pipeline statistics that can be counted by an active query in the + primary command buffer when this secondary command buffer is executed. If this value + includes a given bit, then this command buffer can be executed whether the primary + command buffer has a pipeline statistics query active that includes this bit or not. If + this value excludes a given bit, then the active pipeline statistics query must not be + from a query pool that counts that statistic. + + + + + Bitmask specifying constraints on a query. + + + + + No flags. + + + + + Specifies the precision of occlusion queries. + + + + + Bitmask specifying queried pipeline statistics. + + + + + No flags. + + + + + Specifies that queries managed by the pool will count the number of vertices processed by + the input assembly stage. + Vertices corresponding to incomplete primitives may contribute to the count. + + + + + Specifies that queries managed by the pool will count the number of primitives processed + by the input assembly stage. + + If primitive restart is enabled, restarting the primitive topology has no effect on the count. + + Incomplete primitives may be counted. + + + + + Specifies that queries managed by the pool will count the number of vertex shader invocations. + This counter's value is incremented each time a vertex shader is invoked. + + + + + Specifies that queries managed by the pool will count the number of geometry shader invocations. + This counter's value is incremented each time a geometry shader is invoked. + + In the case of instanced geometry shaders, the geometry shader invocations count is + incremented for each separate instanced invocation. + + + + + + Specifies that queries managed by the pool will count the number of primitives generated + by geometry shader invocations. + The counter's value is incremented each time the geometry shader emits a primitive. + + Restarting primitive topology using the SPIR-V instructions OpEndPrimitive or + OpEndStreamPrimitive has no effect on the geometry shader output primitives count. + + + + + + Specifies that queries managed by the pool will count the number of primitives processed + by the primitive clipping stage of the pipeline. + + The counter's value is incremented each time a primitive reaches the primitive clipping stage. + + + + + + Specifies that queries managed by the pool will count the number of primitives output by + the primitive clipping stage of the pipeline. + + The counter's value is incremented each time a primitive passes the primitive clipping stage. + + + The actual number of primitives output by the primitive clipping stage for a particular + input primitive is implementation-dependent but must satisfy the following conditions: + + + ** If at least one vertex of the input primitive lies inside the clipping volume, the + counter is incremented by one or more. + + ** Otherwise, the counter is incremented by zero or more. + + + + + Specifies that queries managed by the pool will count the number of fragment shader invocations. + The counter's value is incremented each time the fragment shader is invoked. + + + + + Specifies that queries managed by the pool will count the number of patches processed by + the tessellation control shader. + + The counter's value is incremented once for each patch for which a tessellation control + shader is invoked. + + + + + + Specifies that queries managed by the pool will count the number of invocations of the + tessellation evaluation shader. + + The counter's value is incremented each time the tessellation evaluation shader is invoked. + + + + + + Specifies that queries managed by the pool will count the number of compute shader invocations. + The counter's value is incremented every time the compute shader is invoked. + + Implementations may skip the execution of certain compute shader invocations or execute + additional compute shader invocations for implementation-dependent reasons as long as the + results of rendering otherwise remain unchanged. + + + + + + Bitmask controlling behavior of a command buffer reset. + + + + + No flags. + + + + + Specifies that most or all memory resources currently owned by the command buffer should + be returned to the parent command pool. + + If this flag is not set, then the command buffer may hold onto memory resources and reuse + them when recording commands. + + Command buffer is moved to the initial state. + + + + + Type of index buffer indices. + + + + + Specifies that indices are 16-bit unsigned integer values. + + + + + Specifies that indices are 32-bit unsigned integer values. + + + + + Bitmask specifying sets of stencil state for which to update the compare mask. + + + + + Specifies that only the front set of stencil state is updated. + + + + + Specifies that only the back set of stencil state is updated. + + + + + Is the combination of and , and specifies that both + sets of stencil state are updated. + + + + + Structure specifying a buffer copy operation. + + + + + The starting offset in bytes from the start of source buffer. + + + + + The starting offset in bytes from the start of destination buffer. + + + + + The number of bytes to copy. + + + + + Initializes a new instance of the structure. + + The starting offset in bytes from the start of source buffer. + The starting offset in bytes from the start of destination buffer. + The number of bytes to copy. + + + + Structure specifying an image copy operation. + + + + + Specifies the image subresource of the image used for the source image data. + + + + + Selects the initial x, y, and z offsets in texels of the sub-region of the source image data. + + + + + Specifies the image subresource of the image used for the destination image data. + + + + + Selects the initial x, y, and z offsets in texels of the sub-region of the source image data. + + + + + The size in texels of the source image to copy in width, height and depth. + + + + + Structure specifying a image subresource layers. + + + + + A combination of selecting the color, depth and/or stencil + aspects to be copied. + Must not contain . + + + + + The mipmap level to copy from. + + Must be less than the specified when the image + was created. + + + + + + The starting layer. + + Must be less than or equal to the arrayLayers specified in + when the image was created. + + + + + + The number of layers to copy. + + + + + Initializes a new instance of the structure. + + + A combination of selecting the color, depth and/or stencil + aspects to be copied. + + The mipmap level to copy from. + The starting layer. + The number of layers to copy. + + + + Structure specifying an image blit operation. + + + + + The subresource to blit from. + + + + + Specifies the bounds of the first source region within . + + + + + Specifies the bounds of the second source region within . + + + + + The subresource to blit into. + + + + + Specifies the bounds of the first destination region within . + + + + + Specifies the bounds of the second destination region within . + + + + + Structure specifying a buffer image copy operation. + + + + + the offset in bytes from the start of the buffer object where the image data is copied + from or to. + Must be a multiple of 4. + + + + + Specifies the data in buffer memory as a subregion of a larger two- or three-dimensional + image, and control the addressing calculations of data in buffer memory. If this value is + zero, that aspect of the buffer memory is considered to be tightly packed according to + the . + Must be 0, or greater than or equal to the width member. + of imageExtent. + + + + + Specifies the data in buffer memory as a subregion of a larger two- or three-dimensional + image, and control the addressing calculations of data in buffer memory. If this value is + zero, that aspect of the buffer memory is considered to be tightly packed according to + the . + Must be 0, or greater than or equal to the height member of . + + + + + Used to specify the specific image subresources of the image used for the source or + destination image data. + + + + + Selects the initial x, y, z offsets in texels of the sub-region of the source or + destination image data. + + + + + The size in texels of the image to copy in width, height and depth. + + + + + Structure specifying a clear color value. + + + + + Are the color clear values when the format of the image or attachment is one of the + formats other than signed integer or unsigned integer. Floating point values are + automatically converted to the format of the image, with the clear value being treated as + linear if the image is sRGB. + + + + + Are the color clear values when the format of the image or attachment is signed integer. + Signed integer values are converted to the format of the image by casting to the smaller + type (with negative 32-bit values mapping to negative values in the smaller type). If the + integer clear value is not representable in the target type (e.g. would overflow in + conversion to that type), the clear value is undefined. + + + + + Are the color clear values when the format of the image or attachment is unsigned + integer. Unsigned integer values are converted to the format of the image by casting to + the integer type with fewer bits. + + + + + Initializes a new instance of the structure. + + + Are the color clear values when the format of the image or attachment is one of the + formats other than signed integer or unsigned integer. Floating point values are + automatically converted to the format of the image, with the clear value being treated as + linear if the image is sRGB. + + + + + Initializes a new instance of the structure. + + + Are the color clear values when the format of the image or attachment is signed integer. + Signed integer values are converted to the format of the image by casting to the smaller + type (with negative 32-bit values mapping to negative values in the smaller type). If the + integer clear value is not representable in the target type (e.g. would overflow in + conversion to that type), the clear value is undefined. + + + + + Initializes a new instance of the structure. + + + Are the color clear values when the format of the image or attachment is unsigned + integer. Unsigned integer values are converted to the format of the image by casting to + the integer type with fewer bits. + + + + + Structure specifying a clear depth stencil value. + + + + + The clear value for the depth aspect of the depth/stencil attachment. It is a + floating-point value which is automatically converted to the attachment’s format. + Must be between 0.0 and 1.0, inclusive. + + + + + The clear value for the stencil aspect of the depth/stencil attachment. It is a 32-bit + integer value which is converted to the attachment's format by taking the appropriate + number of LSBs. + + + + + Initializes a new instance of the structure. + + + The clear value for the depth aspect of the depth/stencil attachment. It is a + floating-point value which is automatically converted to the attachment’s format. + + + The clear value for the stencil aspect of the depth/stencil attachment. It is a 32-bit + integer value which is converted to the attachment's format by taking the appropriate + number of LSBs. + + + + + Structure specifying a clear value. + + + + + Specifies the color image clear values to use when clearing a color image or attachment. + + + + + Specifies the depth and stencil clear values to use when clearing a depth/stencil image + or attachment. + + + + + Initializes a new instance of the structure. + + + Specifies the color image clear values to use when clearing a color image or attachment. + + + + + Initializes a new instance of the structure. + + + Specifies the depth and stencil clear values to use when clearing a depth/stencil image + or attachment. + + + + + Implicitly converts an instance of to an instance of . + + Instance to convert. + + + + Implicitly converts an instance of to an instance of + . + + Instance to convert. + + + + Structure specifying a clear attachment. + + + + + A mask selecting the color, depth and/or stencil aspects of the attachment to be cleared. + can include for color + attachments, for depth/stencil attachments with a + depth component, and for depth/stencil attachments + with a stencil component. If the subpass's depth/stencil attachment is , then the clear has no effect. + Must not include . + + + + + Is only meaningful if is set in , in which case it is an index to the array in the of the current subpass which + selects the color attachment to clear. If is then the clear has no effect. + + + + + The color or depth/stencil value to clear the attachment to. + + + + + Structure specifying an image resolve operation. + + + + + Specifies the image subresource of the source image data. Resolve of depth/stencil image + is not supported. + + + + + Selects the initial x, y, and z offsets in texels of the sub-region of the source image data. + + + + + Specifies the image subresource of the destination image data. Resolve of depth/stencil + image is not supported. + + + + + Selects the initial x, y, and z offsets in texels of the sub-region of the destination + image data. + + + + + The size in texels of the source image to resolve in width, height and depth. + + + + + Structure specifying a global memory barrier. + + + + + Specifies a source access mask. + + + + + Specifies a destination access mask. + + + + + Initializes a new instance of the structure. + + Specifies a source access mask. + Specifies a destination access mask. + + + + Structure specifying a buffer memory barrier. + + + + + Specifies a source access mask. + + + + + Specifies a destination access mask. + + + + + The source queue family for a queue family ownership transfer. + + + + + The destination queue family for a queue family ownership transfer. + + + + + A handle to the buffer whose backing memory is affected by the barrier. + + + + + An offset in bytes into the backing memory for buffer; this is relative to the base + offset as bound to the buffer. + + + + + A size in bytes of the affected area of backing memory for buffer, or to use the range from offset to the end of the buffer. + + + + + Initializes a new instance of the structure. + + + A handle to the buffer whose backing memory is affected + by the barrier. + + Specifies a source access mask. + Specifies a destination access mask. + + An offset in bytes into the backing memory for buffer; this is relative to the base + offset as bound to the buffer. + + + A size in bytes of the affected area of backing memory for buffer, or to use the range from offset to the end of the buffer. + + + + + Initializes a new instance of the structure. + + + A handle to the buffer whose backing memory is affected + by the barrier. + + Specifies a source access mask. + Specifies a destination access mask. + + The source queue family for a queue family ownership transfer. + + + The destination queue family for a queue family ownership transfer. + + + An offset in bytes into the backing memory for buffer; this is relative to the base + offset as bound to the buffer. + + + A size in bytes of the affected area of backing memory for buffer, or to use the range from offset to the end of the buffer. + + + + + Structure specifying the parameters of an image memory barrier. + + + + + Specifies a source access mask. + + + + + Specifies a destination access mask. + + + + + The old layout in an image layout transition. + + Must be or the current layout of the image + subresources affected by the barrier. + + + + + + The new layout in an image layout transition. + Must not be or + + + + + The source queue family for a queue family ownership transfer. + + + + + The destination queue family for a queue family ownership transfer. + + + + + A handle to the affected by this barrier. + + + + + Describes an area of the backing memory for image, as well as the set of image + subresources whose image layouts are modified. + + + + + Initializes a new instance of the structure. + + + A handle to the affected by this barrier. + + + Describes an area of the backing memory for image, as well as the set of image + subresources whose image layouts are modified. + + Specifies a source access mask. + Specifies a destination access mask. + The old layout in an image layout transition. + The new layout in an image layout transition. + + The source queue family for a queue family ownership transfer. + + + The destination queue family for a queue family ownership transfer. + + + + + Bitmask specifying memory access types that will participate in a memory dependency. + + + + + No flags. + + + + + Specifies read access to an indirect command structure read as part of an indirect + drawing or dispatch command. + + + + + Specifies read access to an index buffer as part of an indexed drawing command, bound by + . + + + + + Specifies read access to a vertex buffer as part of a drawing command, bound by . + + + + + Specifies read access to a uniform buffer. + + + + + Specifies read access to an input attachment within a renderpass during fragment shading. + + + + + Specifies read access to a storage buffer, uniform texel buffer, storage texel buffer, + sampled image or storage image. + + + + + Specifies write access to a storage buffer, storage texel buffer or storage image. + + + + + Specifies read access to a color attachment, such as via blending, logic operations or + via certain subpass load operations. + + + + + Specifies write access to a color or resolve attachment during a render pass or via + certain subpass load and store operations. + + + + + Specifies read access to a depth/stencil attachment via depth or stencil operations or + via certain subpass load operations. + + + + + Specifies write access to a depth/stencil attachment via depth or stencil operations or + via certain subpass load and store operations. + + + + + Specifies read access to an image or buffer in a copy operation. + + + + + Specifies write access to an image or buffer in a clear or copy operation. + + + + + Specifies read access by a host operation. Accesses of this type are not performed + through a resource, but directly on memory. + + + + + Specifies write access by a host operation. Accesses of this type are not performed + through a resource, but directly on memory. + + + + + Specifies read access via non-specific entities. These entities include the Vulkan device + and host, but may also include entities external to the Vulkan device or otherwise not + part of the core Vulkan pipeline. When included in a destination access mask, makes all + available writes visible to all future read accesses on entities known to the Vulkan device. + + + + + Specifies write access via non-specific entities. These entities include the Vulkan + device and host, but may also include entities external to the Vulkan device or otherwise + not part of the core Vulkan pipeline. When included in a source access mask, all writes + that are performed by entities known to the Vulkan device are made available. When + included in a destination access mask, makes all available writes visible to all future + write accesses on entities known to the Vulkan device. + + + + + Specifies reads from inputs to . + + + + + Specifies writes to the target command buffer in . + + + + + Is similar to , but also includes advanced blend operations. + + + + + Structure specifying render pass begin info. + + + + + The to begin an instance of. + + + + + The containing the attachments that are used with + the render pass. + + + + + The render area that is affected by the render pass instance. + + The effects of attachment load, store and multisample resolve operations are restricted + to the pixels whose x and y coordinates fall within the render area on all attachments. + The render area extends to all layers of framebuffer. The application must ensure (using + scissor if necessary) that all rendering is contained within the render area, otherwise + the pixels outside of the render area become undefined and shader side effects may occur + for fragments outside the render area. The render area must be contained within the + framebuffer dimensions. + + + + + + An array of structures that contains clear values for each + attachment, if the attachment uses a value of + or if the attachment has a depth/stencil format and + uses a value of . The array is indexed by attachment number. Only elements + corresponding to cleared attachments are used. Other elements of are ignored. + + + + + Initializes a new instance of the structure. + + + The containing the attachments that are used with + the render pass. + + The render area that is affected by the render pass instance. + + An array of structures that contains clear values for each + attachment, if the attachment uses a value of + or if the attachment has a depth/stencil format and + uses a value of . The array is indexed by attachment number. Only elements + corresponding to cleared attachments are used. Other elements of are ignored. + + + + + Initializes a new instance of the structure. + + + The containing the attachments that are used with + the render pass. + + The to use. + The render area that is affected by the render pass instance. + + An array of structures that contains clear values for each + attachment, if the attachment uses a value of + or if the attachment has a depth/stencil format and + uses a value of . The array is indexed by attachment number. Only elements + corresponding to cleared attachments are used. Other elements of are ignored. + + + + + Specify how commands in the first subpass of a render pass are provided. + + + + + Specifies that the contents of the subpass will be recorded inline in the primary command + buffer, and secondary command buffers must not be executed within the subpass. + + + + + Specifies that the contents are recorded in secondary command buffers that will be called + from the primary command buffer, and is + the only valid command on the command buffer until or . + + + + + Bitmask specifying pipeline stages. + + + + + Specifies the stage of the pipeline where any commands are initially received by the queue. + + + + + Specifies the stage of the pipeline where Draw/DispatchIndirect data structures are consumed. + This stage also includes reading commands written by . + + + + + Specifies the stage of the pipeline where vertex and index buffers are consumed. + + + + + Specifies the vertex shader stage. + + + + + Specifies the tessellation control shader stage. + + + + + Specifies the tessellation evaluation shader stage. + + + + + Specifies the geometry shader stage. + + + + + Specifies the fragment shader stage. + + + + + Specifies the stage of the pipeline where early fragment tests (depth and stencil tests + before fragment + shading) are performed. This stage also includes subpass load operations for framebuffer + attachments with a depth/stencil format. + + + + + Specifies that the stage of the pipeline where late fragment tests (depth and stencil + tests after fragment shading) are performed. + + This stage also includes subpass store operations for framebuffer attachments with a + depth/stencil format. + + + + + + Specifies that the stage of the pipeline after blending where the final color values are + output from the pipeline. + + This stage also includes subpass load and store operations and multisample resolve + operations for framebuffer attachments with a color format. + + + + + + Specifies the execution of a compute shader. + + + + + Transfer/copy operations. + + + + + Specifies the final stage in the pipeline where operations generated by all commands + complete execution. + + + + + Specifies a pseudo-stage indicating execution on the host of reads/writes of device + memory. + This stage is not invoked by any commands recorded in a command buffer. + + + + + Specifies the execution of all graphics pipeline stages, and is equivalent to the logical + OR of: + + , , , , , , , , , , , . + + + + + + Equivalent to the logical OR of every other pipeline stage flag that is supported on the + queue it is used with. + + + + + Specifies the stage of the pipeline where device-side generation of commands via is handled. + + + + + Structure specifying a clear rectangle. + + + + + The two-dimensional region to be cleared. + + + + + The first layer to be cleared. + + + + + The number of layers to clear. + + + + + Initializes a new instance of the structure. + + The two-dimensional region to be cleared. + The first layer to be cleared. + The number of layers to clear. + + + + Opaque handle to a command pool object. + + Command pools are opaque objects that command buffer memory is allocated from, and which + allow the implementation to amortize the cost of resource creation across multiple command + buffers. Command pools are application-synchronized, meaning that a command pool must not be + used concurrently in multiple threads. That includes use via recording commands on any + command buffers allocated from the pool, as well as operations that allocate, free, and reset + command buffers or the pool itself. + + + + + + Gets the parent of the resource. + + + + + Reset a command pool. + + + Contains additional flags controlling the behavior of the reset. If flags includes , resetting a command pool recycles all of + the resources from the command pool back to the system. + + Vulkan returns an error code. + + + + Allocate command buffers from an existing command pool. + + The structure describing parameters of the allocation. + + The resulting command buffer objects returned. Each allocated command buffer begins in + the initial state. + + Vulkan returns an error code. + + + + Free command buffers. + + Command buffers to free. + + + + Destroy a command pool object. + + When a pool is destroyed, all command buffers allocated from the pool are implicitly + freed and become invalid. Command buffers allocated from a given pool do not need to be + freed before destroying that command pool. + + + + + + Structure specifying parameters of a newly created command pool. + + + + + A bitmask indicating usage behavior for the pool and command buffers allocated from it. + + + + + Designates a queue family. + + All command buffers allocated from this command pool must be submitted on queues from the + same queue family. + + + + + + Initializes a new instance of the structure. + + + Designates a queue family. + + All command buffers allocated from this command pool must be submitted on queues from the + same queue family. + + + + A bitmask indicating usage behavior for the pool and command buffers allocated from it. + + + + + Bitmask specifying usage behavior for a command pool. + + + + + No flags. + + + + + Indicates that command buffers allocated from the pool will be short-lived, + meaning that they will be reset or freed in a relatively short timeframe. + This + flag may be used by the implementation to control memory allocation behavior + within the pool. + + + + + Allows any command buffer allocated from a pool to be individually reset to the initial + state either by calling , or via the implicit reset when + calling . + + If this flag is not set on a pool, then must not be + called for any command buffer allocated from that pool. + + + + + + Bitmask controlling behavior of a command pool reset. + + + + + No flags. + + + + + Specifies that resetting a command pool recycles all of the resources from the command + pool back to the system. + + + + + Provides Vulkan specific constants for special values, layer names and extension names. + + + + + The maximum number of unique memory heaps, each of which supporting 1 or more memory types. + + + + + Provides name constants for common Vulkan instance extensions. + + + + + The "VK_KHR_xlib_surface" extension is an instance extension. It provides a mechanism + to create a object (defined by the "VK_KHR_surface" + extension) that refers to an X11 window, using the Xlib client-side library, as well + as a query to determine support for rendering via Xlib. + + + + + The "VK_KHR_xcb_surface" extension is an instance extension. It provides a mechanism + to create a object (defined by the "VK_KHR_surface" + extension) that refers to an X11 window, using the XCB client-side library, as well + as a query to determine support for rendering via XCB. + + + + + The "VK_KHR_wayland_surface" extension is an instance extension. It provides a + mechanism to create a object (defined by the + "VK_KHR_surface" extension) that refers to a Wayland wl_surface, as well as a query + to determine support for rendering to the windows desktop. + + + + + The "VK_KHR_mir_surface" extension is an instance extension. It provides a mechanism + to create a object (defined by the "VK_KHR_surface" + extension) that refers to a Mir surface, as well as a query to determine support for + rendering to the windows desktop. + + + + + The "VK_KHR_android_surface" extension is an instance extension. It provides a + mechanism to create a object (defined by the + "VK_KHR_surface" extension) that refers to an ANativeWindow, Android’s native surface + type. The ANativeWindow represents the producer endpoint of any buffer queue, + regardless of consumer endpoint. Common consumer endpoints for ANativeWindows are the + system window compositor, video encoders, and application-specific compositors + importing the images through a SurfaceTexture. + + + + + The "VK_KHR_win32_surface" extension is an instance extension. It provides a mechanism to + create a object (defined by the "VK_KHR_surface" extension) that + refers to a Win32 HWND, as well as a query to determine support for rendering to the + windows desktop. + + + + + This extension defines a way for layers and the implementation to call back to the + application for events of interest to the application. + + + + + + The "VK_KHR_surface" extension is an instance extension. It introduces objects, which abstract native platform surface or window objects for + use with Vulkan. It also provides a way to determine whether a queue family in a physical + device supports presenting to particular surface. + + + Separate extensions for each each platform provide the mechanisms for creating objects, but once created they may be used in this and other + platform-independent extensions, in particular the "VK_KHR_swapchain" extension. + + + + + + Applications may wish to import memory from the Direct 3D API, or export memory to + other Vulkan instances. This extension provides a set of capability queries that + allow applications determine what types of win32 memory handles an implementation + supports for a given set of use cases. + + + + + This extension provides new entry points to query device features, device properties, + and format properties in a way that can be easily extended by other extensions, + without introducing any further entry points. The Vulkan 1.0 + feature/limit/formatproperty structures do not include a Type/Next, this extension + wraps them in new structures with Type/Next so an application can query a chain of + feature/limit/formatproperty structures by constructing the chain and letting the + implementation fill them in. A new command is added for each .Get* command in core Vulkan 1.0. The new feature structure + (and a chain of extensions) can also be passed in to device creation to enable features. + + + + + This extension provides the VkValidationFlagsEXT struct that can be included + in the chain at instance creation time. The new + struct contains an array of VkValidationCheckEXT values that will be disabled + by the validation layers. + + + + + The "VK_NN_vi_surface" extension is an instance extension. It provides a mechanism to + create a object (defined by the "VK_KHR_surface" + extension) associated with an nn::vi::Layer. + + + + + This is extension, along with related platform exentions, allows applications to take + exclusive control of displays associated with a native windowing system. This is + especially useful for virtual reality applications that wish to hide HMDs (head + mounted displays) from the native platform’s display management system, desktop, + and/or other applications. + + + + + This extension allows an application to take exclusive control on a display currently + associated with an X11 screen. When control is acquired, the display will be + deassociated from the X11 screen until control is released or the specified display + connection is closed. Essentially, the X11 screen will behave as if the monitor has + been unplugged until control is released. + + + + + This is extension defines a vertical blanking period counter associated with display + surfaces. It provides a mechanism to query support for such a counter from a + object. + + + + + This extension defines additional enums for . + + + + + This extension provides instance-level commands to enumerate groups of physical + devices, and to create a logical device from a subset of one of those groups. Such a + logical device can then be used with new features in the "VK_KHX_device_group" extension. + + + + + An application may wish to reference device memory in multiple Vulkan logical devices + or instances, in multiple processes, and/or in multiple APIs. This extension provides + a set of capability queries and handle definitions that allow an application to + determine what types of "external" memory handles an implementation supports for a + given set of use cases. + + + + + An application may wish to reference device semaphores in multiple Vulkan logical + devices or instances, in multiple processes, and/or in multiple APIs. This extension + provides a set of capability queries and handle definitions that allow an application + to determine what types of “external” semaphore handles an implementation supports + for a given set of use cases. + + + + + An application may wish to reference device fences in multiple Vulkan logical devices + or instances, in multiple processes, and/or in multiple APIs. This extension provides + a set of capability queries and handle definitions that allow an application to + determine what types of "external" fence handles an implementation supports for a + given set of use cases. + + + + + This extension provides new entry points to query device surface capabilities in a + way that can be easily extended by other extensions, without introducing any further + entry points. + + + + + The "VK_MVK_ios_surface" extension is an instance extension. It provides a mechanism + to create a object (defined by the "VK_KHR_surface" + extension) that refers to a UIView, the native surface type of iOS, which is + underpinned by a CAMetalLayer, to support rendering to the surface using + Apple’s Metal framework. + + + + + The "VK_MVK_macos_surface" extension is an instance extension. It provides a + mechanism to create a object (defined by the + "VK_KHR_surface" extension) that refers to an NSView, the native surface type + of macOS, which is underpinned by a CAMetalLayer, to support rendering to the + surface using Apple’s Metal framework. + + + + + Provides name constants for common Vulkan device extensions. + + + + + This extension is the device-level companion to the "VK_KHR_surface" extension. It + introduces objects, which provide the ability to + present rendering results to a surface. + + + + + This extension provides the API to enumerate displays and available modes on a given device. + + + + + This extension provides an API to create a swapchain directly on a device’s display + without any underlying window system. + + + + + Implementations that expose this function allow GLSL shaders to be referenced by as an alternative to SPIR-V shaders. + + + + + This extension extends the set of sampler address modes to include an additional mode + () that effectively uses a texture + map twice as large as the original image in which the additional half of the new + image is a mirror image of the original image. + + + + + This extension adds an additional, high quality cubic filtering mode to Vulkan, + using a Catmull-Rom bicubic filter. + + + + + This extension introduces the possibility for the application to control the order of + primitive rasterization. + + + + + This extension adds support for the "SPV_AMD_shader_trinary_minmax" SPIR-V extension. + + + + + This extension adds support for the "SPV_AMD_shader_explicit_vertex_parameter" SPIR-V extension. + + + + + This extension introduces concepts of object naming and tagging, for better tracking + of Vulkan objects, as well as additional commands for recording annotations of named + sections of a workload to aid organisation and offline analysis in external tools. + + + + + This extension adds support for the "SPV_AMD_gcn_shader" SPIR-V extension. + + + + + This extension allows device memory to be allocated for a particular buffer or image + resource, which on some devices can significantly improve the performance of that + resource. + + + + + This extension allows an application to source the number of draw calls for indirect + draw calls from a buffer. + + + + + This extension allows an application to specify a negative viewport height. + + + + + This extension adds support for the "SPV_AMD_gpu_shader_half_float" SPIR-V extension. + + + + + This extension adds support for the "SPV_AMD_shader_ballot" SPIR-V extension. + + + + + This extension enables applications to create exportable Vulkan memory objects such + that the underlying resources can be referenced outside the Vulkan instance that + created them. + + + + + This extension enables win32 applications to export win32 handles from Vulkan memory + objects such that the underlying resources can be referenced outside the Vulkan + instance that created them, and import win32 handles created in the Direct3D API to + Vulkan memory objects. + + + + + This extension provides a way for an application to access the keyed mutex associated + with an imported Vulkan memory object when submitting command buffers to a queue. + + + + + This extension adds support for the "SPV_KHR_shader_draw_parameters" SPIR-V extension. + + + + + This extension adds support for the "SPV_KHR_shader_ballot" SPIR-V extension. + + + + + This extension adds support for the "SPV_KHR_subgroup_vote" SPIR-V extension. + + + + + This extension adds a collection of minor features that were intentionally left out + or overlooked from the original Vulkan 1.0 release. + + + + + This extension allows the device to generate a number of critical commands for command buffers. + + + + + This extension defines a set of utility functions for use with the "VK_KHR_display" + and "VK_KHR_display_swapchain" extensions. + + + + + This extension defines two new structures and a function to assign SMPTE (the Society + of Motion Picture and Television Engineers) 2086 metadata and CTA (Consumer + Technology Assocation) 861.3 metadata to a swapchain. + + + + + This extension allows an application that uses the "VK_KHR_swapchain" extension to + obtain information about the presentation engine's display, to obtain timing + information about each present, and to schedule a present to happen no earlier than a + desired time. + + + + + This extension has the same goal as the OpenGL ES "GL_OVR_multiview" extension - it + enables rendering to multiple "views" by recording a single set of commands to be + executed with slightly different behavior for each view. + + + + + This extension provides functionality to use a logical device that consists of + multiple physical devices, as created with the "VK_KHX_device_group_creation" extension. + + + + + This extension enables an application to export non-Vulkan handles from Vulkan memory + objects such that the underlying resources can be referenced outside the scope of the + Vulkan logical device that created them. + + + + + This extension enables an application to export Windows handles from Vulkan memory + objects and to import Vulkan memory objects from Windows handles exported from other + Vulkan memory objects or from similar resources in other APIs. + + + + + This extension enables an application to export POSIX file descriptor handles from + Vulkan memory objects and to import Vulkan memory objects from POSIX file descriptor + handles exported from other Vulkan memory objects or from similar resources in other APIs. + + + + + This extension provides a way for an application to access the keyed mutex associated + with an imported Vulkan memory object when submitting command buffers to a queue. + + + + + This extension enables an application to create semaphores from which non-Vulkan + handles that reference the underlying synchronization primitive can be exported. + + + + + This extension enables an application to export semaphore state to and import + semaphore state from Windows handles. + + + + + This extension enables an application to export semaphore state to and import + semaphore state from POSIX file descriptors. + + + + + This extension allows descriptors to be written into the command buffer, with the + implementation being responsible for managing their memory. + + + + + The VK_KHR_16bit_storage extension allows use of 16-bit types in shader input and + output interfaces, and push constant blocks. + + + + + This extension provides a way to update a fixed set of descriptors in a single with a pointer to a user defined data structure which + describes the new descriptors. + + + + + This extension provides a way to update a fixed set of descriptors in a single with a pointer to a user defined data structure which + describes the new descriptors. + + + + + This extension provides a mechanism to render VR scenes at a non-uniform resolution, + in particular a resolution that falls linearly from the center towards the edges. + + + + + This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_sample_mask_override_coverage". + + + + + This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_geometry_shader_passthrough". + + + + + This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_viewport_array2". + + + + + This extension adds a new way to write shaders to be used with multiview subpasses, + where the attributes for all views are written out by a single invocation of the + vertex processing stages. + + + + + This extension provides a new per-viewport swizzle that can modify the position of + primitives sent to each viewport. + + + + + This extension provides additional orthogonally aligned "discard rectangles" + specified in framebuffer-space coordinates that restrict rasterization of all points, + lines and triangles. + + + + + This extension adds support for the following SPIR-V extension: + "SPV_AMD_shader_trinary_minmax". Secondly, the extension allows the application to + query, which formats can be used together with the new function prototypes introduced + by the SPIR-V extension. + + + + + This extension extends VK_KHR_swapchain to enable creation of a shared presentable + image. This allows the application to use the image while the presention engine is + accessing it, in order to reduce the latency between rendering and presentation. + + + + + An application using external memory may wish to synchronize access to that memory + using fences. This extension enables an application to create fences from which + non-Vulkan handles that reference the underlying synchronization primitive can be exported. + + + + + An application using external memory may wish to synchronize access to that memory + using fences. This extension enables an application to export fence payload to and + import fence payload from Windows handles. + + + + + An application using external memory may wish to synchronize access to that memory + using fences. This extension enables an application to export fence payload to and + import fence payload from POSIX file descriptors. + + + + + The VK_KHR_variable_pointers extension allows implementations to indicate their level + of support for the SPV_KHR_variable_pointers SPIR-V extension. + + + + + This extension enables resources to be bound to a dedicated allocation, rather than suballocated. + + + + + This extension provides a new sampler parameter which allows applications to produce + a filtered texel value by computing a component-wise minimum (MIN) or maximum (MAX) + of the texels that would normally be averaged. + + + + + This extension adds support for the following SPIR-V extension in Vulkan: "SPV_KHR_storage_buffer_storage_class". + + + + + This extension adds support for the following SPIR-V extension in Vulkan: "SPV_AMD_gpu_shader_int16". + + + + + This extension provides new entry points to query memory requirements of images and + buffers in a way that can be easily extended by other extensions, without introducing + any further entry points. + + + + + This extension adds a number of "advanced" blending operations that can be used to + perform new color blending operations, many of which are more complex than the + standard blend modes provided by unextended Vulkan. + + + + + This extension allows the fragment coverage value, represented as an integer bitmask, + to be substituted for a color output being written to a single-component color + attachment with integer components (e.g. ). + + + + + This extension allows multisample rendering with a raster and depth/stencil sample + count that is larger than the color sample count. + + + + + This extension adds a new enum where a + triangle is rasterized by computing and filling its axis-aligned screen-space + bounding box, disregarding the actual triangle edges. + + + + + Provides name constants for common Vulkan instance layers. + + + + + A built-in meta-layer definition which simplifies validation for applications. Specifying + this short-hand layer definition will load a standard set of validation layers in the + optimal order: + "VK_LAYER_GOOGLE_threading" + "VK_LAYER_LUNARG_parameter_validation" + "VK_LAYER_LUNARG_device_limits" + "VK_LAYER_LUNARG_object_tracker" + "VK_LAYER_LUNARG_image" + "VK_LAYER_LUNARG_core_validation" + "VK_LAYER_LUNARG_swapchain" + "VK_LAYER_GOOGLE_unique_objects" + + + + + Wrap all Vulkan objects in a unique pointer at create time and unwrap them at use time. + + + + + Print API calls and their parameters and values. + + + + + Validate that app properly queries features and obeys feature limitations. + + + + + Validate the descriptor set, pipeline state, and dynamic state; validate the interfaces + between SPIR-V modules and the graphics pipeline; track and validate GPU memory and its + binding to objects and command buffers. + + + + + Validate texture formats and render target formats. + + + + + Track all Vulkan objects and flag invalid objects and object memory leaks. + + + + + Validate API parameter values. + + + + + Validate the use of the WSI "swapchain" extensions. + + + + + Check validity of multi-threaded API usage. + + + + + Opaque handle to a descriptor pool object. + + + + + Gets the parent of the resource. + + + + + Resets a descriptor pool object. + + Resetting a descriptor pool recycles all of the resources from all of the descriptor sets + allocated from the descriptor pool back to the descriptor pool, and the descriptor sets + are implicitly freed. + + + Vulkan returns an error code. + + + + Allocate one or more descriptor sets. + + The pool must have enough free descriptor capacity remaining to allocate the descriptor + sets of the specified layouts. + + + When a descriptor set is allocated, the initial state is largely uninitialized and all + descriptors are undefined. However, the descriptor set can be bound in a command buffer + without causing errors or exceptions. All entries that are statically used by a pipeline + in a drawing or dispatching command must have been populated before the descriptor set is + bound for use by that command. Entries that are not statically used by a pipeline can + have uninitialized descriptors or descriptors of resources that have been destroyed, and + executing a draw or dispatch with such a descriptor set bound does not cause undefined + behavior. This means applications need not populate unused entries with dummy descriptors. + + + If an allocation fails due to fragmentation, an indeterminate error is returned with an + unspecified error code. Any returned error other than does not imply its usual meaning: applications should + assume that the allocation failed due to fragmentation, and create a new descriptor pool. + + + The structure describing parameters of the allocation. + + + + Update the contents of a descriptor set object. + + The operations described by are performed first, + followed by the operations described by . Within each + array, the operations are performed in the order they appear in the array. + + + Each element in the array describes an operation + updating the descriptor set using descriptors for resources specified in the structure. + + + Each element in the array is a structure describing an + operation copying descriptors between sets. + + + The structures describing the descriptor sets to write to. + The structures describing the descriptor sets to copy between. + + + + Free one or more descriptor sets. + + An array of handles to objects. + Vulkan returns an error code. + + + + Destroy a descriptor pool object. + + When a pool is destroyed, all descriptor sets allocated from the pool are implicitly + freed and become invalid. Descriptor sets allocated from a given pool do not need to be + freed before destroying that descriptor pool. + + + + + + Structure specifying parameters of a newly created descriptor pool. + + + + + A bitmask specifying certain supported operations on the pool. + + + + + The maximum number of descriptor sets that can be allocated from the pool. + + + + + Structures, each containing a descriptor type and number of descriptors of that type to + be allocated in the pool. + + + + + Initializes a new instance of the structure. + + + The maximum number of descriptor sets that can be allocated from the pool. + + + Structures, each containing a descriptor type and number of descriptors of that type to + be allocated in the pool. + + A bitmask specifying certain supported operations on the pool. + + + + Bitmask specifying certain supported operations on a descriptor pool. + + + + + No flags. + + + + + Specifies that descriptor sets can return their individual allocations to the pool, i.e. + all of , , + and are allowed. + + Otherwise, descriptor sets allocated from the pool must not be individually freed back to + the pool, i.e. only and are allowed. + + + + + + Structure specifying descriptor pool size. + + + + + The type of descriptor. + + + + + The number of descriptors of that type to allocate. + Must be greater than 0. + + + + + Initializes a new instance of the structure. + + The type of descriptor. + The number of descriptors of that type to allocate. + + + + Opaque handle to a descriptor set object. + Descriptor sets are allocated from descriptor pool objects. + + + + + Gets the parent of the resource. + + + + + Free descriptor set. + + Vulkan returns an error code. + + + + Structure specifying the allocation parameters for descriptor sets. + + + + + Determines the number of descriptor sets to be allocated from the pool. + + + + + An array of , with each member specifying how the + corresponding descriptor set is allocated. + Array length must be greater than 0. + + + + + Initializes a new instance of the structure. + + + Determines the number of descriptor sets to be allocated from the pool. + + + An array of descriptor set layouts, with each member specifying how the corresponding + descriptor set is allocated. + + + + + Structure specifying the parameters of a descriptor set write operation. + + + + + The destination descriptor set to update. + + + + + The descriptor binding within that set. + + + + + The starting element in that array. + + + + + The number of descriptors to update (the number of elements in , + , or ). + + + + + Specifies the type of each descriptor in , , or , as described below. It must be the + same type as that specified in for at . The type of the descriptor also controls + which array the descriptors are taken from. + + + + + An array of structures or is ignored. + + + + + An array of structures or is ignored. + + + + + An array of handles or is ignored. + + + + + Initializes a new instance of the structure. + + The destination descriptor set to update. + The descriptor binding within that set. + The starting element in that array. + + The number of descriptors to update (the number of elements in , + , or ). + + + Specifies the type of each descriptor in , , or , as described below. It must be the + same type as that specified in for at . The type of the descriptor also controls + which array the descriptors are taken from. + + + An array of structures or is ignored. + + + An array of structures or is ignored. + + An array of handles or is ignored. + + + + Specifies the type of a descriptor in a descriptor set. + + + + + Structure specifying descriptor image info. + + + + + A sampler handle, and is used in descriptor updates for types and if + the binding being updated does not use immutable samplers. + + + + + An handle, and is used in descriptor updates for types , , , and . + + + + + The layout that the image subresources accessible from will be in + at the time this descriptor is accessed. Is used in descriptor updates for types , , , and . + + + + + Initializes a new instance of the structure. + + + A sampler handle, and is used in descriptor updates for types and if + the binding being updated does not use immutable samplers. + + + An image view handle, and is used in descriptor updates for types , , , and . + + + The layout that the image will be in at the time this descriptor is accessed. Is used in + descriptor updates for types , , , + and . + + + + + Structure specifying descriptor buffer info. + + + + + The resource. + + + + + The offset in bytes from the start of buffer. Access to buffer memory via this descriptor + uses addressing that is relative to this starting offset. + + + + + The size in bytes that is used for this descriptor update, or to + use the range from to the end of the buffer. + + + + + Initializes a new instance of the structure. + + The buffer resource. + + The offset in bytes from the start of buffer. Access to buffer memory via this descriptor + uses addressing that is relative to this starting offset. + + + The size in bytes that is used for this descriptor update, or to + use the range from to the end of the buffer. + + + + + Structure specifying a copy descriptor set operation. + + + + + Source . + + + + + Source binding. + + Must be a valid binding within . The sum of and must be less than or equal to + the number of array elements in the descriptor set binding specified by , and all applicable consecutive bindings. + + + + + + Array element within the source binding to copy from. + + + + + Destination . + + + + + Destination binding. + + Must be a valid binding within . The sum of and must be less than or equal to + the number of array elements in the descriptor set binding specified by , and all applicable consecutive bindings. If is + equal to , then the source and destination ranges of descriptors must + not overlap, where the ranges may include array elements from consecutive bindings. + + + + + + Array element within the destination binding to copy to. + + + + + The number of descriptors to copy from the source to destination. + + If is greater than the number of remaining array elements + in the source or destination binding, those affect consecutive bindings in a manner + similar to . + + + + + + Initializes a new instance of the structure. + + Source descriptor set. + Source binding. + Array element within the source binding to copy from. + Destination descriptor set. + Destination binding. + + Array element within the destination binding to copy to. + + + The number of descriptors to copy from the source to destination. + + + + + Opaque handle to a descriptor set layout object. + + A descriptor set layout object is defined by an array of zero or more descriptor bindings. + Each individual descriptor binding is specified by a descriptor type, a count (array size) of + the number of descriptors in the binding, a set of shader stages that can access the binding, + and (if using immutable samplers) an array of sampler descriptors. + + + + + + Gets the parent of the resource. + + + + + Destroy a descriptor set layout object. + + + + + Structure specifying parameters of a newly created descriptor set layout. + + + + + A bitmask specifying options for descriptor set layout creation. + + + + + An array of structures. + + + + + Initializes a new instance of the structure. + + An array of structures. + + + + Initializes a new instance of the structure. + + An array of structures. + A bitmask specifying options for descriptor set layout creation. + + + + Bitmask specifying descriptor set layout properties. + + + + + No flags. + + + + + Specifies that descriptor sets must not be allocated using this layout, and descriptors + are instead pushed by . + + + + + Structure specifying a descriptor set layout binding. + + + + + The binding number of this entry and corresponds to a resource of the same binding number + in the shader stages. + + + + + Specifies which type of resource descriptors are used for this binding. + + + + + The number of descriptors contained in the binding, accessed in a shader as an array. If + is zero this binding entry is reserved and the resource + must not be accessed from any stage via this binding within any pipeline using the set layout. + + + + + Specifies which pipeline shader stages can access a resource for this binding. is a shorthand specifying that all defined shader stages, + including any additional stages defined by extensions, can access the resource. + + If a shader stage is not included in , then a resource must not + be accessed from that stage via this binding within any pipeline using the set layout. + There are no limitations on what combinations of stages can be used by a descriptor + binding, and in particular a binding can be used by both graphics stages and the compute stage. + + + + + + Affects initialization of samplers. If specifies a or type descriptor, then can be used to initialize a set of immutable samplers. + Immutable samplers are permanently bound into the set layout; later binding a sampler + into an immutable sampler slot in a descriptor set is not allowed. If is not null, then it is considered to be an array of + sampler handles that will be consumed by the set layout and used for the corresponding + binding. If is null, then the sampler slots are + dynamic and sampler handles must be bound into descriptor sets using this layout. If is not one of these descriptor types, then is ignored. + + + + + Initializes a new instance of the structure. + + + The binding number of this entry and corresponds to a resource of the same binding number + in the shader stages. + + + Specifies which type of resource descriptors are used for this binding. + + + The number of descriptors contained in the binding, accessed in a shader as an array. If + is zero this binding entry is reserved and the resource + must not be accessed from any stage via this binding within any pipeline using the set layout. + + + Specifies which pipeline shader stages can access a resource for this binding. is a shorthand specifying that all defined shader stages, + including any additional stages defined by extensions, can access the resource. + + + Affects initialization of samplers. If specifies a or type descriptor, then can be used to initialize a set of immutable samplers. + Immutable samplers are permanently bound into the set layout; later binding a sampler + into an immutable sampler slot in a descriptor set is not allowed. If is not null, then it is considered to be an array of + sampler handles that will be consumed by the set layout and used for the corresponding + binding. If is null, then the sampler slots are + dynamic and sampler handles must be bound into descriptor sets using this layout. If is not one of these descriptor types, then is ignored. + + + + + Opaque handle to a device object. + + + + + Gets the parent of the resource. + + + + + Return a function handle for a command or if not found. + + In order to support systems with multiple Vulkan implementations comprising heterogeneous + collections of hardware and software, the function pointers returned by may point to dispatch code, which calls a different real + implementation for different objects (and objects created from + them). The overhead of this internal dispatch can be avoided by obtaining device-specific + function pointers for any commands that use a device or device-child object as their + dispatchable object. + + + The name of the command to obtain. + Function handle for a command or if not found. + is null. + + + + Return a function delegate for a command or null if not found. + + In order to support systems with multiple Vulkan implementations comprising heterogeneous + collections of hardware and software, the function delegates returned by may point to dispatch code, which calls a different real + implementation for different objects (and objects created from + them). The overhead of this internal dispatch can be avoided by obtaining device-specific + function delegate for any commands that use a device or device-child object as their + dispatchable object. + + + The name of the command to obtain. + Function delegate for a command or null if not found. + is null. + + + + Get a queue handle from a device. + + + The index of the queue family to which the queue belongs. Must be one of the queue family + indices specified when device was created, via the structure. + + + The index within this queue family of the queue to retrieve. Must be less than the number + of queues created for the specified queue family index when device was created, via the + length of . + + Handle to a queue. + + + + Wait for a device to become idle. + Equivalent to calling for all queues owned by device. + + Vulkan returns an error code. + + + + Create a new buffer object. + + + The structure containing parameters affecting creation of the buffer. + + Controls host memory allocation. + Buffer object. + Vulkan returns an error code. + + + + Create a new image object. + + + The structure containing parameters to be used to create the image. + + Controls host memory allocation. + Vulkan returns an error code. + + + + Allocate GPU memory. + + + The structure describing parameters of the allocation. A successful returned allocation + must use the requested parameters — no substitution is permitted by the implementation. + + Controls host memory allocation. + Vulkan returns an error code. + + + + Flush mapped memory range. + + Must be used to guarantee that host writes to non-coherent memory are visible to the + device. It must be called after the host writes to non-coherent memory have completed and + before command buffers that will read or write any of those memory locations are + submitted to a queue. + + + Unmapping non-coherent memory does not implicitly flush the mapped memory, and host + writes that have not been flushed may not ever be visible to the device. + + + Structure describing the memory range to flush. + Vulkan returns an error code. + + + + Flush mapped memory ranges. + + Must be used to guarantee that host writes to non-coherent memory are visible to the + device. It must be called after the host writes to non-coherent memory have completed and + before command buffers that will read or write any of those memory locations are + submitted to a queue. + + + Unmapping non-coherent memory does not implicitly flush the mapped memory, and host + writes that have not been flushed may not ever be visible to the device. + + + Structures describing the memory ranges to flush. + Vulkan returns an error code. + + + + Invalidate a range of mapped memory. + + Must be used to guarantee that device writes to non-coherent memory are visible to the + host. It must be called after command buffers that execute and flush (via memory + barriers) the device writes have completed, and before the host will read or write any of + those locations. If a range of non-coherent memory is written by the host and then + invalidated without first being flushed, its contents are undefined. + + + Mapping non-coherent memory does not implicitly invalidate the mapped memory, and device + writes that have not been invalidated must be made visible before the host reads or + overwrites them. + + + Structure describing the memory range to invalidate. + Vulkan returns an error code. + + + + Invalidate ranges of mapped memory objects. + + Must be used to guarantee that device writes to non-coherent memory are visible to the + host. It must be called after command buffers that execute and flush (via memory + barriers) the device writes have completed, and before the host will read or write any of + those locations. If a range of non-coherent memory is written by the host and then + invalidated without first being flushed, its contents are undefined. + + + Mapping non-coherent memory does not implicitly invalidate the mapped memory, and device + writes that have not been invalidated must be made visible before the host reads or + overwrites them. + + + Structures describing the memory ranges to invalidate. + Vulkan returns an error code. + + + + Creates a new shader module object. + + + The structure containing information of a newly created shader module. + + Controls host memory allocation. + Resulting shader module object. + Vulkan returns an error code. + + + + Creates a new pipeline cache. + + + The structure containing information of a newly created pipeline cache. + + Controls host memory allocation. + Resulting pipeline cache. + Vulkan returns an error code. + + + + Creates a new compute pipeline object. + + + Structure specifying parameters of a newly created compute pipeline. + + + Is either null, indicating that pipeline caching is disabled; or the handle of a + valid pipeline cache object, in which case use of that cache is enabled for the duration + of the command. + + Controls host memory allocation. + The resulting compute pipeline object. + Vulkan returns an error code. + + + + Create new compute pipeline objects. + + + Structures specifying parameters of newly created compute pipelines. + + If the flags member of any given element contains the flag, and the member of that same element is not + -1, must be less than the index + into that corresponds to that element + + + + Is either null, indicating that pipeline caching is disabled; or the handle of a + valid pipeline cache object, in which case use of that cache is enabled for the duration + of the command. + + Controls host memory allocation. + An array in which the resulting compute pipeline objects are returned. + Vulkan returns an error code. + + + + Create a graphics pipeline. + + + Structure specifying parameters of a newly created graphics pipeline. + + + Is either null, indicating that pipeline caching is disabled; or the handle of a + valid pipeline cache object, in which case use of that cache is enabled for the duration + of the command. + + Controls host memory allocation. + The resulting graphics pipeline object. + Vulkan returns an error code. + + + + Create graphics pipelines. + + + Structures specifying parameters of newly created graphics pipelines. + + If the flags member of any given element contains the flag, and the member of that same element is not + -1, must be less than the index + into that corresponds to that element + + + + Is either null, indicating that pipeline caching is disabled; or the handle of a + valid pipeline cache object, in which case use of that cache is enabled for the duration + of the command. + + Controls host memory allocation. + An array in which the resulting graphics pipeline objects are returned. + Vulkan returns an error code. + + + + Creates a new pipeline layout object. + + + The structure specifying the state of the pipeline layout object. + + Controls host memory allocation. + Handle in which the resulting pipeline layout object is returned. + Vulkan returns an error code. + + + + Create a new sampler object. + + The structure specifying the state of the sampler object. + Controls host memory allocation. + Resulting sampler object. + Vulkan returns an error code. + + + + Create a new descriptor set layout. + + + The structure specifying the state of the descriptor set layout object. + + Controls host memory allocation. + The resulting descriptor set layout object. + Vulkan returns an error code. + + + + Creates a descriptor pool object. + + + The structure specifying the state of the descriptor pool object. + + Controls host memory allocation. + The resulting descriptor pool object. + Vulkan returns an error code. + + + + Create a new render pass object. + + + The structure that describes the parameters of the render pass. + + Controls host memory allocation. + The resulting render pass object. + Vulkan returns an error code. + + + + Create a new command pool object. + + Contains information used to create the command pool. + Controls host memory allocation. + The created pool. + Vulkan returns an error code. + + + + Create a new event object. + + Controls host memory allocation. + The resulting event object. + + + + Create a new fence object. + + + The structure which contains information about how the fence is to be created. + + Controls host memory allocation. + The resulting fence object. + + + + Resets one or more fence objects. + + Defines a fence unsignal operation for each fence, which resets the fence to the + unsignaled state. + + + If any member of is already in the unsignaled state, then the + command has no effect on that fence. + + + Fence handles to reset. + Vulkan returns an error code. + + + + Wait for one or more fences to become signaled. + + If the condition is satisfied when the command is called, then the command returns + immediately. If the condition is not satisfied at the time the command is called, then + the command will block and wait up to timeout nanoseconds for the condition to become satisfied. + + + Fence handle. + + The condition that must be satisfied to successfully unblock the wait. If true , + then the condition is that all fences in are signaled. + Otherwise, the condition is that at least one fence in is signaled. + + + The timeout period in units of nanoseconds. Timeout is adjusted to the closest value + allowed by the implementation-dependent timeout accuracy, which may be substantially + longer than one nanosecond, and may be longer than the requested period. + + If timeout is zero, then the command does not wait, but simply returns the current state + of the fences. The result will be thrown in this case if the + condition is not satisfied, even though no actual wait was performed. + + + If the specified timeout period expires before the condition is satisfied, the command + throws with . If the condition is satisfied before timeout + nanoseconds has expired, the command returns successfully. + + + Vulkan returns an error code. + + + + Create a new queue semaphore object. + + Controls host memory allocation. + Resulting semaphore object. + Vulkan returns an error code. + + + + Create a new query pool object. + + + Structure containing the number and type of queries to be managed by the pool. + + Controls host memory allocation. + The resulting query pool object. + Vulkan returns an error code. + + + + Destroy a logical device. + + + + + Structure specifying parameters of a newly created device. + + + + + Is or a pointer to an extension-specific structure. + + + + + Structures describing the queues that are requested to be created along with the logical device. + + + + + Is null or unicode strings containing the names of extensions to enable for the + created device. + + + + + Is null or a structure that contains boolean + indicators of all the features to be enabled. + + + + + Initializes a new instance of the structure. + + + Structures describing the queues that are requested to be created along with the logical device. + + + Is null or unicode strings containing the names of extensions to enable for the + created device. + + + Is null or a structure that contains boolean + indicators of all the features to be enabled. + + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying parameters of a newly created device queue. + + + + + Initializes a new instance of the structure. + + + An unsigned integer indicating the index of the queue family to create on this device. + This index corresponds to the index of an element of the array that was returned by . + + + An unsigned integer specifying the number of queues to create in the queue family + indicated by . + + + Normalized floating point values, specifying priorities of work that will be submitted to + each created queue. + + + + + An unsigned integer indicating the index of the queue family to create on this device. + This index corresponds to the index of an element of the array that was returned by . + + + + + An unsigned integer specifying the number of queues to create in the queue family + indicated by . + + + + + An array of normalized floating point values, specifying priorities of work that + will be submitted to each created queue. + + + + + Structure specifying a mapped memory range. + + + + + The memory object to which this range belongs. + Must currently be mapped. + + + + + The zero-based byte offset from the beginning of the memory object. + Must be a multiple of . + + If is equal to , offset must be within the + currently mapped range of memory + + + + + + Is either the size of range, or to affect the range from offset + to the end of the current mapping of the allocation. + + If size is not equal to , offset and size must specify a range + contained within the currently mapped range of memory. + + + If size is not equal to , size must be a multiple of + + + + + + Initializes a new instance of the structure. + + The memory object to which this range belongs. + The zero-based byte offset from the beginning of the memory object. + + Is either the size of range, or to affect the range from offset + to the end of the current mapping of the allocation. + + + + + Opaque handle to a device memory object. + + A Vulkan device operates on data in device memory via memory objects that are represented in + the API by a handle. + + + + + + Gets the owner of the resource. + + + + + Map a memory object into application address space. + + It is an application error to call on a memory object that is already mapped. + + + Will fail if the implementation is unable to allocate an appropriately sized contiguous + virtual address range, e.g. due to virtual address space fragmentation or platform + limits. In such cases, must return . The application can improve the likelihood of + success by reducing the size of the mapped range and/or removing unneeded mappings using + . + + + Does not check whether the device memory is currently in use before returning the + host-accessible pointer. The application must guarantee that any previously submitted + command that writes to this range has completed before the host reads from or writes to + that range, and that any previously submitted command that reads from that range has + completed before the host writes to that region (see here for details on fulfilling such + a guarantee). If the device memory was allocated without the set, these guarantees must be made for an extended + range: the application must round down the start of the range to the nearest multiple of + , and round the end of the + range up to the nearest multiple of . + + + While a range of device memory is mapped for host access, the application is responsible + for synchronizing both device and host access to that memory range. + + + A zero-based byte offset from the beginning of the memory object. + + The size of the memory range to map, or to map from + offset to the end of the allocation. + + + A pointer in which is returned a host-accessible pointer to the beginning of the mapped + range. This pointer minus offset must be aligned to at least . + + Vulkan returns an error code. + + + + Unmap a previously mapped memory object. + + + + + Query the current commitment for a . + + The implementation may update the commitment at any time, and the value returned by this + query may be out of date. + + + The implementation guarantees to allocate any committed memory from the indicated by the memory type that the memory object was + created with. + + + The number of bytes currently committed. + + + + Free GPU memory. + + Before freeing a memory object, an application must ensure the memory object is no longer + in use by the device—​for example by command buffers queued for execution. The memory can + remain bound to images or buffers at the time the memory object is freed, but any further + use of them (on host or device) for anything other than destroying those objects will + result in undefined behavior. If there are still any bound images or buffers, the memory + may not be immediately released by the implementation, but must be released by the time + all bound images and buffers have been destroyed. Once memory is released, it is returned + to the heap from which it was allocated. + + If a memory object is mapped at the time it is freed, it is implicitly unmapped. + + + + + Structure containing parameters of a memory allocation. + + + + + Is or a pointer to an extension-specific structure. + + + + + The size of the allocation in bytes. Must be greater than 0. + + + + + The memory type index, which selects the properties of the memory to be allocated, as + well as the heap the memory will come from. + + + + + Initializes a new instance of structure. + + + The size of the allocation in bytes. Must be greater than 0. + + + The memory type index, which selects the properties of the memory to be allocated, as + well as the heap the memory will come from. + + + Is or a pointer to an extension-specific structure. + + + + + Opaque handle to a event object. + + Events are a synchronization primitive that can be used to insert a fine-grained dependency + between commands submitted to the same queue, or between the host and a queue. Events have + two states - signaled and unsignaled. An application can signal an event, or unsignal it, on + either the host or the device. A device can wait for an event to become signaled before + executing further operations. No command exists to wait for an event to become signaled on + the host, but the current state of an event can be queried. + + + + + + Gets the parent of this resource. + + + + + Retrieve the status of an event object. Upon success, the command returns the state of + the event object with the following return codes: + * - The event is signaled + * - The event is unsignaled + + if the event is signaled; otherwise . + Vulkan returns an error code. + + + + Set an event to signaled state. + + Vulkan returns an error code. + + + + Reset an event to non-signaled state. + + Vulkan returns an error code. + + + + Destroy an event object. + + + + + Structure specifying parameters of a newly created event. + + + + + Structure specifying a two-dimensional extent. + + + + + A special valued . + + + + + An with all of its components set to zero. + + + + + The width component of the extent. + + + + + The height component of the extent. + + + + + Initializes a new instance of structure. + + The width component of the extent. + The height component of the extent. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given extents are equal. + + The first extent to compare. + The second extent to compare. + true if the extents are equal; false otherwise. + + + + Returns a boolean indicating whether the two given extents are not equal. + + The first extent to compare. + The second extent to compare. + + true if the extents are not equal; false if they are equal. + + + + + Structure specifying a three-dimensional extent. + + + + + A special valued . + + + + + An with all of its components set to zero. + + + + + The width component of the extent. + + + + + The height component of the extent. + + + + + The depth component of the extent. + + + + + Initializes a new instance of structure. + + The width component of the extent. + The height component of the extent. + The depth component of the extent. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given extents are equal. + + The first extent to compare. + The second extent to compare. + true if the extents are equal; false otherwise. + + + + Returns a boolean indicating whether the two given extents are not equal. + + The first extent to compare. + The second extent to compare. + + true if the extents are not equal; false if they are equal. + + + + + Provides extension methods for the class. + + + + + Open a command buffer marker region. + + Typical Vulkan applications will submit many command buffers in each frame, with each + command buffer containing a large number of individual commands. Being able to logically + annotate regions of command buffers that belong together as well as hierarchically + subdivide the frame is important to a developer’s ability to navigate the commands viewed holistically. + + + The marker commands and + define regions of a series of commands that are grouped together, and they can be nested + to create a hierarchy. + + + The command buffer into which the command is recorded. + Specifies the parameters of the marker region to open. + + + + Close a command buffer marker region. + + Typical Vulkan applications will submit many command buffers in each frame, with each + command buffer containing a large number of individual commands. Being able to logically + annotate regions of command buffers that belong together as well as hierarchically + subdivide the frame is important to a developer’s ability to navigate the commands viewed holistically. + + + The marker commands and + define regions of a series of commands that are grouped together, and they can be nested + to create a hierarchy. + + + The command buffer into which the command is recorded. + + + + Insert a marker label into a command buffer. + Allows insertion of a single label within a command buffer. + + The command buffer into which the command is recorded. + Specifies the parameters of the marker to insert. + + + + If the pipeline state object was created with the dynamic state enabled, the discard rectangles + are dynamically set and changed with this command. + + The command buffer into which the command will be recorded. + + The index of the first discard rectangle whose state is updated by the command. + + Structures specifying discard rectangles. + + + + Specify parameters of a command buffer marker region. + + + + + A unicode string that contains the name of the marker. + + + + + An optional RGBA color value that can be associated with the marker. A particular + implementation may choose to ignore this color value. The values contain RGBA values in + order, in the range 0.0 to 1.0. If all elements in color are set to 0.0 then it is ignored. + + + + + Initializes a new instance of the structure. + + A unicode string that contains the name of the marker. + + An optional RGBA color value that can be associated with the marker. A particular + implementation may choose to ignore this color value. The values contain RGBA values in + order, in the range 0.0 to 1.0. If all elements in color are set to 0.0 then it is ignored. + + + + + Opaque handle to a debug report callback object. + + + + + Gets the parent of the resource. + + + + + Destroy a debug report callback object. + + + + + Structure specifying parameters of a newly created debug report callback. + + For each that is created the flags determine + when that function is called. + + + A callback will be made for issues that match any bit set in its flags. The callback will + come directly from the component that detected the event, unless some other layer intercepts + the calls for its own purposes (filter them in different way, log to system error log, etc.) + An application may receive multiple callbacks if multiple objects were created. + + A callback will always be executed in the same thread as the originating Vulkan call. + + A callback may be called from multiple threads simultaneously (if the application is making + Vulkan calls from multiple threads). + + + + + + A bitmask specifying which event(s) will cause this callback to be called. Flags are + interpreted as bitmasks and multiple can be set. + + + + + The application callback function to call. + + + + + User data to be passed to the callback. + + + + + Initializes a new instance of the structure. + + + A bitmask specifying which event(s) will cause this callback to be called. Flags are + interpreted as bitmasks and multiple can be set. + + The application callback function to call. + User data to be passed to the callback. + + + + Structure specifying arguments for a debug report callback function. + + + + + The that triggered this callback. + + + + + The specifying the type of object being used or + created at the time the event was triggered. + + + + + The object where the issue was detected. may be 0 if there is no + object associated with the event. + + + + + The component (layer, driver, loader) defined value that indicates the location of the + trigger. This is an optional value. + + + + + The layer-defined value indicating what test triggered this callback. + + + + + The abbreviation of the component making the callback. + + + + + The string detailing the trigger conditions. + + + + + The user data given when the was created. + + + + + Bitmask specifying events which cause a debug report callback. + + + + + Specifies an informational message such as resource details that may be handy when + debugging an application. + + + + + Specifies use of Vulkan that may expose an app bug. Such cases may not be immediately + harmful, such as a fragment shader outputting to a location with no attachment. Other + cases may point to behavior that is almost certainly bad when unintended such as using an + image whose memory has not been filled. In general if you see a warning but you know that + the behavior is intended/desired, then simply ignore the warning. + + + + + Specifies a potentially non-optimal use of Vulkan. E.g. using when a load op would + have worked. + + + + + Specifies that an error that may cause undefined results, including an application crash. + + + + + Specifies diagnostic information from the loader and layers. + + + + + All flags. + + + + + Specify the type of an object handle. + + + + + Specifies an unknown object. + + + + + Specifies an . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies an . + + + + + Specifies an . + + + + + Specifies a . + + + + + Specifies an . + + + + + Specifies an . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Specifies a . + + + + + Provides extension methods for the class. + + + + + Give a user-friendly name to an object. + + Applications may change the name associated with an object simply by calling again with a new string. To remove a previously set + name, name should be set to an empty string. + + + The device that created the object. + Specifies the parameters of the name to set on the object. + Vulkan returns an error code. + + + + Attach arbitrary data to an object. + + In addition to setting a name for an object, debugging and validation layers may have + uses for additional binary data on a per-object basis that has no other place in the + Vulkan API. For example, a could have additional debugging + data attached to it to aid in offline shader tracing. + + + The device that created the object. + Specifies the parameters of the tag to attach to the object. + Vulkan returns an error code. + + + + Set the power state of a display. + + The display whose power state is modified. + A logical device associated with . + Specifies the new power state of . + Vulkan returns an error code. + + + + Signal a fence when a device event occurs. + + A logical device on which the event may occur. + A structure describing the event of interest to the application. + Controls host memory allocation. + The resulting fence object. + Vulkan returns an error code. + + + + Signal a fence when a display event occurs. + + A logical device associated with . + The display on which the event may occur. + + The structure describing the event of interest to the application. + + Controls host memory allocation. + The resulting fence object. + Vulkan returns an error code. + + + + Function to set HDR metadata. + + The logical device where the swapchain(s) were created. + The array of handles. + The array of structures. + + + + Specify parameters of a name to give to an object. + + + + + Specifies specifying the type of the object to be named. + + + + + The object to be named. + + + + + A unicode string specifying the name to apply to object. + + + + + Initializes a new instance of the structure. + + Vulkan object to be name. + Name to set. + + + + Initializes a new instance of the structure. + + Vulkan object to name. + Name to set. + + + + Specify parameters of a tag to attach to an object. + + + + + Specifies the type of the object to be named. + + + + + The object to be tagged. + + + + + A numerical identifier of the tag. + + + + + Bytes containing the data to be associated with the object. + + + + + Initializes a new instance of the structure. + + Vulkan object to be tagged. + A numerical identifier of the tag. + Bytes containing the data to be associated with the object. + + + + Initializes a new instance of the structure. + + Vulkan object to be tagged. + A numerical identifier of the tag. + Bytes containing the data to be associated with the object. + + + + Describe the power state of a display. + + + + + The new power state of the display. + + + + + Initializes a new instance of the structure. + + The new power state of the display. + + + + Possible power states for a display. + + + + + Specifies that the display is powered down. + + + + + Specifies that the display is in a low power mode, but may be able to transition back to + more quickly than if it were in . + This state may be the same as . + + + + + Specifies that the display is powered on. + + + + + Describe a device event to create. + + + + + Specifies when the fence will be signaled. + + + + + Initializes a new instance of the structure. + + Specifies when the fence will be signaled. + + + + Describe a display event to create. + + + + + Specifies when the fence will be signaled. + + + + + Initializes a new instance of the structure. + + Specifies when the fence will be signaled. + + + + Events that can occur on a device object. + + + + + Specifies that the fence is signaled when a display is plugged into or unplugged from the + specified device. + + Applications can use this notification to determine when they need to re-enumerate the + available displays on a device. + + + + + + Events that can occur on a display object. + + + + + Specifies that the fence is signaled when the first pixel of the next display refresh + cycle leaves the display engine for the display. + + + + + Structure to specify HDR metadata. + + + + + Is or a pointer to an extension-specific structure. + + + + + The mastering display's red primary in chromaticity coordinates. + + + + + The mastering display's green primary in chromaticity coordinates. + + + + + The mastering display's blue primary in chromaticity coordinates. + + + + + The mastering display's white-point in chromaticity coordinates. + + + + + The maximum luminance of the mastering display in nits. + + + + + The minimum luminance of the mastering display in nits. + + + + + Content's maximum luminance in nits. + + + + + The maximum frame average light level in nits. + + + + + Structure to specify X,Y chromaticity coordinates. + + + + + The X coordinate of chromaticity limited to between 0 and 1. + + + + + The Y coordinate of chromaticity limited to between 0 and 1. + + + + + Provides extension methods for the class. + + + + + Acquire access to a DisplayKhr using Xlib. + + All permissions necessary to control the display are granted to the Vulkan instance + associated with until the display is released or the X11 + connection specified by is terminated. + + + Permission to access the display may be temporarily revoked during periods when the X11 + server from which control was acquired itself looses access to . + + + During such periods, operations which require access to the display must fail with an + approriate error code. + + + If the X11 server associated with does not own , or if permission to access it has already been acquired by another + entity, the call must throw with the error code . + + + + + Vulkan returns an error code. + + + + Release access to an acquired DisplayKhr. + + The display to release control of. + Vulkan returns an error code. + + + + Provides extension methods for the class. + + + + + Create a debug report callback object. + + The instance the callback will be logged on. + + The structure which defines the conditions under which this callback will be called. + + Controls host memory allocation. + A handle. + Vulkan command not found. + Vulkan returns an error code. + + + + To inject it's own messages into the debug stream an application uses this method. + + The instance the callback will be logged on. + + Indicates the that triggered this callback. + + + The type of object being used / created at the time the event was triggered. + + + Gives the object where the issue was detected. Object may be 0 if there is no object + associated with the event. + + + A component (layer, driver, loader) defined value that indicates the "location" of the + trigger. This is an optional value. + + + A layer defined value indicating what test triggered this callback. + + Abbreviation of the component making the callback. + Unicode string detailing the trigger conditions. + Vulkan command not found. + + + + Specify validation checks to disable for a Vulkan instance. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of checks to disable. + + + + + A pointer to an array of values specifying the + validation checks to be disabled. + + + + + Specify validation checks to disable. + + + + + Specifies that all validation checks are disabled. + + + + + Specifies that shader validation is disabled. + + + + + Provides extension methods for the class. + + + + + Query surface capabilities. + + + The physical device that will be associated with the swapchain to be created, as + described for . + + The surface that will be associated with the swapchain. + The structure in which the capabilities are returned. + Vulkan returns an error code. + + + + Query the corresponding to an X11 RandR Output. + + When acquiring displays from an X11 server, an application may also wish to enumerate and + identify them using a native handle rather than a handle. + + + The physical device to query the display handle on. + A connection to the X11 server from which was queried. + An X11 RandR output ID. + The corresponding handle. + Vulkan returns an error code. + + + + Structure describing capabilities of a surface. + + + + + Is or a pointer to an extension-specific structure. + + + + + The minimum number of images the specified device supports for a swapchain created for + the surface, and will be at least one. + + + + + The maximum number of images the specified device supports for a swapchain created for + the surface, and will be either 0, or greater than or equal to . A value of 0 means that there is no limit on the number of + images, though there may be limits related to the total amount of memory used by + swapchain images. + + + + + The current width and height of the surface, or the special value indicating that the surface size will be determined by the + extent of a swapchain targeting the surface. + + + + + Contains the smallest valid swapchain extent for the surface on the specified device. The + width and height of the extent will each be less than or equal to the corresponding width + and height of , unless has the + special value described above. + + + + + Contains the largest valid swapchain extent for the surface on the specified device. The + width and height of the extent will each be greater than or equal to the corresponding + width and height of . The width and height of the extent will + each be greater than or equal to the corresponding width and height of , unless has the special value + described above. + + + + + The maximum number of layers swapchain images can have for a swapchain created for this + device and surface, and will be at least one. + + + + + A bitmask of , describing the presentation + transforms supported for the surface on the specified device, and at least one bit will + be set. + + + + + The surface's current transform relative to the presentation engine's natural + orientation, as described by . + + + + + A bitmask of , representing the alpha compositing + modes supported by the presentation engine for the surface on the specified device, and + at least one bit will be set. Opaque composition can be achieved in any alpha compositing + mode by either using a swapchain image format that has no alpha component, or by ensuring + that all pixels in the swapchain images have an alpha value of 1.0. + + + + + A bitmask of representing the ways the + application can use the presentable images of a swapchain created for the + surface on the specified device. + must be included in the set but implementations may support additional usages. + + + + + A bitfield containing one bit set for each surface counter type supported. + + + + + Surface-relative counter types. + + + + + No flags. + + + + + Indicates a counter incrementing once every time a vertical blanking period occurs on the + display associated with the surface. + + + + + Structure describing discard rectangle limits that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Max number of active discard rectangles. + + + + + Structure describing advanced blending features that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Structure describing advanced blending limits that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Structure specifying discard rectangle. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is reserved for future use. + + + + + The mode used to determine whether fragments that lie within the discard + rectangle are discarded or not. + + + + + The number of discard rectangles used by the pipeline. + + + + + A pointer to an array of structures, defining the discard + rectangles. + If the discard rectangle state is dynamic, this member is ignored. + + + + + Initializes a new instance of the structure. + + + The mode used to determine whether fragments that lie within the discard rectangle are + discarded or not. + + The number of discard rectangles used by the pipeline. + + A pointer to an array of structures, defining the discard rectangles. + If the discard rectangle state is dynamic, this member is ignored. + + + Is or a pointer to an extension-specific structure. + + + + + No flags. + + + + + Specify the discard rectangle mode. + + + + + Specifies that a fragment within any discard rectangle satisfies the test. + + + + + Specifies that a fragment not within any of the discard rectangles satisfies + the test. + + + + + Enumerant specifying the blend overlap parameter. + + + + + Specifies that there is no correlation between the source and destination + coverage. + + + + + Specifies that the source and destination coverage are considered to have + minimal overlap. + + + + + Specifies that the source and destination coverage are considered to have + maximal overlap. + + + + + Structure specifying parameters that affect advanced blend operations. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies whether the source color of the blend operation is treated as premultiplied. + + + + + Specifies whether the destination color of the blend operation is treated as premultiplied. + + + + + Specifies how the source and destination sample's coverage is correlated. + + + + + Structure specifying parameters controlling coverage modulation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is reserved for future use. + + + + + Controls which color components are modulated and is of type . + + + + + Controls whether the modulation factor is looked up from a table in . + + + + + The number of elements in . + + + + + A pointer to a table of modulation factors containing a value for each number of covered samples. + + + + + No flags. + + + + + Specify the discard rectangle mode. + + + + + Specifies that no components are multiplied by the modulation factor. + + + + + Specifies that the red, green, and blue components are multiplied by the modulation factor. + + + + + Specifies that the alpha component is multiplied by the modulation factor. + + + + + Specifies that all components are multiplied by the modulation factor. + + + + + Specify reduction mode for texture filtering. + + + + + Indicates that texel values are combined by computing a weighted average of values in the + footprint, using weights. + + + + + Indicates that texel values are combined by taking the component-wise minimum of values + in the footprint with non-zero weights. + + + + + Indicates that texel values are combined by taking the component-wise maximum of values + in the footprint with non-zero weights. + + + + + Structure describing sampler filter minmax limits that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Structure specifying sampler reduction mode. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Controls how texture filtering combines texel values. + + + + + Provides extension methods for the class. + + + + + Query the current value of a surface counter. + + The requested counters become active when the first presentation command for the + associated swapchain is processed by the presentation engine. + + + The swapchain from which to query the counter value. + The counter to query. + The current value of the counter. + Vulkan returns an error code. + + + + Opaque handle to a fence object. + + Fences are a synchronization primitive that can be used to insert a dependency from a queue + to the host. Fences have two states - signaled and unsignaled. A fence can be signaled as + part of the execution of a queue submission command. Fences can be unsignaled on the host + with . Fences can be waited on by the host with the command, and the current state can be queried with . + + + + + + Gets the parent of this resource. + + + + + Return the status of a fence. Upon success, returns the status of the fence object, with + the following return codes: + * - The fence is signaled + * - The fence is unsignaled + + if the fence is signaled; otherwise . + Vulkan returns an error code. + + + + Resets the fence object. + Defines a fence unsignal operation, which resets the fence to the unsignaled state. + + If fence is already in the unsignaled state, then the command has no effect on that fence. + + + Vulkan returns an error code. + + + + Wait for the fence to become signaled. + + If the condition is satisfied when the command is called, then the command returns + immediately. If the condition is not satisfied at the time the command is called, then + the command will block and wait up to timeout nanoseconds for the condition to become satisfied. + + + + The timeout period in units of nanoseconds. Timeout is adjusted to the closest value + allowed by the implementation-dependent timeout accuracy, which may be substantially + longer than one nanosecond, and may be longer than the requested period. + + If timeout is zero, then the command does not wait, but simply returns the current state + of the fences. The result will be thrown in this case if the + condition is not satisfied, even though no actual wait was performed. + + + If the specified timeout period expires before the condition is satisfied, the command + throws with . If the condition is satisfied before timeout + nanoseconds has expired, the command returns successfully. + + + Vulkan returns an error code. + + + + Destroy a fence object. + + + + + Structure specifying parameters of a newly created fence. + + + + + Specifies the initial state and behavior of the fence. + + + + + Initializes a new instance of the structure. + + Specifies the initial state and behavior of the fence. + + + + Bitmask specifying initial state and behavior of a fence. + + + + + Specifies that the fence object is created in the unsignaled state. + + + + + Specifies that the fence object is created in the signaled state. Otherwise, it is + created in the unsignaled state. + + + + + Available image formats. + + + + + Indicates that the format is not specified. + + + + + Specifies a two-component, 8-bit packed unsigned normalized format that has a 4-bit R + component in bits 4..7, and a 4-bit G component in bits 0..3. + + + + + Specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit R + component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits + 4..7, and a 4-bit A component in bits 0..3. + + + + + Specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit B + component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits + 4..7, and a 4-bit A component in bits 0..3. + + + + + Specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit R + component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in + bits 0..4. + + + + + Specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit B + component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in + bits 0..4. + + + + + Specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit R + component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits + 1..5, and a 1-bit A component in bit 0. + + + + + Specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit B + component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits + 1..5, and a 1-bit A component in bit 0. + + + + + Specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A + component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits + 5..9, and a 5-bit B component in bits 0..4. + + + + + Specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit signed normalized format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit signed scaled integer format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit unsigned integer format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit signed integer format that has a single 8-bit R component. + + + + + Specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R + component stored with sRGB nonlinear encoding. + + + + + Specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R + component in byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit signed normalized format that has an 8-bit R component + in byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit unsigned scaled integer format that has an 8-bit R + component in byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit signed scaled integer format that has an 8-bit R + component in byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit unsigned integer format that has an 8-bit R component + in byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit signed integer format that has an 8-bit R component in + byte 0, and an 8-bit G component in byte 1. + + + + + Specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R + component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored + with sRGB nonlinear encoding in byte 1. + + + + + Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R + component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit signed normalized format that has an 8-bit R + component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned scaled format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit signed scaled format that has an 8-bit R component in + byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned integer format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit signed integer format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R + component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with + sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear + encoding in byte 2. + + + + + Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B + component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit signed normalized format that has an 8-bit B + component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned scaled format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit signed scaled format that has an 8-bit B component in + byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned integer format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit signed integer format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2. + + + + + Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B + component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with + sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear + encoding in byte 2. + + + + + Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R + component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and + an 8-bit A component in byte 3. + + + + + Specifies a four-component, 32-bit signed normalized format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned scaled format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit signed scaled format that has an 8-bit R component in + byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned integer format that has an 8-bit R component + in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit signed integer format that has an 8-bit R component in + byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R + component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with + sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear + encoding in byte 2, and an 8-bit A component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B + component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and + an 8-bit A component in byte 3. + + + + + Specifies a four-component, 32-bit signed normalized format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned scaled format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit signed scaled format that has an 8-bit B component in + byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned integer format that has an 8-bit B component + in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit signed integer format that has an 8-bit B component in + byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A + component in byte 3. + + + + + Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B + component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with + sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear + encoding in byte 2, and an 8-bit A component in byte 3. + + + + + Specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A + component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in + bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed signed normalized format that has an 8-bit A + component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in + bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed unsigned scaled integer format that has an + 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G + component in bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed signed scaled integer format that has an 8-bit + A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in + bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed unsigned integer format that has an 8-bit A + component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in + bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed signed integer format that has an 8-bit A + component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in + bits 8..15, and an 8-bit R component in bits 0..7. + + + + + Specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A + component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in + bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and + an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7. + + + + + Specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A + component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A + component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit + A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A + component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A + component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed integer format that has a 2-bit A + component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit B component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A + component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A + component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit + A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A + component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A + component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a four-component, 32-bit packed signed integer format that has a 2-bit A + component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in + bits 10..19, and a 10-bit R component in bits 0..9. + + + + + Specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit R component. + + + + + Specifies a one-component, 16-bit signed normalized format that has a single 16-bit R component. + + + + + Specifies a one-component, 16-bit unsigned scaled integer format that has a single 16-bit + R component. + + + + + Specifies a one-component, 16-bit signed scaled integer format that has a single 16-bit R component. + + + + + Specifies a one-component, 16-bit unsigned integer format that has a single 16-bit R component. + + + + + Specifies a one-component, 16-bit signed integer format that has a single 16-bit R component. + + + + + Specifies a one-component, 16-bit signed floating-point format that has a single 16-bit R component. + + + + + Specifies a two-component, 32-bit unsigned normalized format that has a 16-bit R + component in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit signed normalized format that has a 16-bit R component + in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit unsigned scaled integer format that has a 16-bit R + component in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit signed scaled integer format that has a 16-bit R + component in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit unsigned integer format that has a 16-bit R component + in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit signed integer format that has a 16-bit R component in + bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a two-component, 32-bit signed floating-point format that has a 16-bit R + component in bytes 0..1, and a 16-bit G component in bytes 2..3. + + + + + Specifies a three-component, 48-bit unsigned normalized format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in + bytes 4..5. + + + + + Specifies a three-component, 48-bit signed normalized format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in + bytes 4..5. + + + + + Specifies a three-component, 48-bit unsigned scaled integer format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in + bytes 4..5. + + + + + Specifies a three-component, 48-bit signed scaled integer format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in + bytes 4..5. + + + + + Specifies a three-component, 48-bit unsigned integer format that has a 16-bit R component + in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5. + + + + + Specifies a three-component, 48-bit signed integer format that has a 16-bit R component + in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5. + + + + + Specifies a three-component, 48-bit signed floating-point format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in + bytes 4..5. + + + + + Specifies a four-component, 64-bit unsigned normalized format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in + bytes 4..5, and a 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit signed normalized format that has a 16-bit R component + in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, + and a 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit unsigned scaled integer format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in + bytes 4..5, and a 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit signed scaled integer format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in + bytes 4..5, and a 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit unsigned integer format that has a 16-bit R component + in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, + and a 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit signed integer format that has a 16-bit R component in + bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a + 16-bit A component in bytes 6..7. + + + + + Specifies a four-component, 64-bit signed floating-point format that has a 16-bit R + component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in + bytes 4..5, and a 16-bit A component in bytes 6..7. + + + + + Specifies a one-component, 32-bit unsigned integer format that has a single 32-bit R component. + + + + + Specifies a one-component, 32-bit signed integer format that has a single 32-bit R component. + + + + + Specifies a one-component, 32-bit signed floating-point format that has a single 32-bit R component. + + + + + Specifies a two-component, 64-bit unsigned integer format that has a 32-bit R component + in bytes 0..3, and a 32-bit G component in bytes 4..7. + + + + + Specifies a two-component, 64-bit signed integer format that has a 32-bit R component in + bytes 0..3, and a 32-bit G component in bytes 4..7. + + + + + Specifies a two-component, 64-bit signed floating-point format that has a 32-bit R + component in bytes 0..3, and a 32-bit G component in bytes 4..7. + + + + + Specifies a three-component, 96-bit unsigned integer format that has a 32-bit R component + in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11. + + + + + Specifies a three-component, 96-bit signed integer format that has a 32-bit R component + in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11. + + + + + Specifies a three-component, 96-bit signed floating-point format that has a 32-bit R + component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in + bytes 8..11. + + + + + Specifies a four-component, 128-bit unsigned integer format that has a 32-bit R component + in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, + and a 32-bit A component in bytes 12..15. + + + + + Specifies a four-component, 128-bit signed integer format that has a 32-bit R component + in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, + and a 32-bit A component in bytes 12..15. + + + + + Specifies a four-component, 128-bit signed floating-point format that has a 32-bit R + component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in + bytes 8..11, and a 32-bit A component in bytes 12..15. + + + + + Specifies a one-component, 64-bit unsigned integer format that has a single 64-bit R component. + + + + + Specifies a one-component, 64-bit signed integer format that has a single 64-bit R component. + + + + + Specifies a one-component, 64-bit signed floating-point format that has a single 64-bit R component. + + + + + Specifies a two-component, 128-bit unsigned integer format that has a 64-bit R component + in bytes 0..7, and a 64-bit G component in bytes 8..15. + + + + + Specifies a two-component, 128-bit signed integer format that has a 64-bit R component in + bytes 0..7, and a 64-bit G component in bytes 8..15. + + + + + Specifies a two-component, 128-bit signed floating-point format that has a 64-bit R + component in bytes 0..7, and a 64-bit G component in bytes 8..15. + + + + + Specifies a three-component, 192-bit unsigned integer format that has a 64-bit R + component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in + bytes 16..23. + + + + + Specifies a three-component, 192-bit signed integer format that has a 64-bit R component + in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23. + + + + + Specifies a three-component, 192-bit signed floating-point format that has a 64-bit R + component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in + bytes 16..23. + + + + + Specifies a four-component, 256-bit unsigned integer format that has a 64-bit R component + in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, + and a 64-bit A component in bytes 24..31. + + + + + Specifies a four-component, 256-bit signed integer format that has a 64-bit R component + in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, + and a 64-bit A component in bytes 24..31. + + + + + Specifies a four-component, 256-bit signed floating-point format that has a 64-bit R + component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in + bytes 16..23, and a 64-bit A component in bytes 24..31. + + + + + Specifies a three-component, 32-bit packed unsigned floating-point format that has a + 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R + component in bits 0..10. See "fundamentals-fp10" and "fundamentals-fp11". + + + + + Specifies a three-component, 32-bit packed unsigned floating-point format that has a + 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a + 9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8. + + + + + Specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit + depth component. + + + + + Specifies a two-component, 32-bit format that has 24 unsigned normalized bits in the + depth component and, optionally:, 8 bits that are unused. + + + + + Specifies a one-component, 32-bit signed floating-point format that has 32-bits in the + depth component. + + + + + Specifies a one-component, 8-bit unsigned integer format that has 8-bits in the stencil component. + + + + + Specifies a two-component, 24-bit format that has 16 unsigned normalized bits in the + depth component and 8 unsigned integer bits in the stencil component. + + + + + Specifies a two-component, 32-bit packed format that has 8 unsigned integer bits in the + stencil component, and 24 unsigned normalized bits in the depth component. + + + + + Specifies a two-component format that has 32 signed float bits in the depth component and + 8 unsigned integer bits in the stencil component. There are optionally: 24-bits that are unused. + + + + + Specifies a three-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data. This format has no + alpha and is considered opaque. + + + + + Specifies a three-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear + encoding. This format has no alpha and is considered opaque. + + + + + Specifies a four-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data, and provides 1 bit + of alpha. + + + + + Specifies a four-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear + encoding, and provides 1 bit of alpha. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding. + + + + + Specifies a one-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized red texel data. + + + + + Specifies a one-component, block-compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of signed normalized red texel data. + + + + + Specifies a two-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RG texel data with the first 64 bits + encoding red values followed by 64 bits encoding green values. + + + + + Specifies a two-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of signed normalized RG texel data with the first 64 bits + encoding red values followed by 64 bits encoding green values. + + + + + Specifies a three-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned floating-point RGB texel data. + + + + + Specifies a three-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of signed floating-point RGB texel data. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, block-compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a three-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data. This format has no + alpha and is considered opaque. + + + + + Specifies a three-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear + encoding. This format has no alpha and is considered opaque. + + + + + Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data, and provides 1 bit + of alpha. + + + + + Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear + encoding, and provides 1 bit of alpha. + + + + + Specifies a four-component, ETC2 compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values. + + + + + Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64 + bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear + encoding applied. + + + + + Specifies a one-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized red texel data. + + + + + Specifies a one-component, ETC2 compressed format where each 64-bit compressed texel + block encodes a 4x4 rectangle of signed normalized red texel data. + + + + + Specifies a two-component, ETC2 compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RG texel data with the first 64 bits + encoding red values followed by 64 bits encoding green values. + + + + + Specifies a two-component, ETC2 compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of signed normalized RG texel data with the first 64 bits + encoding red values followed by 64 bits encoding green values. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 5x4 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 5x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 5x5 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 5x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 6x5 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 6x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 6x6 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 6x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x5 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x6 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x8 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes an 8x8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x5 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x6 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x8 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear + encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x10 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 10x10 rectangle of unsigned normalized RGBA texel data with sRGB + nonlinear encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 12x10 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 12x10 rectangle of unsigned normalized RGBA texel data with sRGB + nonlinear encoding applied to the RGB components. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 12x12 rectangle of unsigned normalized RGBA texel data. + + + + + Specifies a four-component, ASTC compressed format where each 128-bit compressed texel + block encodes a 12x12 rectangle of unsigned normalized RGBA texel data with sRGB + nonlinear encoding applied to the RGB components. + + + + + Opaque handle to a framebuffer object. + + Render passes operate in conjunction with framebuffers. Framebuffers represent a collection + of specific memory attachments that a render pass instance uses. + + + + + + Gets the parent of the resource. + + + + + Gets the render pass the framebuffer is compatible with. + + + + + Destroy a framebuffer object. + + + + + Structure specifying parameters of a newly created framebuffer. + + Image subresources used as attachments must not be used via any non-attachment usage for the + duration of a render pass instance. This restriction means that the render pass has full + knowledge of all uses of all of the attachments, so that the implementation is able to make + correct decisions about when and how to perform layout transitions, when to overlap execution + of subpasses, etc. + + + It is legal for a subpass to use no color or depth/stencil attachments, and rather use shader + side effects such as image stores and atomics to produce an output. In this case, the subpass + continues to use the width, height, and layers of the framebuffer to define the dimensions of + the rendering area, and the rasterizationSamples from each pipeline’s to define the number of samples used in + rasterization; however, if is + false, then all pipelines to be bound with a given zero-attachment subpass must have + the same value for . + + + + + + An array of handles, each of which will be used as the + corresponding attachment in a render pass instance. + + + + + Dimension of the framebuffer. + Must be less than or equal to . + + + + + Dimension of the framebuffer. + Must be less than or equal to . + + + + + Dimension of the framebuffer. + Must be less than or equal to . + + + + + Initializes a new instance of the structure. + + + An array of handles, each of which will be used as the + corresponding attachment in a render pass instance. + + Dimension of the framebuffer. + Dimension of the framebuffer. + Dimension of the framebuffer. + + + + Provides Google specific extension methods for the class. + + + + + Obtain the RC duration of the PE's display. + + The swapchain to obtain the refresh duration for. + An instance of the structure. + Vulkan returns an error code. + + + + Obtain timing of a previously-presented image. + + The implementation will maintain a limited amount of history of timing information about + previous presents. + + + Because of the asynchronous nature of the presentation engine, the timing information for + a given + command will become available some time later. + + These time values can be asynchronously queried, and will be returned if available. + + All time values are in nanoseconds, relative to a monotonically-increasing clock (e.g. + `CLOCK_MONOTONIC` (see clock_gettime(2)) on Android and Linux). + + + + The swapchain to obtain presentation timing information duration for. + + An array of structures. + Vulkan returns an error code. + + + + Structure containing the RC duration of a display. + + + + + The number of nanoseconds from the start of one refresh cycle to the next. + + + + + Structure containing timing information about a previously-presented image. + + + + + An application-provided value that was given to a previous command via (see below). It can be used to uniquely identify a previous present + with the flink:vkQueuePresentKHR command. + + + + + An application-provided value that was given to a previous command via . If non-zero, it was used by the application to indicate that + an image not be presented any sooner than . + + + + + The time when the image of the swapchain was actually displayed. + + + + + The time when the image of the swapchain could have been displayed. This may differ from + if the application requested that the image be presented + no sooner than . + + + + + An indication of how early the + command was processed compared to how soon it needed to be processed, and still be + presented at . + + + + + The earliest time each image should be presented. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of swapchains being presented to by this command. + + + + + Is null or a pointer to an array of elements with + entries. If not null, each element of contains the earliest time to present the image corresponding to the entry + in the array. + + + + + The earliest time image should be presented. + + + + + An application-provided identification value, that can be used with the results of , in order to uniquely + identify this present. In order to be useful to the application, it should be unique + within some period of time that is meaningful to the application. + + + + + Indicates that the image given should not be displayed to the user any earlier than this + time. is a time in nanoseconds, relative to a + monotonically-increasing clock (e.g. `CLOCKMONOTONIC` (see ClockGettime(2)) on Android + and Linux). A value of zero indicates that the presentation engine may display the image + at any time. This is useful when the application desires to provide presentID, but + doesn't need a specific . + + + + + Handle to an unmanaged Vulkan resource. + + Handle type. + + + + Gets the handle to the unmanaged Vulkan resource. + + + + + Implicitly converts an instance of to its handle type. + + Instance to convert. + + + + that implements dispose pattern as described in + https://msdn.microsoft.com/en-us/library/b1yfkh5e%28v=vs.110%29.aspx and stores an allocator. + + Handle type. + + + + Allows the object to free unmanaged resources before it is reclaimed by garbage collection. + + + + + Gets the memory allocator for the resource. This may be null. + + + + + Gets if the instance is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting resources. + + + + + Provides extensions methods for the class. + + + + + Creates an array of pointers from the sequence of types. + + A sequence to create an array from. + An array that contains the pointers to the input handles. + + + + Creates an array of pointers from the sequence of types. + + A sequence to create an array from. + An array that contains the pointers to the input handles. + + + + Opaque handle to a image object. + + Images represent multidimensional - up to 3 - arrays of data which can be used for various + purposes (e.g. attachments, textures), by binding them to a graphics or compute pipeline via + descriptor sets, or by directly specifying them as parameters to certain commands. + + + + + + Gets the parent of the resource. + + + + + Bind device memory to an image object. + + The object describing the device memory to attach. + + The start offset of the region of memory which is to be bound to the image. The number of + bytes returned in the member in memory, starting + from bytes, will be bound to the specified image. + + Vulkan returns an error code. + + + + Returns the memory requirements for the image. + + Memory requirements of the image object. + + + + Retrieve information about an image subresource. + + Subresource layout of an image. + + + + Create an image view from an existing image. + + + The structure containing parameters to be used to create the image view. + + Controls host memory allocation. + Vulkan returns an error code. + + + + Query the memory requirements for a sparse image. + + If the image was not created with then the + result will be empty. + + + Memory requirements for a sparse image. + + + + Destroy an image object. + + + + + Structure specifying the parameters of a newly created image object. + + + + + Is or a pointer to an extension-specific structure. + + + + + Bitmask describing additional parameters of the image. + + + + + Specifies the basic dimensionality of the image. + + Layers in array textures do not count as a dimension for the purposes of the image type. + + + + + + Describes the format and type of the data elements that will be contained in the image. + + + + + Describes the number of data elements in each dimension of the base level. + The width, height, and depth members of extent must all be greater than 0. + + + + + Describes the number of levels of detail available for minified sampling of the image. + + + + + The number of layers in the image. + + + + + The number of sub-data element samples in the image. + + + + + Specifies the tiling arrangement of the data elements in memory. + + + + + A bitmask describing the intended usage of the image. + + + + + Specifies the sharing mode of the image when it will be accessed by multiple queue families. + + + + + A list of queue families that will access this image (ignored if is not ). + + + + + Specifies the initial of all image subresources of the image. + + + + + Bitmask specifying additional parameters of an image. + + + + + No flags. + + + + + Specifies that the image will be backed using sparse memory binding. + + + + + Specifies that the image can be partially backed using sparse memory binding. Images + created with this flag must also be created with the flag. + + + + + Specifies that the image will be backed using sparse memory binding with memory ranges + that might also simultaneously be backing another image (or another portion of the same + image). Images created with this flag must also be created with the flag. + + + + + Specifies that the image can be used to create an with a + different format from the image. + + + + + Specifies that the image can be used to create an of type or . + + + + + Specifies that the image can be used to create a of type or . + + + + + Specifies that the image can be used with a non-zero length of the member passed into . This flag also has the effect of + making the image use the standard sparse image block dimensions. + + + + + Specifies the type of an image object. + + + + + Specify a one-dimensional image. + + + + + Specify a two-dimensional image. + + + + + Specify a three-dimensional image. + + + + + Bitmask specifying intended usage of an image. + + + + + Specifies that the image can be used as the source of a transfer command. + + + + + Specifies that the image can be used as the destination of a transfer command. + + + + + Specifies that the image can be used to create a suitable for + occupying a slot either of type or , and be sampled by a shader. + + + + + Specifies that the image can be used to create a suitable for + occupying a slot of type . + + + + + Specifies that the image can be used to create a suitable for use + as a color or resolve attachment in a . + + + + + Specifies that the image can be used to create a suitable for use + as a depth/stencil attachment in a . + + + + + Specifies that the memory bound to this image will have been allocated with the . This bit can be set for any image that can + be used to create a suitable for use as a color, resolve, + depth/stencil, or input attachment. + + + + + Specifies that the image can be used to create a suitable for + occupying slot of type ; be read from a shader as an input attachment; + and be used as an input attachment in a framebuffer. + + + + + Layout of image and image subresources. + + + + + Does not support device access. This layout must only be used as the or member, or as the old layout in an image + transition. When transitioning out of this layout, the contents of the memory are not + guaranteed to be preserved. + + + + + Supports all types of device access. + + + + + Must only be used as a color or resolve attachment in a . This + layout is valid only for image subresources of images created with the usage bit enabled. + + + + + Must only be used as a depth/stencil attachment in a . This + layout is valid only for image subresources of images created with the usage bit enabled. + + + + + Must only be used as a read-only depth/stencil attachment in a + and/or as a read-only image in a shader (which can be read as a sampled image, combined + image/sampler and/or input attachment). This layout is valid only for image subresources + of images created with the usage bit + enabled. Only image subresources of images created with can be used as sampled image or combined image/sampler + in a shader. Similarly, only image subresources of images created with can be used as input attachments. + + + + + Must only be used as a read-only image in a shader (which can be read as a sampled image, + combined image/sampler and/or input attachment). This layout is valid only for image + subresources of images created with the or usage bit enabled. + + + + + Must only be used as a source image of a transfer command (see the definition of . This layout is valid only for image subresources of + images created with the usage bit enabled. + + + + + Must only be used as a destination image of a transfer command. This layout is valid only + for image subresources of images created with the usage bit enabled. + + + + + Does not support device access. This layout must only be used as the or member, or as the old layout in an image + transition. When transitioning out of this layout, the contents of the memory are + preserved. This layout is intended to be used as the initial layout for an image whose + contents are written by the host, and hence the data can be written to memory + immediately, without first executing a layout transition. Currently, is only useful with images + because there is not a standard layout defined for images. + + + + + Must only be used for presenting a swapchain image for display. A swapchain's image must + be transitioned to this layout before calling , and must be transitioned away + from this layout after calling . + + + + + Is valid only for shared presentable images, and must be used for any usage the image supports. + + + + + Structure specifying an attachment description. + + + + + A bitmask specifying additional properties of the attachment. + + + + + Specifies the format of the image that will be used for the attachment. + + + + + The number of samples of the image. + + + + + Specifies how the contents of color and depth components of the attachment are treated at + the beginning of the subpass where it is first used. + + + + + Specifies how the contents of color and depth components of the attachment are treated at + the end of the subpass where it is last used. + + + + + Specifies how the contents of stencil components of the attachment are treated at the + beginning of the subpass where it is first used, and must be one of the same values + allowed for above. + + + + + Specifies how the contents of stencil components of the attachment are treated at the end + of the last subpass where it is used, and must be one of the same values allowed for above. + + + + + The layout the attachment image subresource will be in when a render pass instance begins. + + + + + The layout the attachment image subresource will be transitioned to when a render pass + instance ends. During a render pass instance, an attachment can use a different layout in + each subpass, if desired. + + + + + Bitmask specifying additional properties of an attachment. + + + + + Specifies that the attachment aliases the same device memory as other attachments. + + + + + Specify how contents of an attachment are treated at the beginning of a subpass. + + + + + Specifies that the previous contents of the image within the render area will be + preserved. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this + uses the access type . + + + + + Specifies that the contents within the render area will be cleared to a uniform value, + which is specified when a render pass instance is begun. For attachments with a + depth/stencil format, this uses the access type . For attachments with a color format, this + uses the access type . + + + + + Specifies that the previous contents within the area need not be preserved; the contents + of the attachment will be undefined inside the render area. For attachments with a + depth/stencil format, this uses the access type . For attachments with a color format, this + uses the access type . + + + + + Specify how contents of an attachment are treated at the end of a subpass. + + + + + Specifies the contents generated during the render pass and within the render area are + written to memory. For attachments with a depth/stencil format, this uses the access type + . For attachments with a color format, + this uses the access type . + + + + + Specifies the contents within the render area are not needed after rendering, and may be + discarded; the contents of the attachment will be undefined inside the render area. For + attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this + uses the access type . + + + + + Structure specifying a image format properties. + + + + + Are the maximum image dimensions. + + + + + The maximum number of mipmap levels. Must either be equal to 1 (valid only if tiling is + ) or be equal to `ceil(log2(max(width, height, depth))) + + 1`. Width, height and depth are taken from the corresponding members of . + + + + + The maximum number of array layers. Must either be equal to 1 or be greater than or equal + to the member. A value of 1 is + valid only if tiling is or if type is . + + + + + A bitmask of specifying all the supported sample + counts for this image. + + + + + An upper bound on the total image size in bytes, inclusive of all image subresources. + Implementations may have an address space limit on total size of a resource, which is + advertised by this property. Must be at least 2^31. + + + + + Structure specifying an image subresource. + + + + + An selecting the image aspect. + + + + + Selects the mipmap level. + + + + + Selects the array layer. + + + + + Initializes a new instance of structure. + + An selecting the image aspect. + Selects the mipmap level. + Selects the array layer. + + + + Structure specifying sparse image format properties. + + + + + A bitmask specifying which aspects of the image the properties apply to. + + + + + The width, height, and depth of the sparse image block in texels or compressed texel blocks. + + + + + A bitmask specifying additional information about the sparse resource. + + + + + Bitmask specifying additional information about a sparse image resource. + + + + + Specifies that the image uses a single mip tail region for all array layers. + + + + + Specifies that the first mip level whose dimensions are not integer multiples of the + corresponding dimensions of the sparse image block begins the mip tail region. + + + + + Specifies that the image uses non-standard sparse image block dimensions, and the image + granularity values do not match the standard sparse image block dimensions for the given + pixel format. + + + + + Structure specifying sparse image memory requirements. + + + + + The sparse image format properties. + + + + + The first mip level at which image subresources are included in the mip tail region. + + + + + The memory size (in bytes) of the mip tail region. If + contains , this is the size of the + whole mip tail, otherwise this is the size of the mip tail of a single array layer. This + value is guaranteed to be a multiple of the sparse block size in bytes. + + + + + The opaque memory offset used with to bind + the mip tail region(s). + + + + + The offset stride between each array-layer's mip tail, if + does not contain (otherwise the value + is undefined). + + + + + Structure specifying subresource layout. + + + + + The byte offset from the start of the image where the image subresource begins. + + + + + The size in bytes of the image subresource. size includes any extra memory that is + required based on . + + + + + Describes the number of bytes between each row of texels in an image. + + + + + Describes the number of bytes between each array layer of an image. + + + + + Describes the number of bytes between each slice of 3D image. + + + + + Bitmask specifying sample counts supported for an image used for storage + operations. + + + + + Specifies an image with one sample per pixel. + + + + + Specifies an image with 2 samples per pixel. + + + + + Specifies an image with 4 samples per pixel. + + + + + Specifies an image with 8 samples per pixel. + + + + + Specifies an image with 16 samples per pixel. + + + + + Specifies an image with 32 samples per pixel. + + + + + Specifies an image with 64 samples per pixel. + + + + + Opaque handle to a image view object. + + Image objects are not directly accessed by pipeline shaders for reading or writing image + data. Instead, image views representing contiguous ranges of the image subresources and + containing additional metadata are used for that purpose. Views must be created on images of + compatible types, and must represent a valid subset of image subresources. + + + + + + Gets the parent of the resource. + + + + + Destroy an image view object. + + + + + Structure specifying parameters of a newly created image view. + + + + + Specifies the type of the image view. + + + + + A describing the format and type used to interpret data elements in + the image. + + + + + Specifies a remapping of color components (or of depth or stencil components after they + have been converted into color components). + + + + + A range selecting the set of mipmap levels and array layers to be accessible to the view. + + Must be a valid image subresource range for image. If image was created with the flag, format must be compatible with the format + used to create image. If image was not created with the flag, format must be identical to the format used + to create image. If image is non-sparse then it must be bound completely and contiguously + to a single object. + + + + + + Initializes a new instance of the structure. + + + A describing the format and type used to interpret data elements in + the image. + + + A range selecting the set of mipmap levels and array layers to be accessible to the view. + + Specifies the type of the image view. + + Specifies a remapping of color components (or of depth or stencil components after they + have been converted into color components). + + + + + Image view types. + + + + + Structure specifying a color component mapping. + + + + + Specifies the component value placed in the R component of the output vector. + + + + + Specifies the component value placed in the G component of the output vector. + + + + + Specifies the component value placed in the B component of the output vector. + + + + + Specifies the component value placed in the A component of the output vector. + + + + + Initializes a new instance of the structure. + + + Specifies the component value placed in the R component of the output vector. + + + Specifies the component value placed in the G component of the output vector. + + + Specifies the component value placed in the B component of the output vector. + + + Specifies the component value placed in the A component of the output vector. + + + + + Specify how a component is swizzled. + + + + + Specifies that the component is set to the identity swizzle. + + + + + Specifies that the component is set to zero. + + + + + Specifies that the component is set to either 1 or 1.0, depending on whether the type of + the image view format is integer or floating-point respectively. + + + + + Specifies that the component is set to the value of the R component of the image. + + + + + Specifies that the component is set to the value of the G component of the image. + + + + + Specifies that the component is set to the value of the B component of the image. + + + + + Specifies that the component is set to the value of the A component of the image. + + + + + Structure specifying a image subresource range. + + + + + A bitmask specifying which aspect(s) of the image are included in the view. + + + + + The first mipmap level accessible to the view. + + + + + The number of mipmap levels (starting from ) accessible to the view. + + + + + The first array layer accessible to the view. + + + + + The number of array layers (starting from ) accessible to the view. + + + + + Initializes a new instance of the structure. + + + A bitmask specifying which aspect(s) of the image are included in the view. + + The first mipmap level accessible to the view. + + The number of mipmap levels (starting from ) accessible to the view. + + The first array layer accessible to the view. + + The number of array layers (starting from ) accessible to the view. + + + + + Bitmask specifying which aspects of an image are included in a view. + + + + + Specifies the color aspect. + + + + + Specifies the depth aspect. + + + + + Specifies the stencil aspect. + + + + + Specifies the metadata aspect, used for sparse resource operations. + + + + + Opaque handle to an instance object. + + There is no global state in Vulkan and all per-application state is stored in an object. Creating an object initializes the Vulkan + library and allows the application to pass information about itself to the implementation. + + + + + + Create a new Vulkan instance. + + + An instance of controlling creation of the instance. + + Controls host memory allocation. + Vulkan returns an error code. + + + + Enumerates the physical devices accessible to a Vulkan instance. + + A list of accessible physical devices. The result is never null. + Vulkan returns an error code. + + + + Return a function handle for a command or if not found. + + Vulkan commands are not necessarily exposed statically on a platform. Function pointers + for all Vulkan commands can be obtained with this method. + + + The name of the command to obtain. + Function handle for a command or if not found. + is null. + + + + Return a function delegate for a command or null if not found. + + Vulkan commands are not necessarily exposed statically on a platform. Function pointers + for all Vulkan commands can be obtained with this method. + + + The name of the command to obtain. + Function delegate for a command or null if not found. + is null. + + + + Returns global extension properties. + + + Is either null or a unicode string naming the layer to retrieve extensions from. + When parameter is null, only extensions provided by the Vulkan implementation or + by implicitly enabled layers are returned. + + Properties of available extensions for layer. + Vulkan returns an error code. + + + + Returns global layer properties. + + Properties of available layers. + Vulkan returns an error code. + + + + Destroy an instance of Vulkan. + + + + + Structure specifying parameters of a newly created instance. + + + + + Is or a pointer to an extension-specific structure. + + + + + The information that helps implementations recognize behavior inherent to classes of applications. + + + + + Unicode strings containing the names of layers to enable for the created instance. + + + + + Unicode strings containing the names of extensions to enable. + + + + + Initializes a new instance of the structure. + + + The information that helps implementations recognize behavior inherent to classes of applications. + + + Unicode strings containing the names of layers to enable for the created instance. + + + Unicode strings containing the names of extensions to enable. + + Is or a pointer to an extension-specific structure. + + + + Structure specifying application info. + + + + + The unicode string containing the name of the application. + + + + + The unsigned integer variable containing the developer-supplied version + number of the application. + + + + + The unicode string containing the name of the engine (if any) used to create the application. + + + + + The unsigned integer variable containing the developer-supplied version + number of the engine used to create the application. + + + + + The version of the Vulkan API against which the application expects to run. If is the implementation must ignore it, + otherwise if the implementation does not support the requested + it must return . The patch version number + specified in is ignored when creating an instance object. Only + the major and minor versions of the instance must match those requested in . + + + + + Initializes a new instance of the structure. + + The unicode string containing the name of the application. + + The unsigned integer variable containing the developer-supplied version number of the application. + + + The unicode string containing the name of the engine (if any) used to create the application. + + + The unsigned integer variable containing the developer-supplied version number of the + engine used to create the application. + + + The version of the Vulkan API against which the application expects to run. If is the implementation must ignore it, + otherwise if the implementation does not support the requested + it must return . The patch version number + specified in is ignored when creating an instance object. Only + the major and minor versions of the instance must match those requested in . + + + + + Structure specifying a extension properties. + + + + + The name of the extension. + + + + + The version of this extension. It is an integer, incremented with backward compatible changes. + + + + + Returns a string that represents the current object. + + A string that represents the current object. + + + + Structure specifying layer properties. + + + + + A unicode string specifying the name of the layer. Use this name in the array to enable this layer for an instance. + + + + + The Vulkan version the layer was written to. + + + + + The version of this layer. It is an integer, increasing with backward compatible changes. + + + + + A unicode string providing additional details that can be used by the application to + identify the layer. + + + + + Returns a string that represents the current object. + + A string that represents the current object. + + + + Utilities for interoping with the Vulkan C API. + + + + + Allocates memory from the unmanaged memory of the process. + + The required number of bytes in memory. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Allocates memory from the unmanaged memory of the process. + + Type to allocate for. + + The number of instances of to allocate for. + + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Resizes a block of memory previously allocated with . + + A pointer to memory allocated with . + The new size of the allocated block. + + A pointer to the reallocated memory. This memory must be released using . + + + + + Frees memory previously allocated from the unmanaged memory of the process. + + The handle to free memory from. + + + + Frees memory previously allocated from the unmanaged memory of the process. + + The handle to free memory from. + + + + Frees memory previously allocated from the unmanaged memory of the process. + Both the handle as well as the handles pointed by the handle are freed. + + A handle to handles to free memory from. + Number of handles to free. + + + + Converts an unmanaged function pointer to a delegate of a specified type. + + The type of the delegate to return. + The unmanaged function pointer to convert. + An instance of the specified delegate type. + + + + Converts a delegate of a specified type to a function pointer that is callable from + unmanaged code. + + The delegate to be passed to unmanaged code. + The type of delegate to convert. + + A value that can be passed to unmanaged code, which, in turn, can use it to call the + underlying managed delegate. + + + + + Copies a value of type to the given location. + + The type of value to copy. + A pointer to the value to copy. + The location to copy to. + + + + Copies values of type to the given location. + + The type of values to copy. + A pointer to the value to copy. + The location to copy to. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies values of type to the given location. + + The type of values to copy. + The location to copy to. + A reference to the values to copy. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the gived object to the specified type. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Utilities for interoping with strings. + + + + + Decodes specified null-terminated UTF-8 bytes into string. + + Pointer to decode from. + + A string that contains the results of decoding the specified sequence of bytes. + + + + + Decodes specified null-terminated UTF-8 bytes into string. + + Pointer to decode from. + + A string that contains the results of decoding the specified sequence of bytes. + + + + + Encodes a string as null-terminated UTF-8 bytes and stores into specified pointer. + + The string to encode. + Pointer to store encoded bytes. + + The maximum number of bytes the string can occupy found by . + + + + + Encodes a string as null-terminated UTF-8 bytes and allocates to unmanaged memory. + + The string to encode. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Encodes strings as null-terminated UTF-8 byte sequences and allocates sequences as + well as pointers to unmanaged memory. + + Strings to encode. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Calculates the maximum number of bytes produced by encoding the specified number of + UTF-8 characters. + + The string to get byte count for. + + The maximum number of bytes produced by encoding the specified number of characters. + + + + + Utilities for interoping with structs. + + + + + Allocates unmanaged memory and copies the specified structure over. + + Type of structure to copy. + The value to copy. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Allocates unmanaged memory and copies the specified structure over. + If the value is null, returns . + + Type of structure to copy. + The value to copy. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Allocates unmanaged memory and copies the specified structures over. + If the array is null or empty, returns . + + Type of elements to copy. + The values to copy. + + A pointer to the newly allocated memory. This memory must be released using the method. + + + + + Gets a per-thread unique id to distuingish the static instance of . + Useful when tracking unmanaged memory. + + + + + Occurs when unmanaged memory is allocated in Debug mode. + + + + + Occurs when unmanaged memory is freed in Debug mode. + + + + + Provides Khronos specific extension methods for the class. + + + + + Pushes descriptor updates into a command buffer. + + + The command buffer that the descriptors will be recorded in. + + + Indicates whether the descriptors will be used by graphics pipelines or compute pipelines. + + There is a separate set of push descriptor bindings for each of graphics and compute, so + binding one does not disturb the other. + + + The object used to program the bindings. + + The set number of the descriptor set in the pipeline layout that will be updated. + + Structures describing the descriptors to be updated. + + + + Pushes descriptor updates into a command buffer using a descriptor update template. + + + The command buffer that the descriptors will be recorded in. + + + A descriptor update template which defines how to interpret the descriptor information in + . + + + The object used to program the bindings. + + It must be compatible with the layout used to create the handle. + + + + The set number of the descriptor set in the pipeline layout that will be updated. + + This must be the same number used to create the handle. + + + + Points to memory which contains the descriptors for the templated update. + + + + + Structure specifying values for Direct3D 12 fence-backed semaphores. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of semaphore wait values specified in . + + + + + Values for the corresponding semaphores in to + wait for. + + + + + The number of semaphore signal values specified in . + + + + + Values for the corresponding semaphores in to + set when signaled. + + + + + Initializes a new instance of the structure. + + + Values for the corresponding semaphores in to + wait for. + + + Values for the corresponding semaphores in to + set when signaled. + + + Is or a pointer to an extension-specific structure. + + + + + Provides Khronos specific extension methods for the class. + + + + + Trim a command pool. + + Trimming a command pool recycles unused memory from the command pool back to the system. + + Command buffers allocated from the pool are not affected by the command. + + The command pool to trim. + + + + Provides Khronos specific extension methods for the class. + + + + + Update the contents of a descriptor set object using an update template. + + The descriptor set to update. + + Specifies the update mapping between the application pointer and the descriptor set to update. + + + A pointer to memory which contains one or more structures of , , or used to write the descriptors. + + + + + Opaque handle to a descriptor update template. + + A descriptor update template specifies a mapping from descriptor update information in host + memory to descriptors in a descriptor set. It is designed to avoid passing redundant + information to the driver when frequently updating the same set of descriptors in descriptor sets. + + + + + + Gets the parent of the resource. + + + + + Destroy a descriptor update template object. + + + + + Structure specifying parameters of a newly created descriptor update template. + + + + + Structures describing the descriptors to be updated by the descriptor update template. + + + + + Specifies the type of the descriptor update template. If set to it can only be used to update + descriptor sets with a fixed . If set to it can only be used to push + descriptor sets using the provided , , and number. + + + + + The the parameter update template will be + used with. All descriptor sets which are going to be updated through the newly created + descriptor update template must be created with this layout. is the descriptor set layout used to build the descriptor + update template. All descriptor sets which are going to be updated through the newly + created descriptor update template must be created with a layout that matches (is the + same as, or defined identically to) this layout. This parameter is ignored if is not . + + + + + Indicates whether the descriptors will be used by graphics pipelines or compute pipelines. + + + + + The object used to program the bindings. + + + + + The set number of the descriptor set in the pipeline layout that will be updated. + + + + + Describes a single descriptor update of the descriptor update template. + + + + + Must be a valid binding in the descriptor set layout implicitly specified when using a + descriptor update template to update descriptors. + + + + + And descriptorCount must be less than or equal to the number of array elements in the + descriptor set binding implicitly specified when using a descriptor update template to + update descriptors, and all applicable consecutive bindings. + + + + + The number of descriptors to update. If descriptorCount is greater than the number of + remaining array elements in the destination binding, those affect consecutive bindings in + a manner similar to above. + + + + + Specifies the type of the descriptor. + + + + + The offset in bytes of the first binding in the raw data structure. + + + + + The stride in bytes between two consecutive array elements of the descriptor update + informations in the raw data structure. The stride is useful in case the bindings are + stored in structs along with other data. + + + + + Indicates the valid usage of the descriptor update template. + + + + + Specifies that the descriptor update template will be used for descriptor set updates only. + + + + + Specifies that the descriptor update template will be used for push descriptor updates only. + + + + + Provides Khronos specific extension methods for the class. + + + + + Create a swapchain. + + The device to create the swapchain for. + The structure specifying the parameters of the created swapchain. + + The allocator used for host memory allocated for the swapchain object when there is no + more specific allocator available. + + Created swapchain object. + Vulkan returns an error code. + + + + Create multiple swapchains that share presentable images. + + Is similar to , except that it takes an array of structures, and returns an array of swapchain objects. + + + The swapchain creation parameters that affect the properties and number of presentable + images must match between all the swapchains.If the displays used by any of the + swapchains do not use the same presentable image layout or are incompatible in a way that + prevents sharing images, swapchain creation will fail with the result code . If any error occurs, no swapchains will be + created. Images presented to multiple swapchains must be re-acquired from all of them + before transitioning away from . After destroying + one or more of the swapchains, the remaining swapchains and the presentable images can + continue to be used. + + + The device to create the swapchains for. + Structures specifying the parameters of the created swapchains. + + The allocator used for host memory allocated for the swapchain objects when there is no + more specific allocator available. + + The created swapchain objects. + Vulkan returns an error code. + + + + Create a new descriptor update template. + + The logical device that creates the descriptor update template. + + Specifies the set of descriptors to update with a single call to . + + Controls host memory allocation. + The resulting descriptor update template object. + Vulkan returns an error code. + + + + Get properties of external memory Win32 handles. + + Windows memory handles compatible with Vulkan may also be created by non-Vulkan APIs + using methods beyond the scope of this specification. + + + The logical device that will be importing . + The type of the handle . + the handle which will be imported. + Properties of . + Vulkan returns an error code. + + + + Get properties of external memory file descriptors. + + POSIX file descriptor memory handles compatible with Vulkan may also be created by + non-Vulkan APIs using methods beyond the scope of this specification. + + + The logical device that will be importing . + The type of the handle . + The handle which will be imported. + Properties of the handle . + Vulkan returns an error code. + + + + Import a semaphore from a Windows HANDLE. + + The logical device that created the semaphore. + Structure specifying the semaphore and import parameters. + Vulkan returns an error code. + + + + Import a semaphore from a POSIX file descriptor. + + The logical device that created the semaphore. + Structure specifying the semaphore and import parameters. + Vulkan returns an error code. + + + + Returns the memory requirements for specified Vulkan object. + + The logical device that owns the buffer. + Structure containing parameters required for the memory requirements query. + Structure in which the memory requirements of the buffer object are returned. + + + + Returns the memory requirements for specified Vulkan object. + + The logical device that owns the image. + Structure containing parameters required for the memory requirements query. + Structure in which the memory requirements of the image object are returned. + + + + Structure specifying Windows handle to import to a semaphore. + + + + + Is or a pointer to an extension-specific structure. + + + + + The semaphore into which the state will be imported. + + + + + Specifies additional parameters for the semaphore payload import operation. + + + + + Specifies the type of . + + + + + The external handle to import, or null. + + + + + A NULL-terminated UTF-16 string naming the underlying synchronization primitive to import, + or null. + + + + + Structure specifying POSIX file descriptor to import to a semaphore. + + + + + Is or a pointer to an extension-specific structure. + + + + + The semaphore into which the payload will be imported. + + + + + Specifies additional parameters for the semaphore payload import operation. + + + + + Specifies the type of . + + + + + The external handle to import. + + + + + Bitmask of valid external semaphore handle types. + + + + + Specifies a POSIX file descriptor handle that has only limited valid usage outside of + Vulkan and other compatible APIs. + + It must be compatible with the POSIX system calls dup, dup2, close, + and the non-standard system call dup3. Additionally, it must be transportable over + a socket using an SCM_RIGHTS control message. + + + It owns a reference to the underlying synchronization primitive represented by its Vulkan + semaphore object. + + + + + + Specifies an NT handle that has only limited valid usage outside of Vulkan and other + compatible APIs. + + It must be compatible with the functions DuplicateHandle, CloseHandle, + CompareObjectHandles, GetHandleInformation, and SetHandleInformation. + + + It owns a reference to the underlying synchronization primitive represented by its Vulkan + semaphore object. + + + + + + Specifies a global share handle that has only limited valid usage outside of Vulkan and + other compatible APIs. + It is not compatible with any native APIs. + + It does not own own a reference to the underlying synchronization primitive represented + its Vulkan semaphore object, and will therefore become invalid when all Vulkan semaphore + objects associated with it are destroyed. + + + + + + Specifies an NT handle returned by ID3D12Device::CreateSharedHandle referring to a + Direct3D 12 fence. + + It owns a reference to the underlying synchronization primitive associated with the + Direct3D fence. + + + + + + Specifies a POSIX file descriptor handle to a Linux or Android Fence object. + + It can be used with any native API accepting a valid fence object file descriptor as input. + + + It owns a reference to the underlying synchronization primitive associated with the file descriptor. + + + Implementations which support importing this handle type must accept any type of fence FD + supported by the native system they are running on. + + + + + + Properties of external memory windows handles. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask containing one bit set for every memory type which the specified windows handle + can be imported as. + + + + + Properties of external memory file descriptors. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask containing one bit set for every memory type which the specified file + descriptor can be imported as. + + + + + Type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The to query. + + + + + Structure specifying memory requirements. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Describes the memory requirements of the resource. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The to query. + + + + + Pointer to next structure. + + + + + Pointer to next structure. + + + + + Provides Khronos specific extension methods for the class. + + + + + Get a Windows HANDLE for a memory object. + + The memory object from which the handle will be exported. + The type of handle requested. + The Windows handle representing the underlying resources of the device memory object. + Vulkan returns an error code. + + + + Get a POSIX file descriptor for a memory object. + + The memory object from which the handle will be exported. + The type of handle requested. + A file descriptor representing the underlying resources of the device memory object. + Vulkan returns an error code. + + + + Opaque handle to a display object. + + + + + Gets the parent of this resource. + + + + + Query display supported modes. + Each display has one or more supported modes associated with it by default. + + An array of structures. + Vulkan returns an error code. + + + + Opaque handle to a display mode object. + There is currently no way to destroy "built in" modes. + + + + + Gets the parent of the resource. + + + + + Query capabilities of a mode and plane combination. + + Applications that wish to present directly to a display must select which layer, or + "plane" of the display they wish to target, and a mode to use with the display. + + Each display supports at least one plane. + + + The plane which the application intends to use with the display, and is less than the + number of display planes supported by the device. + + The structure in which the capabilities are returned. + + + + Structure specifying parameters of a newly created display mode object. + + + + + A structure describing the display parameters to use in creating the new mode. If the + parameters are not compatible with the specified display, the implementation must throw + with . + + + + + Initializes a new instance of the structure. + + + A structure describing the display parameters to use in creating the new mode. If the + parameters are not compatible with the specified display, the implementation must throw + with . + + + + + Provides Khronos specific extension methods for the class. + + + + + Create a object for an Android native window. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a object for a Mir window. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a object for a Wayland window. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a object for a Win32 window. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a object for an X11 window, using the Xlib client-side library. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a structure representing a display plane and mode. + + The to associate with the surface. + + The structure specifying which mode, plane, and other parameters to use. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Create a object for a X11 window, using the XCB client-side library. + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Provides Khronos specific extension methods for the class. + + + + + Query if presentation is supported. + + The physical device. + The queue family. + The surface to query for. + true if supported; otherwise false. + Vulkan returns an error code. + + + + Query surface capabilities. + + + The physical device that will be associated with the swapchain to be created, + + The surface that will be associated with the swapchain. + A structure in which the capabilities are returned. + Vulkan returns an error code. + + + + Query color formats supported by surface. + + A valid physical device. + The surface to query. + An array of valid surface formats. + Vulkan returns an error code. + + + + Query supported presentation modes. + + + The physical device that will be associated with the swapchain to be created. + + The surface that will be associated with the swapchain. + An array of valid present modes. + Vulkan returns an error code. + + + + Query information about the available displays. + + A valid physical device. + An array of structures. + Vulkan returns an error code. + + + + Query the plane properties. + + Images are presented to individual planes on a display. Devices must support at least one + plane on each display.Planes can be stacked and blended to composite multiple images on + one display. Devices may support only a fixed stacking order and fixed mapping between + planes and displays, or they may allow arbitrary application specified stacking orders + and mappings between planes and displays. + + + A valid physical device. + An array of structures. + Vulkan returns an error code. + + + + Get list of displays a plane supports. + + A valid physical device. + The plane which the application wishes to use. + An array of display handles. + Vulkan returns an error code. + + + + Get the capabilities of a mode and plane combination. + + The physical device associated with the display. + + The display mode the application intends to program when using the specified plane. + + The plane which the application intends to use with the display. + A structure. + Vulkan returns an error code. + + + + Query physical device for presentation to Mir. + + Determines whether a queue family of a physical device supports presentation to the Mir compositor. + + + A physical device handle. + Index to a queue family. + A pointer to a MirConnection. + true if the physical device supports presentation to the Mir compositor. + + + + Query physical device for presentation to Wayland. + + Determines whether a queue family of a physical device supports presentation to the + Wayland compositor. + + + A physical device handle. + Index to a queue family. + A pointer to a wl_display value. + + true if the physical device supports presentation to the Wayland compositor. + + + + + Query physical device for presentation to X11 server using XCB. + + Determines whether a queue family of a physical device supports presentation to an X11 + server, using the XCB client-side library. + + + A physical device handle. + Index to a queue family. + Pointer to a xcb_connection_t value. + An xcb_visualid_t. + true if the physical device supports presentation to an X11 server. + + + + Query physical device for presentation to Windows desktop. + + Determines whether a queue family of a physical device supports presentation to the + Microsoft Windows desktop. + + + A physical device handle. + Index to a queue family. + + true if the physical device supports presentation to The Windows desktop. + + + + + Query physical device for presentation to X11 server using Xlib. + + Determines whether a queue family of a physical device supports presentation to an X11 + server, using the Xlib client-side library. + + + A physical device handle. + Index to a queue family. + Pointer to an Xlib Display. + An X11 VisualID. + true if the physical device supports presentation to an X11 server. + + + + Reports capabilities of a physical device. + + + The physical device from which to query the supported features. + + A structure in which the physical device features are returned. + + + + Returns properties of a physical device. + + + The handle to the physical device whose properties will be queried. + + The structure, that will be filled with returned information. + + + + Lists physical device's format capabilities. + + The physical device from which to query the format properties. + The format whose properties are queried. + + The structure in which physical device properties for are returned. + + + + + Lists physical device's image format capabilities. + + The physical device from which to query the image capabilities. + + A structure, describing the parameters that would be consumed by . + + A structure in which capabilities are returned. + Vulkan returns an error code. + + + + Reports properties of the queues of the specified physical device. + + + The handle to the physical device whose properties will be queried. + + An array of structures. + + + + Reports memory information for the specified physical device. + + The handle to the device to query. + The structure in which the properties are returned. + + + + Retrieve properties of an image format applied to sparse images. + + Each element will describe properties for one set of image aspects that are bound + simultaneously in the image. + + + This is usually one element for each aspect in the image, but for interleaved + depth/stencil images there is only one element describing the combined aspects. + + + + The physical device from which to query the sparse image capabilities. + + Contains input parameters to the command. + An array of structures. + + + + Reports capabilities of a surface on a physical device. + + + The physical device that will be associated with the swapchain to be created, as + described for . + + + Describes the surface and other fixed parameters that would be consumed by . + + A structure in which the capabilities are returned. + Vulkan returns an error code. + + + + Query color formats supported by surface. + + + The physical device that will be associated with the swapchain to be created, as + described for . + + + Describes the surface and other fixed parameters that would be consumed by . + + An array of structures. + Vulkan returns an error code. + + + + Query the external handle types supported by buffers. + + The physical device from which to query the buffer capabilities. + + Structure, describing the parameters that would be consumed by . + + A structure in which capabilities are returned. + + + + Function for querying external semaphore handle capabilities. + Semaphores may support import and export of external semaphore handles. + + + The physical device from which to query the semaphore capabilities. + + + Describes the parameters that would be consumed by . + + Structure in which capabilities are returned. + + + + Structure describing capabilities of a surface. + + + + + The minimum number of images the specified device supports for a swapchain created for + the surface, and will be at least one. + + + + + The maximum number of images the specified device supports for a swapchain created for + the surface, and will be either 0, or greater than or equal to . A value of 0 means that there is no limit on the number of + images, though there may be limits related to the total amount of memory used by + presentable images. + + + + + The current width and height of the surface, or the special value indicating that the surface size will be determined by the + extent of a swapchain targeting the surface. + + + + + Contains the smallest valid swapchain extent for the surface on the specified device. The + width and height of the extent will each be less than or equal to the corresponding width + and height of , unless has the + special value described above. + + + + + Contains the largest valid swapchain extent for the surface on the specified device. The + width and height of the extent will each be greater than or equal to the corresponding + width and height of . The width and height of the extent will + each be greater than or equal to the corresponding width and height of , unless has the special value + described above. + + + + + The maximum number of layers presentable images can have for a swapchain created for this + device and surface, and will be at least one. + + + + + A bitmask of , indicating the presentation transforms + supported for the surface on the specified device. + At least one bit will be set. + + + + + Indicates the surface's current transform relative to the presentation engine's natural + orientation. + + + + + A bitmask of , representing the alpha compositing + modes supported by the presentation engine for the surface on the specified device, and + at least one bit will be set. Opaque composition can be achieved in any alpha compositing + mode by either using an image format that has no alpha component, or by ensuring + that all pixels in the presentable images have an alpha value of 1.0. + + + + + A bitmask of representing the ways the application can use the + presentable images of a swapchain created for the surface on the specified device. + + must be included in the set but implementations + may support additional usages. + + + + + + Structure describing a supported swapchain format-color space pair. + + While the of a presentable image refers to the encoding of each pixel, + the determines how the presentation engine interprets the pixel values. + + + + + + A that is compatible with the specified surface. + + + + + A presentation that is compatible with the surface. + + + + + Structure describing an available display device. + + + + + A handle that is used to refer to the display described here. This handle will be valid + for the lifetime of the Vulkan instance. + + + + + A unicode string containing the name of the display. Generally, this will be the name + provided by the display's EDID. It can be null if no suitable name is available. + If not null, the memory it points to must remain accessible as long as display is valid. + + + + + Describes the physical width and height of the visible portion of the display, in millimeters. + + + + + Describes the physical, native, or preferred resolution of the display. + + + + + Tells which transforms are supported by this display. This will contain one or more of + the bits from . + + + + + Tells whether the planes on this display can have their z order changed. If this is + true, the application can re-arrange the planes on this display in any order + relative to each other. + + + + + Tells whether the display supports self-refresh/internal buffering. If this is + true, the application can submit persistent present operations on swapchains + created against this display. + + + + + Structure describing display plane properties. + + + + + The handle of the display the plane is currently associated with. If the plane is not + currently attached to any displays, this will be . + + + + + The current z-order of the plane. This will be between 0 and the count of the elements + returned by . + + + + + Structure describing display parameters associated with a display mode. + + + + + The 2D extents of the visible region. + + + + + The number of times the display is refreshed each second multiplied by 1000. + + + + + Structure describing display mode properties. + + + + + A handle to the display mode described in this structure. This handle will be valid for + the lifetime of the Vulkan instance. + + + + + Is a structure describing the display parameters + associated with displayMode. + + + + + Structure describing capabilities of a mode and plane combination. + + + + + A bitmask of describing the supported alpha + blending modes. + + + + + Is the minimum source rectangle offset supported by this plane using the specified mode. + + + + + The maximum source rectangle offset supported by this plane using the specified mode. The + x and y components of maxSrcPosition must each be greater than or equal to the x and y + components of , respectively. + + + + + The minimum source rectangle size supported by this plane using the specified mode. + + + + + The maximum source rectangle size supported by this plane using the specified mode. + + + + + Has similar semantics to , but apply to the output region + within the mode rather than the input region within the source image. + Unlike , may contain negative values. + + + + + Has similar semantics to , but apply to the output region + within the mode rather than the input region within the source image. + Unlike , may contain negative values. + + + + + Has similar semantics to , but apply to the output region + within the mode rather than the input region within the source image. + + + + + Has similar semantics to , but apply to the output region + within the mode rather than the input region within the source image. + + + + + Structure describing the fine-grained features that can be supported by an implementation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure describing the fine-grained features of the Vulkan 1.0 API. + + + + + Structure specifying physical device properties. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure describing the properties of the physical device. This structure is written + with the same values as if it were written by . + + + + + Structure specifying image format properties. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure describing features supported by the requested format. + + + + + Structure specifying a image format properties. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. The chain is used to allow the specification of additional capabilities to be + returned from . + + + + + A structure in which capabilities are returned. + + + + + Structure specifying image creation parameters. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. The chain is used to provide additional image parameters to . + + + + + The image format, corresponding to . + + + + + The image type, corresponding to . + + + + + The image tiling, corresponding to . + + + + + The intended usage of the image, corresponding to . + + + + + A bitmask describing additional parameters of the image, corresponding to . + + + + + Structure providing information about a queue family. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure which is populated with the same values as in . + + + + + Structure specifying physical device memory properties. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure which is populated with the same values as in . + + + + + Structure specifying sparse image format properties. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A structure which is populated with the same values as in . + + + + + Structure specifying sparse image format inputs. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The image format. + + + + + The dimensionality of image. + + + + + The number of samples per pixel as defined in . + + + + + A bitmask describing the intended usage of the image. + + + + + The tiling arrangement of the data elements in memory. + + + + + Structure describing capabilities of a surface. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Supported minimum number of images for the surface. + + + + + Supported maximum number of images for the surface, 0 for unlimited. + + + + + Current image width and height for the surface, (0, 0) if undefined. + + + + + Supported minimum image width and height for the surface. + + + + + Supported maximum image width and height for the surface. + + + + + Supported maximum number of image layers for the surface. + + + + + 1 or more bits representing the transforms supported. + + + + + The surface's current transform relative to the device's natural orientation. + + + + + 1 or more bits representing the alpha compositing modes supported. + + + + + Supported image usage flags for the surface. + + + + + Must not include unless the surface queried + is a display surface. + + + + + Structure describing push descriptor limits that can be supported by an implementation. + + + + + The type of this structure. + + + + + Pointer to next structure. + + + + + The maximum number of descriptors that can be used in a descriptor set created with set. + + + + + Initializes a new instance of the structure. + + + The maximum number of descriptors that can be used in a descriptor set created with set. + + Pointer to next structure. + + + + Structure specifying a surface and related swapchain creation parameters. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The that will be associated with the swapchain. + + + + + Initializes a new instance of the structure. + + + The that will be associated with the swapchain. + + + Is or a pointer to an extension-specific structure. + + + + + Structure describing capabilities of a surface. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Describes the capabilities of the specified surface. + + + + + Initializes a new instance of the structure. + + Describes the capabilities of the specified surface. + + Is or a pointer to an extension-specific structure. + + + + + Structure describing a supported swapchain format tuple. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Describes a format-color space pair that is compatible with the specified surface. + + + + + Initializes a new instance of the structure. + + + Describes a format-color space pair that is compatible with the specified surface. + + + Is or a pointer to an extension-specific structure. + + + + + Structure describing capabilities of a surface for shared presentation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask representing the ways the application can use the shared presentable image from + a swapchain created with set to or for the surface on the specified device. + + must be included in the set but implementations + may support additional usages. + + + + + + Initializes a new instance of the structure. + + + A bitmask representing the ways the application can use the shared presentable image from + a swapchain created with set to or for the surface on the specified device. + + must be included in the set but implementations + may support additional usages. + + + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying external image creation parameters. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bit indicating a memory handle type that will be used with the memory associated with + the image. + + + + + Initializes a new instance of the structure. + + + A bit indicating a memory handle type that will be used with the memory associated with + the image. + + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying external memory handle type capabilities. + + + + + A bitmask describing the features of handle type. + + + + + A bitmask specifying handle types that can be used to import objects from which handle + type can be exported. + + + + + A bitmask specifying handle types which can be specified at the same time as handle type + when creating an image compatible with external memory. + + + + + Structure specifying supported external handle capabilities. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies various capabilities of the external handle type when used with the specified + buffer creation parameters. + + + + + Structure specifying buffer creation parameters. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask describing additional parameters of the buffer, corresponding to . + + + + + A bitmask describing the intended usage of the buffer, corresponding to . + + + + + A bit indicating a memory handle type that will be used with the memory associated with + the buffer. + + + + + Structure specifying supported external handle properties. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies various capabilities of the external handle type when used with the specified + image creation parameters. + + + + + Bitmask specifying external memory handle types. + + + + + Specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and + other compatible APIs. + + It must be compatible with the POSIX system calls dup, dup2, close, and the + non-standard system call dup3. Additionally, it must be transportable over a socket + using an SCM_RIGHTS control message. + + + It owns a reference to the underlying memory resource represented by its Vulkan memory object. + + + + + + Specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs. + + It must: be compatible with the functions DuplicateHandle, CloseHandle, + CompareObjectHandles, GetHandleInformation, and SetHandleInformation. + + + It owns a reference to the underlying memory resource represented by its Vulkan memory object. + + + + + + Specifies a global share handle that has only limited valid usage outside of Vulkan and other + compatible APIs. + It is not compatible with any native APIs. + + It does not own own a reference to the underlying memory resource represented its Vulkan + memory object, and will therefore become invalid when all Vulkan memory objects + associated with it are destroyed. + + + + + + Specifies an NT handle returned by IDXGIResource1::CreateSharedHandle referring to a Direct3D 10 + or 11 texture resource. + It owns a reference to the memory used by the Direct3D resource. + + + + + Specifies a global share handle returned by IDXGIResource::GetSharedHandle referring to a + Direct3D 10 or 11 texture resource. + + It does not own own a reference to the underlying Direct3D resource, and will therefore + become invalid when all Vulkan memory objects and Direct3D resources associated with it + are destroyed. + + + + + + Specifies an NT handle returned by ID3D12Device::CreateSharedHandle referring to a Direct3D 12 + heap resource. + It owns a reference to the resources used by the Direct3D heap. + + + + + Specifies an NT handle returned by ID3D12Device::CreateSharedHandle referring to a Direct3D 12 + committed resource. + It owns a reference to the memory used by the Direct3D resource. + + + + + Bitmask specifying features of an external memory handle type. + + + + + Specifies that images or buffers created with the specified parameters and handle type + must use the mechanisms defined in the "VK_NV_dedicated_allocation" extension to to + create (or import) a dedicated allocation for the image or buffer. + + + + + Specifies that handles of this type can be exported from Vulkan memory objects. + + + + + Specifies that handles of this type can be imported as Vulkan memory objects. + + + + + Structure specifying semaphore creation parameters. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bit indicating an external semaphore handle type for which capabilities will be returned. + + + + + Structure describing supported external semaphore handle features. + + + + + Pointer to next structure. + + + + + A bitmask specifying handle types that can be used to import objects from which + handleType can be exported. + + + + + A bitmask specifying handle types which can be specified at the same time as handleType + when creating a semaphore. + + + + + A bitmask describing the features of handle type. + + + + + Bitfield describing features of an external semaphore handle type. + + + + + Specifies that handles of this type can be exported from Vulkan semaphore objects. + + + + + Specifies that handles of this type can be imported as Vulkan semaphore objects. + + + + + Structure describing variable pointers features that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Bitmask specifying additional parameters of semaphore payload import. + + + + + Indicates that the semaphore payload will be imported only temporarily, regardless of the + permanence of handleType. + + + + + Bitmask of valid external fence handle types. + + + + + Indicates a POSIX file descriptor handle that has only limited valid usage outside of + Vulkan and other compatible APIs. It must be compatible with the POSIX system calls + dup, dup2, close, and the non-standard system call dup3. + Additionally, it must be transportable over a socket using an SCMRIGHTS control + message. It owns a reference to the underlying synchronization primitive represented by + its Vulkan fence object. + + + + + Indicates an NT handle that has only limited valid usage outside of Vulkan and other + compatible APIs. It must be compatible with the functions DuplicateHandle, + CloseHandle, CompareObjectHandles, GetHandleInformation, and + SetHandleInformation. It owns a reference to the underlying synchronization + primitive represented by its Vulkan fence object. + + + + + Indicates a global share handle that has only limited valid usage outside of Vulkan and + other compatible APIs. It is not compatible with any native APIs. It does not own a + reference to the underlying synchronization primitive represented by its Vulkan fence + object, and will therefore become invalid when all Vulkan fence objects associated with + it are destroyed. + + + + + Indicates a POSIX file descriptor handle to a Linux Sync File or Android Fence. It can be + used with any native API accepting a valid sync file or fence as input. It owns a + reference to the underlying synchronization primitive associated with the file + descriptor. Implementations which support importing this handle type must accept any type + of sync or fence FD supported by the native system they are running on. + + + + + Bitfield describing features of an external fence handle type. + + + + + Indicates handles of this type can be exported from Vulkan fence objects. + + + + + Indicates handles of this type can be imported to Vulkan fence objects. + + + + + Bitmask specifying additional parameters of fence payload import. + + + + + Specifies that the fence payload will be imported only temporarily, regardless of the + permanence of handle type. + + + + + Structure specifying IDs related to the physical device. + + + + + Is or a pointer to an extension-specific structure. + + + + + An array of size , containing 8-bit values that represent a + universally unique identifier for the device. + + + + + An array of size , containing 8-bit values that represent a + universally unique identifier for the driver build in use by the device. + + + + + A array of size , containing 8-bit values that represent a + locally unique identifier for the device. + + + + + A bitfield identifying the node within a linked device adapter corresponding to the device. + + + + + A boolean value that will be true if contains a valid + LUID, and false if it does not. + + + + + Specify that an image may be backed by external memory. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies one or more external memory handle types. + + + + + Specify that a buffer may be backed by external memory. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies one or more external memory handle types. + + + + + Specify exportable handle types for a device memory object. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies one or more memory handle types the application can export from the resulting + allocation. The application can request multiple handle types for the same allocation. + + + + + Import Win32 memory created on the same physical device. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies the type of handle or name. + + + + + The external handle to import, or null. + + + + + A NULL-terminated UTF-16 string naming the underlying memory resource to import, or null. + + + + + Structure specifying additional attributes of Windows handles exported from a memory. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A pointer to a Windows SECURITY_ATTRIBUTES structure specifying security + attributes of the handle. + + + + + A DWORD specifying access rights of the handle. + + + + + A NULL-terminated UTF-16 string to associate with the underlying resource referenced by + NT handles exported from the created memory. + + + + + Structure describing a Win32 handle semaphore export operation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The memory object from which the handle will be exported. + + + + + The type of handle requested. + + + + + Structure describing a POSIX FD semaphore export operation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The memory object from which the handle will be exported. + + + + + The type of handle requested. + + + + + Structure specifying additional attributes of Windows handles exported from a + semaphore. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A pointer to a Windows SECURITY_ATTRIBUTES structure specifying security + attributes of the handle. + + + + + A DWORD specifying access rights of the handle. + + + + + A NULL-terminated UTF-16 string to associate with the underlying synchronization + primitive referenced by NT handles exported from the created semaphore. + + + + + Structure describing a Win32 handle semaphore export operation. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The semaphore from which state will be exported. + + + + + The type of handle requested. + + + + + Structure describing a POSIX FD semaphore export operation. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is the semaphore from which state will be exported. + + + + + Is the type of handle requested. + + + + + Structure specifying fence creation parameters. + + + + + Is the type of this structure. + + + + + Is NULL or a pointer to an extension-specific structure. + + + + + Is a value indicating an external fence + handle type for which capabilities will be returned. + + + + + Structure describing supported external fence handle features. + + + + + Pointer to next structure. + + + + + Is a bitmask of indicating which types of + imported handle handleType can be exported from. + + + + + Is a bitmask of specifying handle types + which can be specified at the same time as handleType when creating a fence. + + + + + Is a bitmask of indicating the features of handleType. + + + + + Structure specifying handle types that can be exported from a fence. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is a bitmask of specifying one or more + fence handle types the application can export from the resulting fence. The application + can request multiple handle types for the same fence. + + + + + (None). + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is the fence into which the state will be imported. + + + + + Is a bitmask of specifying additional parameters for + the fence payload import operation. + + + + + Specifies the type of handle. + + + + + Is the external handle to import, or null. + + + + + Is the NULL-terminated UTF-16 string naming the underlying synchronization primitive to + import, or null. + + + + + Structure specifying additional attributes of Windows handles exported from a + fence. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is a pointer to a Windows SECURITY_ATTRIBUTES structure specifying security + attributes of the handle. + + + + + Is a xDWORD specifying access rights of the handle. + + + + + Is a NULL-terminated UTF-16 string to associate with the underlying + synchronization primitive referenced by NT handles exported from the created + fence. + + + + + Structure describing a Win32 handle fence export operation. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is the fence from which state will be exported. + + + + + Is the type of handle requested. + + + + + (None). + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is the fence into which the payload will be imported. + + + + + Is a bitmask of specifying additional parameters for + the fence payload import operation. + + + + + Specifies the type of fd. + + + + + Is the external handle to import. + + + + + Structure describing a POSIX FD fence export operation. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is the fence from which state will be exported. + + + + + Is the type of handle requested. + + + + + Structure describing features supported by VKKHR16bitStorage. + + + + + Pointer to next structure. + + + + + 16-bit integer/floating-point variables supported in BufferBlock. + + + + + 16-bit integer/floating-point variables supported in BufferBlock and Block. + + + + + 16-bit integer/floating-point variables supported in PushConstant. + + + + + 16-bit integer/floating-point variables supported in shader inputs and outputs. + + + + + Structure describing dedicated allocation requirements of buffer and image resources. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Indicates that the implementation would prefer a dedicated allocation for this resource. + The application is still free to suballocate the resource but it may get better + performance if a dedicated allocation is used. + + + + + Indicates that a dedicated allocation is required for this resource. + + + + + Specify a dedicated memory allocation resource. + + + + + Is the type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is 0 or a handle of an image which this memory will be bound to. + + + + + Is 0 or a handle of a buffer which this memory will be bound to. + + + + + Provides Khronos specific extension methods for the class. + + + + + Queue an image for presentation. + + + The queue that is capable of presentation to the target surface's platform on the same + device as the image's swapchain. + + The structure specifying the parameters of the presentation. + Vulkan returns an error code. + + + + Queue an image for presentation. + + + The queue that is capable of presentation to the target surface's platform on the same + device as the image's swapchain. + + Semaphore to wait for before presenting. + Valid swapchain handle. + Index into the array of swapchain's presentable images. + Vulkan returns an error code. + + + + Structure describing parameters of a queue presentation. + + + + + Is or a pointer to an extension-specific structure. + + + + + Semaphores to wait for before presenting. + + + + + Valid handles. + + + + + Indices into the array of each swapchain's presentable images, with swapchain count entries. + + Each entry in this array identifies the image to present on the corresponding entry in + the array. + + + + + + typed elements with swapchain count entries. + + Applications that do not need per-swapchain results can use null for . + + + If not null, each entry in will be set to the for presenting the swapchain corresponding to the same index in . + + + + + + Initializes a new instance of the structure. + + Semaphores to wait for before presenting. + Valid handles. + + Indices into the array of each swapchain’s presentable images, with swapchain count entries. + + Each entry in this array identifies the image to present on the corresponding entry in + the array. + + + + typed elements with swapchain count entries. + + Applications that do not need per-swapchain results can use null for . + + + If not null, each entry in will be set to the for presenting the swapchain corresponding to the same index in . + + + + Is or a pointer to an extension-specific structure. + + + + + Structure describing parameters of a queue presentation to a swapchain. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A rectangular region of pixels to present. + It must be a subset of the image being presented. + + If is not specified, this region will be assumed to + be the entire presentable image. + + + + + + A rectangular region within the visible region of the swapchain's display mode. + + If is not specified, this region will be assumed to + be the entire visible region of the visible region of the swapchain's mode. + + + If the specified rectangle is a subset of the display mode's visible region, content from + display planes below the swapchain's plane will be visible outside the rectangle. + + + If there are no planes below the swapchain's, the area outside the specified rectangle + will be black. + + + If portions of the specified rectangle are outside of the display's visible region, + pixels mapping only to those portions of the rectangle will be discarded. + + + + + + If this is true, the display engine will enable buffered mode on displays that + support it. This allows the display engine to stop sending content to the display until a + new image is presented. The display will instead maintain a copy of the last presented + image. This allows less power to be used, but may increase presentation latency. + + If is not specified, persistent mode will not be used. + + + + + + Structure hint of rectangular regions changed by . + + When the "VK_KHR_incremental_present" extension is enabled, additional fields can be + specified that allow an application to specify that only certain rectangular regions of the + presentable images of a swapchain are changed. + + + This is an optimization hint that a presentation engine may use to only update the region of + a surface that is actually changing. The application still must ensure that all pixels of a + presented image contain the desired values, in case the presentation engine ignores this hint. + + + An application can provide this hint by including the + structure in the chain. + + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of swapchains being presented to by this command. + + + + + Is null or a pointer to an array of elements with + entries. If not null, each element of contains the region that has changed since the last present to the + swapchain in the corresponding entry in the array. + + + + + Initializes a new instance of the structure. + + The number of swapchains being presented to by this command. + + Is null or a pointer to an array of elements with + entries. If not null, each element of contains the region that has changed since the last present to the + swapchain in the corresponding entry in the array. + + + Is or a pointer to an extension-specific structure. + + + + + Structure containing rectangular region changed by for a given . + + + + + The number of rectangles in , or zero if the entire image has + changed and should be presented. + + + + + Is either null or a pointer to an array of structures. + + The structure is the framebuffer coordinates, plus layer, of a + portion of a presentable image that has changed and must be presented. If non- + null, each entry in is a rectangle of the given image + that has changed since the last image was presented to the given swapchain. + + + + + + Initializes a new instance of the structure. + + + The number of rectangles in , or zero if the entire image has + changed and should be presented. + + + Is either null or a pointer to an array of structures. + + The structure is the framebuffer coordinates, plus layer, of a + portion of a presentable image that has changed and must be presented. If non- + null, each entry in is a rectangle of the given image + that has changed since the last image was presented to the given swapchain. + + + + + + Structure containing a rectangle, including layer, changed by for a given . + + + + + The origin of the rectangle, in pixels. + + + + + The size of the rectangle, in pixels. + + + + + The layer of the image. + For images with only one layer, the value of must be 0. + + + + + Initializes a new instance of the structure. + + The origin of the rectangle, in pixels. + The size of the rectangle, in pixels. + + The layer of the image. + For images with only one layer, the value of must be 0. + + + + + Provides Khronos specific extension methods for the class. + + + + + Get a Windows HANDLE for a semaphore. + + The semaphore from which state will be exported. + The type of handle requested. + The Windows handle representing the semaphore state. + Vulkan returns an error code. + + + + Get a POSIX file descriptor handle for a semaphore. + + The semaphore from which state will be exported. + The type of handle requested. + The file descriptor representing the semaphore state. + Vulkan returns an error code. + + + + A object abstracts a native platform surface or window object for + use with Vulkan. + + The extension declares the object, and provides a function for destroying + objects. Separate platform-specific extensions each provide a function for creating a object for the respective platform. From the application’s perspective + this is an opaque handle, just like the handles of other Vulkan objects. + + + + + + Gets the parent of this resource. + + + + + Destroy a surface object. + + + + + Structure specifying parameters of a newly created Android surface object. + + + + + Pointer to the Android ANativeWindow to associate the surface with. + + + + + Initializes a new instance of structure. + + + Pointer to the Android ANativeWindow to associate the surface with. + + + + + Structure specifying parameters of a newly created Mir surface object. + + + + + Pointer to the MirConnection to associate the surface with. + + + + + Pointer to the MirSurface for the window to associate the surface with. + + + + + Initializes a new instance of structure. + + Pointer to the MirConnection to associate the surface with. + + Pointer to the MirSurface for the window to associate the surface with. + + + + + Structure specifying parameters of a newly created Wayland surface object. + + + + + Wayland wl_display to associate the surface with. + + + + + Wayland wl_surface to associate the surface with. + + + + + Initializes a new instance of structure. + + Wayland wl_display to associate the surface with. + Wayland wl_surface to associate the surface with. + + + + Structure specifying parameters of a newly created Win32 surface object. + + + + + Win32 HINSTANCE to associate the surface with. + + + + + Win32 HWND for the window to associate the surface with. + + + + + Initializes a new instance of the structure. + + Win32 HINSTANCE to associate the surface with. + Win32 HWND to associate the surface with. + + + + Structure specifying parameters of a newly created Xlib surface object. + + + + + A pointer to an Xlib Display connection to the X server. + + + + + A pointer to an Xlib Window to associate the surface with. + + + + + Initializes a new instance of the structure. + + A pointer to an Xlib Display connection to the X server. + A pointer to an Xlib Window to associate the surface with. + + + + Structure specifying parameters of a newly created display plane surface object. + + + + + A handle specifying the mode to use when displaying this surface. + + + + + The plane on which this surface appears. + + + + + The z-order of the plane. + + + + + Specifies the transform to apply to the images as part of the scanout operation. + + + + + The global alpha value. + This value is ignored if is not . + + + + + Specifies the type of alpha blending to use. + + + + + The size of the presentable images to use with the surface. + + + + + Initializes a new instance of the structure. + + + A handle specifying the mode to use when displaying this surface. + + The plane on which this surface appears. + The z-order of the plane. + + Specifies the transform to apply to the images as part of the scanout operation. + + + The global alpha value. This value is ignored if is not . + + Specifies the type of alpha blending to use. + Size of the images to use with this surface. + + + + Alpha blending type. + + + + + No flags. + + + + + Specifies that the source image will be treated as opaque. + + + + + Specifies that a global alpha value must be specified that will be applied to all pixels + in the source image. + + + + + Specifies that the alpha value will be determined by the alpha channel of the source + image's pixels. + If the source format contains no alpha values, no blending will be applied. + + The source alpha values are not premultiplied into the source image's other color channels. + + + + + + Is equivalent to , except the source alpha values are assumed to be + premultiplied into the source image's other color channels. + + + + + Structure specifying parameters of a newly created Xcb surface object. + + + + + A pointer to an xcb_connection_t to the X server. + + + + + The xcb_window_t for the X11 window to associate the surface with. + + + + + Initializes a new instance of the structure. + + A pointer to an xcb_connection_t to the X server. + The xcb_window_t for the X11 window to associate the surface with. + + + + Opaque handle to a swapchain object. + + A swapchain object (a.k.a. swapchain) provides the ability to present rendering results to a surface. + + + A swapchain is an abstraction for an array of presentable images that are associated with a + surface. The swapchain images are represented by objects created by the + platform. One image (which can be an array image for multiview/stereoscopic-3D surfaces) is + displayed at a time, but multiple images can be queued for presentation. An application + renders to the image, and then queues the image for presentation to the surface. + + A native window cannot be associated with more than one swapchain at a time. + + Further, swapchains cannot be created for native windows that have a non-Vulkan graphics API + surface associated with them. + + + + + + Gets the parent of this resource. + + + + + Gets the format. + + + + + Obtain the array of presentable images associated with a swapchain. + + An array of objects. + Vulkan returns an error code. + + + + Retrieve the index of the next available presentable image. + + + Indicates how long the function waits, in nanoseconds, if no image is available. + + If timeout is 0, the command will not block, but will either succeed or throw with . If timeout is -1, the function will not return until an image + is acquired from the presentation engine. Other values for timeout will cause the + function to return when an image becomes available, or when the specified number of + nanoseconds have passed (in which case it will return throw with ). An error can also cause the command to return early. + + + + null or a semaphore to signal. and must not both be equal to null. + + + null or a fence to signal. and must not both be equal to null. + + The index of the next available presentable image. + Vulkan returns an error code. + + + + Get a swapchain's status. The possible return values should be interpreted as follows: + + * - Indicates the presentation engine is presenting the + contents of the shared presentable image, as per the swapchain's + + + * - The swapchain no longer matches the surface + properties exactly, but the presentation engine is presenting the contents of the + shared presentable image, as per the swapchain's + + + * - The surface has changed in such a way that it + is no longer compatible with the swapchain + + * - The surface is no longer available + + Status of the swapchain. + + + + Destroy a swapchain object. + + + + + Structure specifying parameters of a newly created swapchain object. + + + + + A bitmask indicating parameters of swapchain creation. + + + + + The that the swapchain will present images to. + + + + + The minimum number of presentable images that the application needs. + + The platform will either create the swapchain with at least that many images, or will + fail to create the swapchain. + + + + + + A format that is valid for swapchains on the specified surface. + + + + + Color space that is valid for swapchains on the specified surface. + + + + + The size (in pixels) of the swapchain. + + Behavior is platform-dependent when the image extent does not match the surface's as returned by . + + + + + + The number of views in a multiview/stereo surface. + For non-stereoscopic-3D applications, this value is 1. + + + + + A bitmask indicating how the application will use the swapchain's presentable images. + + + + + The sharing mode used for the images of the swapchain. + + + + + Queue family indices having access to the images of the swapchain in case is . + + + + + A bitmask describing the transform, relative to the presentation engine's natural + orientation, applied to the image content prior to presentation. + + If it does not match the value + returned by , the + presentation engine will transform the image content as part of the presentation operation. + + + + + + A bitmask indicating the alpha compositing mode to use when this surface is composited + together with other surfaces on certain window systems. + + + + + The presentation mode the swapchain will use. + + A swapchain's present mode determines how incoming present requests will be processed and + queued internally. + + + + + + Indicates whether the Vulkan implementation is allowed to discard rendering operations + that affect regions of the surface which are not visible. + + If set to true, the presentable images associated with the swapchain may not own + all of their pixels. Pixels in the presentable images that correspond to regions of the + target surface obscured by another window on the desktop or subject to some other + clipping mechanism will have undefined content when read back. Pixel shaders may not + execute for these pixels, and thus any side affects they would have had will not occur. + + + If set to false, presentable images associated with the swapchain will own all the + pixels they contain. Setting this value to true does not guarantee any clipping + will occur, but allows more optimal presentation methods to be used on some platforms. + + + + + + Existing swapchain to replace, if any. + + + + + Initializes a new instance of the structure. + + + The that the swapchain will present images to. + + + The size (in pixels) of the swapchain. + + Behavior is platform-dependent when the image extent does not match the surface's as returned by . + + + + A bitmask describing the transform, relative to the presentation engine's natural + orientation, applied to the image content prior to presentation. + + If it does not match the value + returned by , the + presentation engine will transform the image content as part of the presentation operation. + + + + A bitmask indicating how the application will use the swapchain's presentable images. + + A bitmask indicating parameters of swapchain creation. + + The minimum number of presentable images that the application needs. The platform will + either create the swapchain with at least that many images, or will fail to create the swapchain. + + A format that is valid for swapchains on the specified surface. + + A bitmask indicating the alpha compositing mode to use when this surface is composited + together with other surfaces on certain window systems. + + + The number of views in a multiview/stereo surface. For non-stereoscopic-3D applications, + this value is 1. + + + The presentation mode the swapchain will use. + + A swapchain's present mode determines how incoming present requests will be processed and + queued internally. + + + + Indicates whether the Vulkan implementation is allowed to discard rendering operations + that affect regions of the surface which are not visible. + + Existing swapchain to replace, if any. + + + + Bitmask controlling swapchain creation. + + + + + No flags. + + + + + Specifies that images created from the swapchain (i.e. with the swapchain member of set to this swapchain's + handle) must use . + + + + + Supported color space of the presentation engine. + + + + + Indicates support for the sRGB color space. + + + + + Indicates support for the Display-P3 color space and applies an sRGB-like transfer function. + + + + + Indicates support for the extended sRGB color space and applies a linear transfer function. + + + + + Indicates support for the DCI-P3 color space and applies a linear OETF. + + + + + Indicates support for the DCI-P3 color space and applies the Gamma 2.6 OETF. + + + + + Indicates support for the BT709 color space and applies a linear OETF. + + + + + Indicates support for the BT709 color space and applies the SMPTE 170M OETF. + + + + + Indicates support for the BT2020 color space and applies a linear OETF. + + + + + Indicates support for HDR10 (BT2020 color) space and applies the SMPTE ST2084 Perceptual + Quantizer (PQ) OETF. + + + + + Indicates support for Dolby Vision (BT2020 color space), proprietary encoding, and + applies the SMPTE ST2084 OETF. + + + + + Indicates support for HDR10 (BT2020 color space) and applies the Hybrid Log Gamma (HLG) OETF. + + + + + Indicates support for the AdobeRGB color space and applies a linear OETF. + + + + + Indicates support for the AdobeRGB color space and applies the Gamma 2.2 OETF. + + + + + Indicates that color components are used "as is". This is intended to allow application + to supply data for color spaces not described here. + + + + + Indicates support for the extended sRGB color space and applies an sRGB transfer function. + + + + + Presentation transforms supported on a device. + + + + + Indicates that image content is presented without being transformed. + + + + + Indicates that image content is rotated 90 degrees clockwise. + + + + + Indicates that image content is rotated 180 degrees clockwise. + + + + + Indicates that image content is rotated 270 degrees clockwise. + + + + + Indicates that image content is mirrored horizontally. + + + + + Indicates that image content is mirrored horizontally, then rotated 90 degrees clockwise. + + + + + Indicates that image content is mirrored horizontally, then rotated 180 degrees clockwise. + + + + + Indicates that image content is mirrored horizontally, then rotated 270 degrees clockwise. + + + + + Indicates that presentation transform is not specified, and is instead determined by + platform-specific considerations and mechanisms outside Vulkan. + + + + + Alpha compositing modes supported on a device. + + + + + The alpha channel, if it exists, of the images is ignored in the compositing process. + Instead, the image is treated as if it has a constant alpha of 1.0. + + + + + The alpha channel, if it exists, of the images is respected in the compositing process. + The non-alpha channels of the image are expected to already be multiplied by the alpha + channel by the application. + + + + + The alpha channel, if it exists, of the images is respected in the compositing process. + The non-alpha channels of the image are not expected to already be multiplied by the + alpha channel by the application; instead, the compositor will multiply the non-alpha + channels of the image by the alpha channel during compositing. + + + + + The way in which the presentation engine treats the alpha channel in the images is + unknown to the Vulkan API. Instead, the application is responsible for setting the + composite alpha blending mode using native window system commands. If the application + does not set the blending mode using native window system commands, then a + platform-specific default will be used. + + + + + Presentation mode supported for a surface. + + + + + Indicates that the presentation engine does not wait for a vertical blanking period to + update the current image, meaning this mode may result in visible tearing. No internal + queuing of presentation requests is needed, as the requests are applied immediately. + + + + + Indicates that the presentation engine waits for the next vertical blanking period to + update the current image. Tearing cannot be observed. An internal single-entry queue is + used to hold pending presentation requests. If the queue is full when a new presentation + request is received, the new request replaces the existing entry, and any images + associated with the prior entry become available for re-use by the application. One + request is removed from the queue and processed during each vertical blanking period in + which the queue is non-empty. + + + + + Indicates that the presentation engine waits for the next vertical blanking period to + update the current image. Tearing cannot be observed. An internal queue is used to hold + pending presentation requests. New requests are appended to the end of the queue, and one + request is removed from the beginning of the queue and processed during each vertical + blanking period in which the queue is non-empty. This is the only value of presentMode + that is required: to be supported. + + + + + Indicates that the presentation engine generally waits for the next vertical blanking + period to update the current image. If a vertical blanking period has already passed + since the last update of the current image then the presentation engine does not wait for + another vertical blanking period for the update, meaning this mode may result in visible + tearing in this case. This mode is useful for reducing visual stutter with an application + that will mostly present a new image before the next vertical blanking period, but may + occasionally be late, and present a new image just after the next vertical blanking + period. An internal queue is used to hold pending presentation requests. New requests are + appended to the end of the queue, and one request is removed from the beginning of the + queue and processed during or after each vertical blanking period in which the queue is non-empty. + + + + + Indicates that the presentation engine and application have concurrent access to a single + image, which is referred to as a shared presentable image. The presentation engine is + only required to update the current image after a new presentation request is received. + Therefore the application must make a presentation request whenever an update is + required. However, the presentation engine may update the current image at any point, + meaning this mode may result in visible tearing. + + + + + Indicates that the presentation engine and application have concurrent access to a single + image, which is referred to as a shared presentable image. The presentation engine + periodically updates the current image on its regular refresh cycle. The application is + only required to make one initial presentation request, after which the presentation + engine must update the current image without any need for further presentation requests. + The application can indicate the image contents have been updated by making a + presentation request, but this does not guarantee the timing of when it will be updated. + This mode may result in visible tearing if rendering to the image is not timed correctly. + + + + + Provides experimental Khronos specific extension methods for the class. + + + + + Modify device mask of a command buffer. + + Command buffer whose current device mask is modified. + The new value of the current device mask. + + + + Dispatch compute work items. + + The command buffer into which the command will be recorded. + The start value for the X component of WorkgroupId. + The start value for the Y component of WorkgroupId. + The start value for the Z component of WorkgroupId. + The number of local workgroups to dispatch in the X dimension. + The number of local workgroups to dispatch in the Y dimension. + The number of local workgroups to dispatch in the Z dimension. + + + + Set the initial device mask for a command buffer. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The initial value of the command buffer's device mask. + + + + + Initializes a new instance of the structure. + + The initial value of the command buffer's device mask. + + Is or a pointer to an extension-specific structure. + + + + + Set the initial device mask and render areas for a render pass instance. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The device mask for the render pass instance. + + + + + The number of elements in the array. + + + + + Structures defining the render area for each physical device. + + + + + Initializes a new instance of the structure. + + The device mask for the render pass instance. + + Structures defining the render area for each physical device. + + + Is or a pointer to an extension-specific structure. + + + + + Use Windows keyex mutex mechanism to synchronize work. + + When submitting work that operates on memory imported from a Direct3D 11 resource to a queue, + the keyed mutex mechanism may be used in addition to Vulkan semaphores to synchronize the work. + + + + + + The type of this structure. + + + + + Pointer to next structure. + + + + + the number of entries in the , , and + arrays. + + + + + An array of objects which were imported from Direct3D 11 resources. + + + + + Mutex key values to wait for prior to beginning the submitted work. + + Entries refer to the keyed mutex associated with the corresponding entries in . + + + + + + Timeout values, in millisecond units, for each acquire specified in . + + + + + The number of entries in the and arrays. + + + + + An array of objects which were imported from Direct3D 11 resources. + + + + + Mutex key values to set when the submitted work has completed. + + Entries refer to the keyed mutex associated with the corresponding entries in . + + + + + + Initializes a new instance of the structure. + + + An array of objects which were imported from Direct3D 11 resources. + + + Mutex key values to wait for prior to beginning the submitted work. + + + Timeout values, in millisecond units, for each acquire specified in . + + + An array of objects which were imported from Direct3D 11 resources. + + + An array of objects which were imported from Direct3D 11 resources. + + + + + + Structure indicating which physical devices execute semaphore operations and + command buffers. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of elements in the array. + + + + + Device indices indicating which physical device executes the semaphore wait operation in + the corresponding element of . + + + + + The number of elements in the array. + + + + + Device masks indicating which physical devices execute the command buffer in the + corresponding element of . A physical device + executes the command buffer if the corresponding bit is set in the mask. + + + + + The number of elements in the array. + + + + + Device indices indicating which physical device executes the semaphore signal operation + in the corresponding element of . + + + + + Initializes a new instance of the structure. + + + Device indices indicating which physical device executes the semaphore wait operation in + the corresponding element of . + + + Device masks indicating which physical devices execute the command buffer in the + corresponding element of . A physical device + executes the command buffer if the corresponding bit is set in the mask. + + + Device indices indicating which physical device executes the semaphore signal operation + in the corresponding element of . + + + Is or a pointer to an extension-specific structure. + + + + + Provides experimental Khronos specific extension methods for the class. + + + + + Query supported peer memory features of a device. + + Peer memory is memory that is allocated for a given physical device and then bound to a + resource and accessed by a different physical device, in a logical device that represents + multiple physical devices. + + + The logical device that owns the memory. + The index of the memory heap from which the memory is allocated. + + The device index of the physical device that performs the memory access. + + + The device index of the physical device that the memory is allocated for. + + + A bitmask indicating which types of memory accesses are supported for the combination of + heap, local, and remote devices. + + + + + Bind device memory to buffer objects. + + The logical device that owns the buffers and memory. + Structures describing buffers and memory to bind. + Vulkan returns an error code. + + + + Bind device memory to image objects. + + The logical device that owns the images and memory. + Structures describing images and memory to bind. + Vulkan returns an error code. + + + + Query present capabilities from other physical devices. + + A logical device that represents multiple physical devices may support presenting from + images on more than one physical device, or combining images from multiple physical devices. + + + The logical device. + Structure that is filled with the logical device's capabilities. + Vulkan returns an error code. + + + + Query present capabilities for a surface. + Some surfaces may not be capable of using all the device group present modes. + + The logical device. + The surface. + + A value that is filled with the supported device group present modes for the surface. + + Vulkan returns an error code. + + + + Retrieve the index of the next available presentable image. + + The device associated with . + Structure containing parameters of the acquire. + The index of the next image to use. + Vulkan returns an error code. + + + + Bitmask specifying supported peer memory features. + + + + + Indicates that the memory can be accessed as the source of a + CommandBuffer.CmdCopy* command. + + + + + Indicates that the memory can be accessed as the destination of a + CommandBuffer.CmdCopy* command. + + + + + Indicates that the memory can be read as any other memory access type. + + + + + Indicates that the memory can be written as any other memory access type. + Shader atomics are considered to be writes. + + + + + Structure specifying how to bind a buffer to memory. + + + + + Is or a pointer to an extension-specific structure. + + + + + The to be attached to memory. + + + + + A object describing the device memory to attach. + + + + + The start offset of the region of memory which is to be bound to the buffer. The number + of bytes returned in the member in memory, starting + from bytes, will be bound to the specified buffer. + + + + + An array of device indices. + + + + + Initializes a new instance of the structure. + + The to be attached to memory. + + A object describing the device memory to attach. + + + The start offset of the region of memory which is to be bound to the buffer. The number + of bytes returned in the member in memory, starting + from bytes, will be bound to the specified buffer. + + An array of device indices. + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying how to bind an image to memory. + + + + + Is or a pointer to an extension-specific structure. + + + + + The to be attached to memory. + + + + + A object describing the device memory to attach. + + + + + The start offset of the region of memory which is to be bound to the image. If the length + of is zero, the number of bytes returned in the member in memory, starting from bytes, will be bound to the specified image. + + + + + An array of device indices. + + + + + An array of rectangles describing which regions of the image are attached to each + instance of memory. + + + + + Initializes a new instance of the structure. + + The to be attached to memory. + + A object describing the device memory to attach. + + + The start offset of the region of memory which is to be bound to the image. If the length + of is zero, the number of bytes returned in the member in memory, starting from bytes, will be bound to the specified image. + + An array of device indices. + + An array of rectangles describing which regions of the image are attached to each + instance of memory. + + + Is or a pointer to an extension-specific structure. + + + + + Present capabilities from other physical devices. + + + + + Is or a pointer to an extension-specific structure. + + + + + An array of masks, where the mask at element [i] is non-zero if physical device [i] has a + presentation engine, and where bit [j] is set in element [i] if physical device [i] can + present swapchain images from physical device [j]. If element [i] is non-zero, then bit + [i] must be set. + + + + + A bitmask indicating which device group presentation modes are supported. + + + + + Bitmask specifying supported device group present modes. + + + + + Indicates that any physical device with a presentation engine can present its own + swapchain images. + + + + + Indicates that any physical device with a presentation engine can present swapchain + images from any physical device in its present mask. + + + + + Indicates that any physical device with a presentation engine can present the sum of + swapchain images from any physical devices in its present mask. + + + + + Indicates that multiple physical devices with a presentation engine can each present + their own swapchain images. + + + + + Structure specifying parameters of the acquire. + + + + + Is or a pointer to an extension-specific structure. + + + + + The from which an image is being acquired. + + + + + Indicates how long the function waits, in nanoseconds, if no image is available. + + + + + Is 0 or a to signal. + + + + + Is 0 or a to signal. + + + + + A mask of physical devices for which the swapchain image will be ready to use when the + semaphore or fence is signaled. + + + + + Initializes a new instance of the structure. + + + The from which an image is being acquired. + + + Indicates how long the function waits, in nanoseconds, if no image is available. + + A to signal. + A to signal. + + A mask of physical devices for which the swapchain image will be ready to use when the + semaphore or fence is signaled. + + + Is or a pointer to an extension-specific structure. + + + + + Structure describing multiview features that can be supported by an implementation. + + + + + The type of this structure. + + + + + Pointer to next structure. + + + + + Multiple views in a renderpass. + + + + + Multiple views in a renderpass w/ geometry shader. + + + + + Multiple views in a renderpass w/ tessellation shader. + + + + + Initializes a new instance of the structure. + + Multiple views in a renderpass. + Multiple views in a renderpass w/ geometry shader. + + Multiple views in a renderpass w/ tessellation shader. + + Pointer to next structure. + + + + Create a logical device from multiple physical devices. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The number of elements in the array. + + + + + A pointer to an array of handles belonging to the same + device group. + + + + + Initializes a new instance of the structure. + + + The number of elements in the array. + + + A pointer to an array of handles belonging to the same + device group. + + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying swapchain image memory to bind to. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is 0 or a handle. + + + + + An image index within . + + + + + Initializes a new instance of the structure. + + Is null or a handle. + An image index within . + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying parameters of a newly created swapchain object. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitfield of modes that the swapchain can be used with. + + + + + Initializes a new instance of the structure. + + A bitfield of modes that the swapchain can be used with. + + Is or a pointer to an extension-specific structure. + + + + + Mode and mask controlling which physical devices' images are presented. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is zero or the number of elements in . + + + + + An array of device masks, one for each element of . + + + + + The device group present mode that will be used for this present. + + + + + Initializes a new instance of the structure. + + Is zero or the number of elements in . + An array of device masks, one for each element of . + The device group present mode that will be used for this present. + + Is or a pointer to an extension-specific structure. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A bitmask of flags controlling the allocation. + + + + + A mask of physical devices in the logical device, indicating that memory must be + allocated on each device in the mask, if + is set. + + + + + Initializes a new instance of the structure. + + A bitmask of flags controlling the allocation. + A mask of physical devices in the logical device, indicating that memory must be + allocated on each device in the mask, if + is set. + Is or a pointer to an extension-specific structure. + + + + Bitmask specifying flags for a device memory allocation. + + + + + No flags. + + + + + Specifies that memory will be allocated for the devices in . + + + + + Specify that an image will be bound to swapchain memory. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is 0 or a handle of an that the image will be bound to. + + + + + Initializes a new instance of the structure. + + + Is null or a handle of an that the image will be bound to. + + + Is or a pointer to an extension-specific structure. + + + + + Structure indicating which instances are bound. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + A device index indicating which instance of the resource is bound. + + + + + A device index indicating which instance of the memory the resource instance is bound to. + + + + + Initializes a new instance of the structure. + + + A device index indicating which instance of the resource is bound. + + + A device index indicating which instance of the memory the resource instance is bound to. + + + Is or a pointer to an extension-specific structure. + + + + + Provides experimental Khronos specific extension methods for the class. + + + + + Enumerates groups of physical devices that can be used to create a single logical device. + + A handle to a previously created Vulkan instance. + An array of structures. + Vulkan returns an error code. + + + + Structure specifying physical device group properties. + + + + + Is or a pointer to an extension-specific structure. + + + + + An array of physical device handles representing all physical devices in the group. + + + + + Indicates whether logical devices created from the group support allocating device memory + on a subset of devices, via the + member. If this is false, then all device memory allocations are made across all + physical devices in the group. If length is 1, then must be false. + + + + + Provides experimental Khronos specific extension methods for the class. + + + + + Query present rectangles for a surface on a physical device. + + When using , the application may + need to know which regions of the surface are used when presenting locally on each + physical device. + + + Presentation of swapchain images to this surface need only have valid contents in the + regions returned by this command. + + + The physical device. + The surface. + An array of structures. + Vulkan returns an error code. + + + + Structure describing multiview limits that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Max number of views in a subpass. + + + + + Max instance index for a draw in a multiview subpass. + + + + + Provides Brenwill Workshop specific extension methods for the class. + + + + + Create a object for an iOS UIView. + + The instance with which to associate the surface. + + Structure containing parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object when there is no more + specific allocator available + + The created surface object. + Vulkan returns an error code. + + + + Create a object for a macOS NSView. + + The instance with which to associate the surface. + + Structure containing parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object when there is no more + specific allocator available. + + The created surface object. + Vulkan returns an error code. + + + + Structure specifying parameters of a newly created iOS surface object. + + + + + Is or a pointer to an extension-specific structure. + + + + + Must be a valid UIView and must be backed by a CALayer instance of type CAMetalLayer. + + + + Is reserved for future use. + + + + Structure specifying parameters of a newly created macOS surface object. + + + + + Is or a pointer to an extension-specific structure. + + + + + Must be a valid NSView and must be backed by a CALayer instance of type CAMetalLayer. + + + + Is reserved for future use. + + + + Provides Nintendo specific extension methods for the class. + + + + + Create a object for a VI layer. + + During the lifetime of a surface created using a particular `NativeWindowHandle`, any + attempts to create another surface for the same `Layer` and any attempts to connect to + the same layer through other platform mechanisms will have undefined results. + + + The of a VI surface is always + undefined. Applications are expected to choose an appropriate size for the swapchain's + (e.g., by matching the the result of a + call to `GetDisplayResolution`). + + + The to associate with the surface. + + The structure containing the parameters affecting the creation of the surface object. + + + The allocator used for host memory allocated for the surface object. + + The resulting surface object handle. + Vulkan returns an error code. + + + + Structure specifying parameters of a newly created VI surface object. + + + + + The `NativeWindowHandle` for the `Layer` with which to associate the surface. + + + + + Provides NVIDIA specific extension methods for the class. + + + + + Performs the generation of commands on the device. + + + The primary command buffer in which the generation process takes space. + + + The structure containing parameters affecting the processing of commands. + + + + + Perform a reservation of command buffer space. + + The must not have had a prior space reservation since + its creation or the last reset. + + + The state of the must be legal to execute all commands + within the sequence provided by the member. + + + + The secondary command buffer in which the space for device-generated commands is reserved. + + + The structure containing parameters affecting the reservation of command buffer space. + + + + + Structure specifying parameters for the generation of commands. + + + + + The to be used for the generation process. Only registered + objects at the time + is called, will be taken into account for the reservation. + + + + + The that provides the command sequence to generate. + + + + + Provides an array of that reference the input data + for each token command. + + + + + The maximum number of sequences for which command buffer space will be reserved. If is 0, this is also the actual number of sequences generated. + + + + + Can be the secondary in which the commands should be + recorded. If is an implicit + reservation as well as execution takes place on the processing . + + + + + Can be from which the actual amount of sequences is sourced from as + value. + + + + + The byte offset into where the count value is stored. + + + + + Must be set if 's bit is set and provides the + used sequence indices as array. Otherwise it must be 0. + + + + + The byte offset into where the index values start. + + + + + Initializes a new instance of the structure. + + + The to be used for the generation process. Only registered + objects at the time + is called, will be taken into account for the reservation. + + + The that provides the command sequence to generate. + + + Provides an array of that reference the input data + for each token command. + + + The maximum number of sequences for which command buffer space will be reserved. If is 0, this is also the actual number of sequences generated. + + + Can be the secondary in which the commands should be + recorded. If null an implicit reservation as well as execution takes place on the + processing . + + + Can be from which the actual amount of sequences is sourced from as + value. + + + The byte offset into where the count value is stored. + + + Must be set if 's bit is set and provides the + used sequence indices as array. Otherwise it must be 0. + + + The byte offset into where the index values start. + + + + + Structure specifying parameters for the reservation of command buffer space. + + + + + Specifies the token command type. + + + + + Specifies the storing the functional arguments for each + squence. These argumetns can be written by the device. + + + + + Specified an offset into where the arguments start. + + + + + Initializes a new instance of the structure. + + Specifies the token command type. + + Specifies the storing the functional arguments for each + squence. These argumetns can be written by the device. + + + Specified an offset into where the arguments start. + + + + + Structure specifying parameters for the reservation of command buffer space. + + + + + The to be used for the generation process. Only registered + objects at the time + is called, will be taken into account for the reservation. + + + + + The that must also be used at generation time. + + + + + The maximum number of sequences for which command buffer space will be reserved. + + + + + Initializes a new instance of the structure. + + + The to be used for the generation process. Only registered + objects at the time + is called, will be taken into account for the reservation. + + + The that must also be used at generation time. + + + The maximum number of sequences for which command buffer space will be reserved. + + + + + Provides NVIDIA specific extension methods for the class. + + + + Vulkan returns an error code. + + + Vulkan returns an error code. + + + + Opaque handle to an indirect commands layout object. + + The device-side command generation happens through an iterative processing of an atomic + sequence comprised of command tokens, which are represented by . + + + + + + Gets the parent of this resource. + + + + + Destroy an indirect commands layout object. + + + + + Structure specifying the parameters of a newly created indirect commands layout object. + + + + + The that this layout targets. + + + + + A bitmask providing usage hints of this layout. + + + + + An array describing each command token in detail. See and + for details. + + + + + Initializes a new instance of the structure. + + + The that this layout targets. + + A bitmask providing usage hints of this layout. + + An array describing each command token in detail. See and + for details. + + + + + Structure specifying the details of an indirect command layout token. + + + + + Specifies the token command type. + + + + + Has a different meaning depending on the type. + + + + + Has a different meaning depending on the type. + + + + + Defines the rate at which the input data buffers are accessed. + + + + + Enum specifying the token command type. + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Equivalent command: . + + + + + Bitmask specifying allowed usage of a indirect commands layout. + + + + + Indicates that the processing of sequences can happen at an implementation-dependent + order, which is not guaranteed to be coherent across multiple invocations. + + + + + Indicates that there is likely a high difference between allocated number of sequences + and actually used. + + + + + Indicates that there are likely many draw or dispatch calls that are zero-sized (zero grid + dimension, no primitives to render). + + + + + Indicates that the input data for the sequences is not implicitly indexed from + 0..sequences used but a user provided encoding the index is provided. + + + + + Opaque handle to an object table. + The device-side bindings are registered inside a table. + + + + + Gets the parent of this resource. + + + + Vulkan returns an error code. + + + Vulkan returns an error code. + + + + Destroy an object table. + + + + + Structure specifying the parameters of a newly created object table. + + + + + An array providing the entry type of a given configuration. + + + + + An array of how many objects can be registered in the table. + + + + + An array of bitmasks describing the binding usage of the entry. + + + + + The maximum number of or used by any single registered in this table. + + + + + The maximum number of or used by any single registered in this table. + + + + + The maximum number of or used by any single registered in this table. + + + + + The maximum number of , , or used by any single registered in this table. + + + + + The maximum number of unique used by any registered or in this table. + + + + + Bitmask specifying allowed usage of an object entry. + + + + + Indicates that the resource is bound to . + + + + + Indicates that the resource is bound to . + + + + + Common parameters of an object table resource entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Enum specifying object table entry type. + + + + + Indicates a resource entry that is registered via . + + + + + Indicates a resource entry that is registered via . + + + + + Indicates a resource entry that is registered via . + + + + + Indicates a resource entry that is registered via . + + + + + Indicates the resource entry is registered via . + + + + + Parameters of an object table pipeline entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Specifies the that this resource entry references. + + + + + Parameters of an object table descriptor set entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Specifies the that the is used with. + + + + + Specifies the that can be bound with this entry. + + + + + Parameters of an object table vertex buffer entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Specifies the that can be bound as vertex buffer. + + + + + Parameters of an object table index buffer entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Specifies the that can be bound as index buffer. + + + + + Specifies the used with this index buffer. + + + + + Parameters of an object table push constant entry. + + + + + Defines the entry type. + + + + + Defines which the resource can be used with. + Some entry types allow only a single flag to be set. + + + + + Specifies the that push constants using this object index are used with. + + + + + The that push constants using this object index are used with. + + + + + Provides NVIDIA specific extension methods for the class. + + + + + Returns device-generated commands related properties of a physical device. + + + The handle to the physical device whose properties will be queried. + + Structures that will be filled with returned information. + + + + Structure specifying physical device support. + + + + + Indicates whether the supports entries with bit set and supports . + + + + + Structure specifying physical device limits. + + + + + The maximum number of tokens in . + + + + + The maximum number of entries per resource type in . + + + + + The minimum alignment for memory addresses optionally used in . + + + + + The minimum alignment for memory addresses optionally used in . + + + + + The minimum alignment for memory addresses optionally used in . + + + + + Structure describing multiview limits that can be supported by an implementation. + + + + + Pointer to next structure. + + + + + Is true if the implementation supports per-view position values that differ in + components other than the X component. + + + + + Provides NVIDIA specific extension methods for the class. + + + + + Set the viewport W scaling on a command buffer. + + The command buffer into which the command will be recorded. + + The index of the first viewport whose parameters are updated by the command. + + Structures specifying viewport parameters. + + + + Structure specifying a viewport. + + + + + The viewport's W scaling factor for x. + + + + + The viewport's W scaling factor for y. + + + + + Initializes a new instance of the structure. + + The viewport's W scaling factor for x. + The viewport's W scaling factor for y. + + + + Structure specifying parameters of a newly created pipeline viewport W scaling state. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + The enable for viewport W scaling. + + + + + The number of viewports used by W scaling and must match the number of viewports in the + pipeline if viewport W scaling is enabled. + + + + + Structures which define the W scaling parameters for the corresponding viewport. If the + viewport W scaling state is dynamic, this member is ignored. + + + + + Initializes a new instance of the structure. + + The enable for viewport W scaling. + + Structures which define the W scaling parameters for the corresponding viewport. If the + viewport W scaling state is dynamic, this member is ignored. + + + Is or a pointer to an extension-specific structure. + + + + + Use Windows keyex mutex mechanism to synchronize work. + + When submitting work that operates on memory imported from a Direct3D 11 resource to a queue, + the keyed mutex mechanism may be used in addition to Vulkan semaphores to synchronize the work. + + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + the number of entries in the , , and + arrays. + + + + + An array of objects which were imported from Direct3D 11 resources. + + + + + Mutex key values to wait for prior to beginning the submitted work. + + Entries refer to the keyed mutex associated with the corresponding entries in . + + + + + + Timeout values, in millisecond units, for each acquire specified in . + + + + + The number of entries in the and arrays. + + + + + An array of objects which were imported from Direct3D 11 resources. + + + + + Mutex key values to set when the submitted work has completed. + + Entries refer to the keyed mutex associated with the corresponding entries in . + + + + + + Initializes a new instance of the structure. + + + An array of objects which were imported from Direct3D 11 resources. + + + Mutex key values to wait for prior to beginning the submitted work. + + + Timeout values, in millisecond units, for each acquire specified in . + + + An array of objects which were imported from Direct3D 11 resources. + + + An array of objects which were imported from Direct3D 11 resources. + + + + + + Provides NVIDIA specific extension methods for the class. + + + + + Retrieve Win32 handle to a device memory object. + + Opaque handle to a device memory object. + + A bitmask containing a single bit specifying the type of handle requested. + + A Windows HANDLE. + Vulkan returns an error code. + + + + Bitmask specifying external memory handle types. + + + + + No flags. + + + + + Indicates a handle to memory returned by or, one duplicated from such a handle + using DuplicateHandle(). + + + + + Indicates a handle to memory returned by . + + + + + Indicates a valid NT handle to memory returned by + IDXGIResource1::ftext:CreateSharedHandle(), or a handle duplicated from such a + handle using DuplicateHandle(). + + + + + Indicates a handle to memory returned by IDXGIResource::GetSharedHandle(). + + + + + Specify a dedicated memory allocation resource. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is 0 or a handle of an which this memory will be + bound to. + + + + + Is 0 or a handle of a which this memory will be + bound to. + + + + + Initializes a new instance of the structure. + + + Is null or an which this memory will be bound to. + + + Is or a pointer to an extension-specific structure. + + + + + Initializes a new instance of the structure. + + A buffer which this memory will be bound to. + + Is or a pointer to an extension-specific structure. + + + + + Specify that a buffer is bound to a dedicated memory resource. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Indicates whether the buffer will have a dedicated allocation bound to it. + + + + + Initializes a new instance of the structure. + + + Indicates whether the buffer will have a dedicated allocation bound to it. + + + Is or a pointer to an extension-specific structure. + + + + + Specify that an image is bound to a dedicated memory resource. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Indicates whether the image will have a dedicated allocation bound to it. + + + + + Initializes a new instance of the structure. + + + Indicates whether the image will have a dedicated allocation bound to it. + + + Is or a pointer to an extension-specific structure. + + + + + Import Win32 memory created on the same physical device. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is 0 or a value specifying the type of + memory handle in handle. + + + + + A Windows HANDLE referring to the memory. + + + + + Initializes a new instance of the structure. + + A Windows HANDLE referring to the memory. + + Is 0 or a value specifying the type of + memory handle in handle. + + + Is or a pointer to an extension-specific structure. + + + + + Specify memory handle types that may be exported. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Specifies one or more memory handle types that may be exported. + + Multiple handle types may be requested for the same allocation as long as they are + compatible, as reported by . + + + + + + Initializes a new instance of the structure. + + + Specifies one or more memory handle types that may be exported. + + Multiple handle types may be requested for the same allocation as long as they are + compatible, as reported by . + + + + Is or a pointer to an extension-specific structure. + + + + + Provides NVIDIA specific extension methods for the class. + + + + + Determine image capabilities compatible with external memory handle types. + + The physical device from which to query the image capabilities. + The image format, corresponding to . + The image type, corresponding to . + The image tiling, corresponding to . + The intended usage of the image, corresponding to . + + A bitmask describing additional parameters of the image, corresponding to . + + + Either one of the bits from , or 0. + + The structure in which capabilities are returned. + Vulkan returns an error code. + + + + Structure specifying external image format properties. + + + + + Will be filled in as when calling , but + the values returned may vary depending on the external handle type requested. + + + + + A bitmask of indicating properties of the external + memory handle type being queried, or 0 if the external memory handle type is 0. + + + + + A bitmask of containing a bit set for every + external handle type that may be used to create memory from which the handles of the type + can be exported, or 0 if the external memory handle type is 0. + + + + + A bitmask of containing a bit set for every + external handle type that may be specified simultaneously with the handle type when + calling , or 0 if the external memory handle + type is 0. + + + + + Bitmask specifying external memory features. + + + + + Indicates that external memory of the specified type must be created as a dedicated + allocation when used in the manner specified. + + + + + Indicates that the implementation supports exporting handles of the specified type. + + + + + Indicates that the implementation supports importing handles of the specified type. + + + + + Structure specifying swizzle applied to primitive clip coordinates. + + Each primitive sent to a given viewport has a swizzle and optional negation applied to its + clip coordinates. + + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is reserved for future use. + + + + + The number of viewport swizzles used by the pipeline. + + + + + A pointer to an array of structures, defining the + viewport swizzles. + + + + + Initializes a new instance of the structure. + + The number of viewport swizzles used by the pipeline. + + A pointer to an array of structures, defining the + viewport swizzles. + + + Is or a pointer to an extension-specific structure. + + + + + No flags. + + + + + Structure specifying a viewport swizzle. + + + + + Specifies the swizzle operation to apply to the x component of the primitive. + + + + + Specifies the swizzle operation to apply to the y component of the primitive. + + + + + Specifies the swizzle operation to apply to the z component of the primitive. + + + + + Specifies the swizzle operation to apply to the w component of the primitive. + + + + + Specify how a viewport coordinate is swizzled. + + + + + Specify the discard rectangle mode. + + + + + Specifies that no components are multiplied by the modulation factor. + + + + + Specifies that the red, green, and blue components are multiplied by the + modulation factor. + + + + + Specifies that the alpha component is multiplied by the modulation factor. + + + + + Specifies that all components are multiplied by the modulation factor. + + + + + Structure specifying whether fragment coverage replaces a color. + + + + + The type of this structure. + + + + + Is or a pointer to an extension-specific structure. + + + + + Is reserved for future use. + + + + + Controls whether the fragment coverage value replaces a fragment color output. + + + + + Controls which fragment shader color output value is replaced. + + + + + No flags. + + + + + Specify an enumeration to track object handle types. + + The enumeration defines values, each of which corresponds to a specific Vulkan handle type. + These values can be used to associate debug information with a particular type of object + through one or more extensions. + + + + + + Structure specifying a two-dimensional offset. + + + + + An with all of its components set to zero. + + + + + The X component of the offset. + + + + + The Y component of the offset. + + + + + Initializes a new instance of the structure. + + The X component of the offset + The Y component of the offset. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given offsets are equal. + + The first offset to compare. + The second offset to compare. + true if the offsets are equal; false otherwise. + + + + Returns a boolean indicating whether the two given offsets are not equal. + + The first offset to compare. + The second offset to compare. + + true if the offsets are not equal; false if they are equal. + + + + + Structure specifying a three-dimensional offset. + + + + + An with all of its components set to zero. + + + + + The X component of the offset. + + + + + The Y component of the offset. + + + + + The Z component of the offset. + + + + + Initializes a new instance of the structure. + + The X component of the offset + The Y component of the offset. + The Z component of the offset. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given offsets are equal. + + The first offset to compare. + The second offset to compare. + true if the offsets are equal; false otherwise. + + + + Returns a boolean indicating whether the two given offsets are not equal. + + The first offset to compare. + The second offset to compare. + + true if the offsets are not equal; false if they are equal. + + + + + Opaque handle to a physical device object. + + Vulkan separates the concept of physical and logical devices. A physical device usually + represents a single device in a system (perhaps made up of several individual hardware + devices working together), of which there are a finite number. A logical device represents an + application's view of the device. + + + + + + Gets the parent of the resource. + + + + + Returns properties of a physical device. + + Properties of a physical device. + + + + Reports properties of the queues of the physical device. + + Properties of the queues of the physical device. + + + + Reports memory information for physical device. + + Structure in which the properties are returned. + + + + Reports capabilities of a physical device. + + Capabilities of a physical device. + + + + Lists physical device's format capabilities. + + The format whose properties are queried. + Format capabilities of a physical device. + + + + Lists physical device's image format capabilities. + + The image format, corresponding to . + The image type, corresponding to . + The image tiling, corresponding to . + The intended usage of the image, corresponding to . + + A bitmask describing additional parameters of the image, corresponding to . + + Image format capabilities of a physical device + Vulkan returns an error code. + + + + Returns properties of available physical device extensions. + + + Is either null or a unicode string naming the layer to retrieve extensions from. + When parameter is null, only extensions provided by the Vulkan implementation or + by implicitly enabled layers are returned. + + Properties of available extensions for layer. + Vulkan returns an error code. + + + + Returns properties of available physical device layers. + + Properties of available layers. + + + + + Create a new device instance. A logical device is created as a connection to a physical device. + + + The structure containing information about how to create the device. + + Controls host memory allocation. + Device instance. + Vulkan returns an error code. + + + + Retrieve properties of an image format applied to sparse images. + + The image format. + The dimensionality of image. + The number of samples per pixel. + The intended usage of the image. + The tiling arrangement of the data elements in memory. + Properties of an image format applied to sparse images. + + + + Structure describing the fine-grained features that can be supported by an implementation. + + + + + Indicates that accesses to buffers are bounds-checked against the range of the buffer + descriptor (as determined by , , or the size of the buffer). + + + + + Full 32-bit range of indices for indexed draw calls. + + + + + Image views which are arrays of cube maps. + + + + + Blending operations are controlled per-attachment. + + + + + Geometry stage. + + + + + Tessellation control and evaluation stage. + + + + + Per-sample shading and interpolation. + + + + + Blend operations which take two sources. + + + + + Logic operations. + + + + + Multi draw indirect. + + + + + Indirect draws can use non-zero firstInstance. + + + + + Depth clamping. + + + + + Depth bias clamping. + + + + + Point and wireframe fill modes. + + + + + Depth bounds test. + + + + + Lines with width greater than 1. + + + + + Points with size greater than 1. + + + + + The fragment alpha component can be forced to maximum representable alpha value. + + + + + Viewport arrays. + + + + + Anisotropic sampler filtering. + + + + + ETC texture compression formats. + + + + + ASTC LDR texture compression formats. + + + + + BC1-7 texture compressed formats. + + + + + Precise occlusion queries returning actual sample counts. + + + + + Pipeline statistics query. + + + + + Stores and atomic ops on storage buffers and images are supported in vertex, + tessellation, and geometry stages. + + + + + Stores and atomic ops on storage buffers and images are supported in the fragment stage. + + + + + Tessellation and geometry stages can export point size. + + + + + Image gather with run-time values and independent offsets. + + + + + The extended set of formats can be used for storage images. + + + + + Multisample images can be used for storage images. + + + + + Read from storage image does not require format qualifier. + + + + + Write to storage image does not require format qualifier. + + + + + Arrays of uniform buffers can be accessed with dynamically uniform indices. + + + + + Arrays of sampled images can be accessed with dynamically uniform indices. + + + + + Arrays of storage buffers can be accessed with dynamically uniform indices. + + + + + Arrays of storage images can be accessed with dynamically uniform indices. + + + + + Clip distance in shaders. + + + + + Cull distance in shaders. + + + + + 64-bit floats (doubles) in shaders. + + + + + 64-bit integers in shaders. + + + + + 16-bit integers in shaders. + + + + + Shader can use texture operations that return resource residency information (requires + sparseNonResident support). + + + + + Shader can use texture operations that specify minimum resource level of detail. + + + + + Sparse resources support: resource memory can be managed at opaque page level rather than + object level. + + + + + Sparse resources support: GPU can access partially resident buffers. + + + + + Sparse resources support: GPU can access partially resident 2D (non-MSAA + non-depth/stencil) images. + + + + + Sparse resources support: GPU can access partially resident 3D images. + + + + + Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples. + + + + + Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples. + + + + + Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples. + + + + + Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples. + + + + + Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in). + + + + + Multisample rate must be the same for all pipelines in a subpass. + + + + + Queries may be inherited from primary to secondary command buffers. + + + + + Structure reporting implementation-dependent physical device limits. + + + + + The maximum dimension (width) of an image created with an . + + + + + The maximum dimension (width or height) of an image created with an and without set + in flags. + + + + + The maximum dimension (width, height, or depth) of an image created with an . + + + + + The maximum dimension (width or height) of an image created with an and with set in flags. + + + + + The maximum number of layers (array layers) for an image. + + + + + The maximum number of addressable texels for a buffer view created on a buffer which was + created with the or set in the member. + + + + + The maximum value that can be specified in the range member of any structures passed to a call to for descriptors of type or . + + + + + The maximum value that can be specified in the range member of any + structures passed to a call to for descriptors of type + or . + + + + + The maximum size, in bytes, of the pool of push constant memory. For each of the push + constant ranges indicated by the member, + must be less + than or equal to this limit. + + + + + The maximum number of device memory allocations, as created by , which can simultaneously exist. + + + + + The maximum number of sampler objects, as created by , + which can simultaneously exist on a device. + + + + + The granularity, in bytes, at which buffer or linear image resources, and optimal image + resources can be bound to adjacent offsets in the same object + without aliasing. + + + + + The total amount of address space available, in bytes, for sparse memory resources. This + is an upper bound on the sum of the size of all sparse resources, regardless of whether + any memory is bound to them. + + + + + The maximum number of descriptor sets that can be simultaneously used by a pipeline. All + decorations in shader modules must have a value less than + . + + + + + The maximum number of samplers that can be accessible to a single shader stage in a + pipeline layout. Descriptors with a type of or count against this limit. A descriptor is + accessible to a shader stage when the + member has the bit for that shader stage set. + + + + + The maximum number of uniform buffers that can be accessible to a single shader stage in + a pipeline layout. Descriptors with a type of + or count against this limit. A + descriptor is accessible to a shader stage when the member has the bit for that shader stage set. + + + + + The maximum number of storage buffers that can be accessible to a single shader stage in + a pipeline layout. Descriptors with a type of + or count against this limit. A + descriptor is accessible to a pipeline shader stage when the member has the bit for that shader stage set. + + + + + The maximum number of sampled images that can be accessible to a single shader stage in a + pipeline layout. Descriptors with a type of , , + or count against this limit. A descriptor + is accessible to a pipeline shader stage when the member has the bit for that shader stage set. + + + + + The maximum number of storage images that can be accessible to a single shader stage in a + pipeline layout. Descriptors with a type of , or + count against this limit. A descriptor is + accessible to a pipeline shader stage when the member has the bit for that shader stage set. + + + + + The maximum number of input attachments that can be accessible to a single shader stage + in a pipeline layout. Descriptors with a type of count against this limit. A descriptor is + accessible to a pipeline shader stage when the member has the bit for that shader stage + set. These are only supported for the fragment stage. + + + + + The maximum number of resources that can be accessible to a single shader stage in a + pipeline layout. Descriptors with a type of , + , , + , , + , , + , , or + count against this limit. For the fragment shader + stage the framebuffer color attachments also count against this limit. + + + + + The maximum number of samplers that can be included in descriptor bindings in a pipeline + layout across all pipeline shader stages and descriptor set numbers. Descriptors with a + type of or count + against this limit. + + + + + The maximum number of uniform buffers that can be included in descriptor bindings in a + pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors + with a type of or + count against this limit. + + + + + The maximum number of dynamic uniform buffers that can be included in descriptor bindings + in a pipeline layout across all pipeline shader stages and descriptor set numbers. + Descriptors with a type of count against this limit. + + + + + The maximum number of storage buffers that can be included in descriptor bindings in a + pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors + with a type of or + count against this limit. + + + + + The maximum number of dynamic storage buffers that can be included in descriptor bindings + in a pipeline layout across all pipeline shader stages and descriptor set numbers. + Descriptors with a type of count against this limit. + + + + + The maximum number of sampled images that can be included in descriptor bindings in a + pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors + with a type of , + , or count + against this limit. + + + + + The maximum number of storage images that can be included in descriptor bindings in a + pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors + with a type of , or + count against this limit. + + + + + The maximum number of input attachments that can be included in descriptor bindings in a + pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors + with a type of count against this limit. + + + + + The maximum number of vertex input attributes that can be specified for a graphics + pipeline. These are described in the array of structures that are provided at graphics + pipeline creation time via the member. + + + + + The maximum number of vertex buffers that can be specified for providing vertex + attributes to a graphics pipeline. These are described in the array of structures that are provided at graphics pipeline + creation time via the member. The member must be less than this limit. + + + + + The maximum vertex input attribute offset that can be added to the vertex input binding + stride. The member structure must be + less than or equal to this limit. + + + + + The maximum vertex input binding stride that can be specified in a vertex input binding. + The member must be less than or equal + to this limit. + + + + + The maximum number of components of output variables which can be output by a vertex shader. + + + + + The maximum tessellation generation level supported by the fixed-function tessellation + primitive generator. + + + + + The maximum patch size, in vertices, of patches that can be processed by the tessellation + control shader and tessellation primitive generator. The member specified at + pipeline creation time and the value provided in the OutputVertices execution mode of + shader modules must be less than or equal to this limit. + + + + + The maximum number of components of input variables which can be provided as per-vertex + inputs to the tessellation control shader stage. + + + + + The maximum number of components of per-vertex output variables which can be output from + the tessellation control shader stage. + + + + + The maximum number of components of per-patch output variables which can be output from + the tessellation control shader stage. + + + + + The maximum total number of components of per-vertex and per-patch output variables which + can be output from the tessellation control shader stage. + + + + + The maximum number of components of input variables which can be provided as per-vertex + inputs to the tessellation evaluation shader stage. + + + + + The maximum number of components of per-vertex output variables which can be output from + the tessellation evaluation shader stage. + + + + + The maximum invocation count supported for instanced geometry shaders. The value provided + in the`Invocations execution mode of shader modules must be less than or equal to this limit. + + + + + The maximum number of components of input variables which can be provided as inputs to + the geometry shader stage. + + + + + The maximum number of components of output variables which can be output from the + geometry shader stage. + + + + + The maximum number of vertices which can be emitted by any geometry shader. + + + + + The maximum total number of components of output, across all emitted vertices, which can + be output from the geometry shader stage. + + + + + The maximum number of components of input variables which can be provided as inputs to + the fragment shader stage. + + + + + The maximum number of output attachments which can be written to by the fragment shader stage. + + + + + The maximum number of output attachments which can be written to by the fragment shader + stage when blending is enabled and one of the dual source blend modes is in use. + + + + + The total number of storage buffers, storage images, and output buffers which can be used + in the fragment shader stage. + + + + + The maximum total storage size, in bytes, of all variables declared with the + WorkgroupLocal storage class in shader modules (or with the shared storage qualifier in + GLSL) in the compute shader stage. + + + + + The maximum number of local workgroups that can be dispatched by a single dispatch + command. This value represents the maximum number of local workgroups for the X + dimension. The x parameter to the command must be + less than or equal to the limit. + + + + + The maximum number of local workgroups that can be dispatched by a single dispatch + command. This value represents the maximum number of local workgroups for the Y + dimension. The y parameter to the command must be + less than or equal to the limit. + + + + + The maximum number of local workgroups that can be dispatched by a single dispatch + command. This value represents the maximum number of local workgroups for the Z + dimension. The z parameter to the command must be + less than or equal to the limit. + + + + + The maximum total number of compute shader invocations in a single local workgroup. The + product of the X, Y, and Z sizes as specified by the LocalSize execution mode in shader + modules and by the object decorated by the WorkgroupSize decoration must be less than or + equal to this limit. + + + + + The maximum size of a local compute workgroup, per dimension. This value represents the + maximum local workgroup size in the X dimension. The x size specified by the LocalSize + execution mode and by the object decorated by the WorkgroupSize decoration in shader + modules must be less than or equal to the limit. + + + + + The maximum size of a local compute workgroup, per dimension. This value represents the + maximum local workgroup size in the Y dimension. The y size specified by the LocalSize + execution mode and by the object decorated by the WorkgroupSize decoration in shader + modules must be less than or equal to the limit. + + + + + The maximum size of a local compute workgroup, per dimension. This value represents the + maximum local workgroup size in the Z dimension. The z size specified by the LocalSize + execution mode and by the object decorated by the WorkgroupSize decoration in shader + modules must be less than or equal to the limit. + + + + + The number of bits of subpixel precision in framebuffer coordinates. + + + + + The number of bits of precision in the division along an axis of an image used for + minification and magnification filters. 2** is the + actual number of divisions along each axis of the image represented. The filtering + hardware will snap to these locations when computing the filtered results. + + + + + The number of bits of division that the LOD calculation for mipmap fetching get snapped + to when determining the contribution from each mip level to the mip filtered results. + 2** is the actual number of divisions. + + For example, if this value is 2 bits then when linearly filtering between two levels, + each level could contribute: 0%, 33%, 66%, or 100% (this is just an example and the + amount of contribution should be covered by different equations in the spec). + + + + + + The maximum index value that can be used for indexed draw calls when using 32-bit + indices. This excludes the primitive restart index value of 0xFFFFFFFF. + + + + + The maximum draw count that is supported for indirect draw calls. + + + + + The maximum absolute sampler level of detail bias. The sum of the member and the Bias operand of image sampling + operations in shader modules (or 0 if no Bias operand is provided to an image sampling + operation) are clamped to the range [-,+]. + + + + + The maximum degree of sampler anisotropy. The maximum degree of anisotropic filtering + used for an image sampling operation is the minimum of the member and this limit. + + + + + The maximum number of active viewports. The member length that is provided at + pipeline creation must be less than or equal to this limit. + + + + + The maximum viewport width in the X dimension. The maximum viewport dimension must be + greater than or equal to the largest image which can be created and used as a framebuffer attachment. + + + + + The maximum viewport height in Y dimension. The maximum viewport dimension must be + greater than or equal to the largest image which can be created and used as a framebuffer attachment. + + + + + The minimum of the range that the corners of a viewport must be contained in. This range + must be at least [-2 × size, 2 × size - 1], where size = max( , ). + + The intent of the limit is to allow a maximum sized viewport to be arbitrarily shifted + relative to the output target as long as at least some portion intersects. This would + give a bounds limit of [-size + 1, 2 × size - 1] which would allow all possible + non-empty-set intersections of the output target and the viewport. Since these numbers + are typically powers of two, picking the signed number range using the smallest possible + number of bits ends up with the specified range. + + + + + + The maximum of the range that the corners of a viewport must be contained in. This range + must be at least [-2 × size, 2 × size - 1], where size = max( , ). + + The intent of the limit is to allow a maximum sized viewport to be arbitrarily shifted + relative to the output target as long as at least some portion intersects. This would + give a bounds limit of [-size + 1, 2 × size - 1] which would allow all possible + non-empty-set intersections of the output target and the viewport. Since these numbers + are typically powers of two, picking the signed number range using the smallest possible + number of bits ends up with the specified range. + + + + + + The number of bits of subpixel precision for viewport bounds. The subpixel precision that + floating-point viewport bounds are interpreted at is given by this limit. + + + + + The minimum required alignment, in bytes, of host visible memory allocations within the + host address space. When mapping a memory allocation with , + subtracting offset bytes from the returned pointer will always produce an integer + multiple of this limit. + + + + + The minimum required alignment, in bytes, for the member for texel buffers. When a buffer view is + created for a buffer which was created with + or set in the member, the offset must be an integer multiple of this limit. + + + + + The minimum required alignment, in bytes, for the offset member of the + structure for uniform buffers. When a descriptor of type + or is + updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets + for uniform buffers must be multiples of this limit. + + + + + The minimum required alignment, in bytes, for the offset member of the + structure for storage buffers. When a descriptor of type + or is + updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets + for storage buffers must be multiples of this limit. + + + + + The minimum offset value for the ConstOffset image operand of any of the OpImageSample* + or OpImageFetch* image instructions. + + + + + The maximum offset value for the ConstOffset image operand of any of the OpImageSample* + or OpImageFetch* image instructions. + + + + + The minimum offset value for the Offset or ConstOffsets image operands of any of the + OpImage*Gather image instructions. + + + + + The maximum offset value for the Offset or ConstOffsets image operands of any of the + OpImage*Gather image instructions. + + + + + The minimum negative offset value for the offset operand of the InterpolateAtOffset + extended instruction. + + + + + The maximum positive offset value for the offset operand of the InterpolateAtOffset + extended instruction. + + + + + The number of subpixel fractional bits that the x and y offsets to the + InterpolateAtOffset extended instruction may be rounded to as fixed-point values. + + + + + The maximum width for a framebuffer. The member + must be less than or equal to this limit. + + + + + The maximum height for a framebuffer. The + member must be less than or equal to this limit. + + + + + The maximum layer count for a layered framebuffer. The member must be less than or equal to this limit. + + + + + A bitmask indicating the color sample counts that are supported for all framebuffer color attachments. + + + + + A bitmask indicating the supported depth sample counts for all framebuffer depth/stencil + attachments, when the format includes a depth component. + + + + + A bitmask of bits indicating the supported stencil sample + counts for all framebuffer depth/stencil attachments, when the format includes a stencil component. + + + + + A bitmask of bits indicating the supported sample counts for a + framebuffer with no attachments. + + + + + The maximum number of color attachments that can be used by a subpass in a render pass. + The length must be less than or equal + to this limit. + + + + + A bitmask indicating the sample counts supported for all 2D images created with , usage containing , and a + non-integer color format. + + + + + A bitmask indicating the sample counts supported for all 2D images created with , usage containing , and an + integer color format. + + + + + A bitmask indicating the sample counts supported for all 2D images created with , usage containing , and a + depth format. + + + + + A bitmask indicating the sample supported for all 2D images created with , usage containing , and a + stencil format. + + + + + A bitmask indicating the sample counts supported for all 2D images created with , and usage containing . + + + + + The maximum number of array elements of a variable decorated with the SampleMask built-in decoration. + + + + + Indicates support for timestamps on all graphics and compute queues. If this limit is set + to true, all queues that advertise the or in the support + of at least 36. + + + + + The number of nanoseconds required for a timestamp query to be incremented by 1. + + + + + The maximum number of clip distances that can be used in a single shader stage. The size + of any array declared with the ClipDistance built-in decoration in a shader module must + be less than or equal to this limit. + + + + + The maximum number of cull distances that can be used in a single shader stage. The size + of any array declared with the CullDistance built-in decoration in a shader module must + be less than or equal to this limit. + + + + + The maximum combined number of clip and cull distances that can be used in a single + shader stage. The sum of the sizes of any pair of arrays declared with the ClipDistance + and CullDistance built-in decoration used by a single shader stage in a shader module + must be less than or equal to this limit. + + + + + The number of discrete priorities that can be assigned to a queue based on the value of + each member of VkDeviceQueueCreateInfo::pQueuePriorities. This must be at least 2, and + levels must be spread evenly over the range, with at least one level at 1.0, and another + at 0.0. + + + + + The minimum of the range of supported sizes for points. Values written to variables + decorated with the PointSize built-in decoration are clamped to this range. + + + + + The maximum of the range of supported sizes for points. Values written to variables + decorated with the PointSize built-in decoration are clamped to this range. + + + + + The minimum of the range of supported widths for lines. Values specified by the member or the line width + parameter to are clamped to this range. + + + + + The maximum of the range of supported widths for lines. Values specified by the member or the line width + parameter to are clamped to this range. + + + + + The granularity of supported point sizes. Not all point sizes in the range defined by + and are supported. This limit + specifies the granularity (or increment) between successive supported point sizes. + + + + + The granularity of supported line widths. Not all line widths in the range defined by + and are supported. This limit + specifies the granularity (or increment) between successive supported line widths. + + + + + Indicates whether lines are rasterized according to the preferred method of + rasterization. If set to false, lines may be rasterized under a relaxed set of rules. + If set to true, lines are rasterized as per the strict definition. + + + + + Indicates whether rasterization uses the standard sample locations. If set to + true, the implementation uses the documented sample locations. If set to + false, the implementation may use different sample locations. + + + + + The optimal buffer offset alignment in bytes for and . The per texel alignment requirements are + still enforced, this is just an additional alignment recommendation for optimal + performance and power. + + + + + The optimal buffer row pitch alignment in bytes for and . Row pitch is the number of bytes between + texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per + texel alignment requirements are still enforced, this is just an additional alignment + recommendation for optimal performance and power. + + + + + The size and alignment in bytes that bounds concurrent access to host-mapped device memory. + + + + + Structure specifying physical device memory properties. + + + + + Structures describing the memory types that can be used to access memory allocated from + the heaps specified by . + + + + + Structures describing the memory heaps from which memory can be allocated. + + + + + Structure specifying memory type. + + + + + A bitmask of properties for this memory type. + + + + + Describes which memory heap this memory type corresponds to, and must be less than the + length of . + + + + + Structure specifying a memory heap. + + + + + The total memory size in bytes in the heap. + + + + + A bitmask of attribute flags for the heap. + + + + + Bitmask specifying properties for a memory type. + + + + + No flags. + + + + + Indicates that memory allocated with this type is the most efficient for device access. + This property will only be set for memory types belonging to heaps with the set. + + + + + Indicates that memory allocated with this type can be mapped for host access using . + + + + + Indicates that the host cache management commands and are not needed to flush host writes to the + device or make device writes visible to the host, respectively. + + + + + Indicates that memory allocated with this type is cached on the host. Host memory + accesses to uncached memory are slower than to cached memory, however uncached memory is + always host coherent. + + + + + Indicates that the memory type only allows device access to the memory. Memory types must + not have both and set. + + Additionally, the object's backing memory may be provided by the implementation lazily. + + + + + + Bitmask specifying attribute flags for a heap. + + + + + No flags. + + + + + Indicates that the heap corresponds to device local memory. + + Device local memory may have different performance characteristics than host local + memory, and may support different memory property flags. + + + + + + Indicates that in a logical device representing more than one physical device, there is a + per-physical device instance of the heap memory. + + By default, an allocation from such a heap will be replicated to each physical device's + instance of the heap. + + + + + + Structure specifying physical device properties. + + + + + The version of Vulkan supported by the device. + + + + + The vendor-specified version of the driver. + + + + + A unique identifier for the vendor of the physical device. + + + + + A unique identifier for the physical device among devices available from the vendor. + + + + + Specifies the type of device. + + + + + The name of the device. + + + + + A universally unique identifier for the device. + + + + + Specifies device-specific limits of the physical device. + + + + + Specifies various sparse related properties of the physical device. + + + + + Structure specifying physical device sparse memory properties. + + + + + Is true if the physical device will access all single-sample 2D sparse resources + using the standard sparse image block shapes (based on image format). If this property is + not supported the value returned in the member for single-sample 2D images + is not required to match the standard sparse image block dimensions listed in the table. + + + + + Is true if the physical device will access all multisample 2D sparse resources + using the standard sparse image block shapes (based on image format). If this property is + not supported, the value returned in the member for multisample 2D images is + not required to match the standard sparse image block dimensions listed in the table. + + + + + Is true if the physical device will access all 3D sparse resources using the + standard sparse image block shapes (based on image format). If this property is not + supported, the value returned in the member for 3D images is not + required to match the standard sparse image block dimensions listed in the table. + + + + + Is true if images with mip level dimensions that are not integer multiples of the + corresponding dimensions of the sparse image block may: be placed in the mip tail. If + this property is not reported, only mip levels with dimensions smaller than the + imageGranularity member of the structure will + be placed in the mip tail. If this property is reported the implementation is allowed to + return in the flags member of , indicating that mip level dimensions that are not + integer multiples of the corresponding dimensions of the sparse image block will be + placed in the mip tail. + + + + + Specifies whether the physical device can consistently access non-resident regions of a + resource. If this property is true, access to non-resident regions of resources + will be guaranteed to return values as if the resource were populated with 0; writes to + non-resident regions will be discarded. + + + + + Structure providing information about a queue family. + + + + + A bitmask indicating capabilities of the queues in this queue family. + + + + + The unsigned integer count of queues in this queue family. + + + + + The unsigned integer count of meaningful bits in the timestamps written via . The valid range for the count is 36..64 bits, + or a value of 0, indicating no support for timestamps. Bits outside the valid range are + guaranteed to be zeros. + + + + + The minimum granularity supported for image transfer operations on the queues in this + queue family. + + + + + Bitmask specifying capabilities of queues in a queue family. + + + + + Indicates that queues in this queue family support graphics operations. + + + + + Indicates that queues in this queue family support compute operations. + + + + + Indicates that queues in this queue family support transfer operations. + + + + + Indicates that queues in this queue family support sparse resource memory management operations. + + + + + Structure specifying image format properties. + + + + + A bitmask specifying features supported by images created with a tiling parameter of . + + + + + A bitmask specifying features supported by images created with a tiling parameter of . + + + + + A bitmask specifying features supported by buffers. + + + + + Bitmask specifying features supported by a buffer. + + + + + Specifies that an image view can be sampled from. + + + + + Specifies that an image view can be used as a storage image. + + + + + Specifies that an image view can be used as storage image that supports atomic operations. + + + + + Specifies that the format can be used to create a buffer view that can be bound to a descriptor. + + + + + Specifies that the format can be used to create a buffer view that can be bound to a descriptor. + + + + + Specifies that atomic operations are supported on with this format. + + + + + Specifies that the format can be used as a vertex attribute format ( ). + + + + + Specifies that an image view can be used as a framebuffer color attachment and as an + input attachment. + + + + + Specifies that an image view can be used as a framebuffer color attachment that supports + blending and as an input attachment. + + + + + Specifies that an image view can be used as a framebuffer depth/stencil attachment and as + an input attachment. + + + + + Specifies that an image can be used as source image for the command. + + + + + Specifies that an image can be used as destination image for the command. + + + + + Specifies that if is also set, an image view can be used with + a sampler that has either of magnification or minification filter set to , or mipmap mode set to . + + If is also set, an image can be used as the source image to with a . + + + This bit must only be exposed for formats that also support the or . + + + + + + An can be used with a sampler that has either of magnification or + minification filter set to , or be the source image for a + blit with filter set to . + This bit must only be exposed for formats that also support the . + + If the format being queried is a depth/stencil format, this only indicates that the depth + aspect is cubic filterable. + + + + + + Specifies that an image can be used as a source image for copy commands. + + + + + Specifies that an image can be used as a destination image for copy commands and clear commands. + + + + + Specifies can be used as a sampled image with a min or max . + This bit must only be exposed for formats that also support the . + + + + + Specifies the tiling arrangement of data in an image. + + + + + Specifies optimal tiling (texels are laid out in an implementation-dependent arrangement, + for more optimal memory access). + + + + + Specifies linear tiling (texels are laid out in memory in row-major order, possibly with + some padding on each row). + + + + + Specify filters used for texture lookups. + + + + + Specifies nearest filtering. + + + + + Specifies linear filtering. + + + + + Cubic filtering computes a set of neighboring coordinates which bound the unnormalized coordinates. + + + + + Supported physical device types. + + + + + The device does not match any other available types. + + + + + The device is typically one embedded in or tightly coupled with the host. + + + + + The device is typically a separate processor connected to the host via an interlink. + + + + + The device is typically a virtual node in a virtualization environment. + + + + + The device is typically running on the same processors as the host. + + + + + Opaque handle to a pipeline object. + + + + + Gets the parent of the resource. + + + + + Gets the cache of the resource. + + + + + Destroy a pipeline object. + + + + + Structure specifying parameters of a newly created graphics pipeline. + + + + + A bitmask specifying how the pipeline will be generated. + + + + + Structures describing the set of the shader stages to be included in the graphics pipeline. + + + + + An instance of the structure. + + + + + The structure which determines input assembly behavior. + + + + + An instance of the structure, and + is ignored if the pipeline does not include a tessellation control shader stage and + tessellation evaluation shader stage. + + + + + An instance of the structure, and + is ignored if the pipeline has rasterization disabled. + + + + + An instance of the structure. + + + + + An instance of the , and is ignored if + the pipeline has rasterization disabled. + + + + + An instance of the structure, and + is ignored if the pipeline has rasterization disabled or if the subpass of the render + pass the pipeline is created against does not use a depth/stencil attachment. + + + + + An instance of the structure, and + is ignored if the pipeline has rasterization disabled or if the subpass of the render + pass the pipeline is created against does not use any color attachments. + + + + + Is used to indicate which properties of the pipeline state object are dynamic and can be + changed independently of the pipeline state. This can be null, which means no + state in the pipeline is considered dynamic. + + + + + The description of binding locations used by both the pipeline and descriptor sets used + with the pipeline. + + + + + A object describing the environment in which the pipeline will + be used; the pipeline must only be used with an instance of any render pass compatible + with the one provided. + + + + + The index of the subpass in the render pass where this pipeline will be used. + + + + + A pipeline to derive from. + + + + + An index into the create infos parameter + to use as a pipeline to derive from. + + + + + Initializes a new instance of the structure. + + + The description of binding locations used by both the pipeline and descriptor sets used + with the pipeline. + + + A object describing the environment in which the pipeline will + be used; the pipeline must only be used with an instance of any render pass compatible + with the one provided. + + + The index of the subpass in the render pass where this pipeline will be used. + + + Structures describing the set of the shader stages to be included in the graphics pipeline. + + The structure which determines input assembly behavior. + + An instance of the structure. + + + An instance of the structure. + + + An instance of the structure, or + null if the pipeline does not include a tessellation control shader stage and + tessellation evaluation shader stage. + + + An instance of the structure, or + null if the pipeline has rasterization disabled. + + + An instance of the , or null if + the pipeline has rasterization disabled. + + + An instance of the structure, or + null if the pipeline has rasterization disabled or if the subpass of the render + pass the pipeline is created against does not use a depth/stencil attachment. + + + An instance of the structure, or + null if the pipeline has rasterization disabled or if the subpass of the render + pass the pipeline is created against does not use any color attachments. + + + Is used to indicate which properties of the pipeline state object are dynamic and can be + changed independently of the pipeline state. This can be null, which means no + state in the pipeline is considered dynamic. + + + A bitmask of controlling how the pipeline will be generated. + + A pipeline to derive from. + + An index into the create infos parameter + to use as a pipeline to derive from. + + + + + Bitmask controlling how a pipeline is created. + + + + + No flags. + + + + + Specifies that the created pipeline will not be optimized. Using this flag may reduce the + time taken to create the pipeline. + + + + + Specifies that the pipeline to be created is allowed to be the parent of a pipeline that + will be created in a subsequent call to . + + + + + Specifies that the pipeline to be created will be a child of a previously created parent pipeline. + + + + + Specifies that any shader input variables decorated as device index will be + assigned values as if they were decorated as view index. + + + + + Specifies that a compute pipeline can be used with with a non-zero base workgroup. + + + + + Structure specifying parameters of a newly created compute pipeline. + + + + + A bitmask specifying options for pipeline creation. + + + + + Describes the compute shader. + + + + + The description of binding locations used by both the pipeline and descriptor sets used + with the pipeline. + Must be consistent with the layout of the compute shader specified in stage. + + + + + A pipeline to derive from. + + + + + An index into the create infos parameter to + use as a pipeline to derive from. + + + + + Initializes a new instance of the structure. + + Describes the compute shader. + + The description of binding locations used by both the pipeline and descriptor sets used + with the pipeline. + + A bitmask specifying options for pipeline creation. + A pipeline to derive from. + + An index into the create infos parameter to + use as a pipeline to derive from. + + + + + Structure specifying parameters of a newly created pipeline shader stage. + + + + + Specifies a single pipeline stage. + + + + + A object that contains the shader for this stage. + + + + + Unicode string specifying the entry point name of the shader for this stage. + + + + + Is null or a structure specifying specialization info. + + + + + Initializes a new instance of the structure. + + Specifies a single pipeline stage. + A object that contains the shader for this stage. + Unicode string specifying the entry point name of the shader for this stage. + + Is null or a structure specifying specialization info. + + + + + Bitmask specifying a pipeline stage. + + + + + Specifies the vertex stage. + + + + + Specifies the tessellation control stage. + + + + + Specifies the tessellation evaluation stage. + + + + + Specifies the geometry stage. + + + + + Specifies the fragment stage. + + + + + Specifies the compute stage. + + + + + Is a combination of bits used as shorthand to specify all graphics stages defined above + (excluding the compute stage). + + + + + Is a combination of bits used as shorthand to specify all shader stages supported by the + device, including all additional stages which are introduced by extensions. + + + + + Structure specifying specialization info. + + + + + An array of which maps constant ids to offsets in + . + + + + + The byte size of the buffer. + + + + + Contains the actual constant values to specialize with. + + + + + Initializes a new instasnce of the structure. + + + An array of which maps constant ids to offsets in + . + + The byte size of the buffer. + Contains the actual constant values to specialize with. + + + + Structure specifying a specialization map entry. + + + + + The id of the specialization constant in SPIR-V. + + + + + The byte offset of the specialization constant value within the supplied data buffer. + + + + + The byte size of the specialization constant value within the supplied data buffer. + + + + + Initializes a new instance of the structure. + + The id of the specialization constant in SPIR-V. + + The byte offset of the specialization constant value within the supplied data buffer. + + + The byte size of the specialization constant value within the supplied data buffer. + + + + + Structure specifying parameters of a newly created pipeline vertex input state. + + + + + An array of structures. + + + + + An array of structures. + + + + + Initializes a new instance of the structure. + + + An array of structures. + + + An array of structures. + + + + + Structure specifying vertex input binding description. + + + + + The binding number that this structure describes. + + + + + The distance in bytes between two consecutive elements within the buffer. + + + + + Specifies whether vertex attribute addressing is a function of the vertex index or of the + instance index. + + + + + Initializes a new instance of the structure. + + The binding number that this structure describes. + + The distance in bytes between two consecutive elements within the buffer. + + + Specifies whether vertex attribute addressing is a function of the vertex index or of the + instance index. + + + + + Specify rate at which vertex attributes are pulled from buffers. + + + + + Specifies that vertex attribute addressing is a function of the vertex index. + + + + + Specifies that vertex attribute addressing is a function of the instance index. + + + + + Structure specifying vertex input attribute description. + + + + + The shader binding location number for this attribute. + Must be less than . + + + + + The binding number which this attribute takes its data from. + Must be less than . + + + + + The size and type of the vertex attribute data. + + Must be allowed as a vertex buffer format, as specified by the flag in returned by . + + + + + + A byte offset of this attribute relative to the start of an element in the vertex input binding. + Must be less than or equal to . + + + + + Initializes a new instance of the attribute. + + The shader binding location number for this attribute. + The binding number which this attribute takes its data from. + The size and type of the vertex attribute data. + + A byte offset of this attribute relative to the start of an element in the vertex input binding. + + + + + Structure specifying parameters of a newly created pipeline input assembly state. + + + + + Defines the primitive topology. + + + + + Controls whether a special vertex index value is treated as restarting the assembly of + primitives. This enable only applies to indexed draws ( and ), and the special index value is either + 0xFFFFFFFF when the index type parameter of is equal to , or + 0xFFFF when index type is equal to . Primitive restart is + not allowed for "list" topologies. + + + + + Initializes a new instance of the structure. + + Defines the primitive topology. + + Controls whether a special vertex index value is treated as restarting the assembly of + primitives. This enable only applies to indexed draws ( and ), and the special index value is either + 0xFFFFFFFF when the index type parameter of is equal to , or + 0xFFFF when index type is equal to . Primitive restart is + not allowed for "list" topologies. + + + + + Supported primitive topologies. + + + + + Structure specifying parameters of a newly created pipeline tessellation state. + + + + + Number of control points per patch. + Must be greater than zero and less than or equal to . + + + + + Initializes a new instance of the structure. + + Number of control points per patch. + + + + Structure specifying parameters of a newly created pipeline viewport state. + + + + + Is or a pointer to an extension-specific structure. + + + + + An array of structures, defining the viewport transforms. If the + viewport state is dynamic, this member is ignored. + + + + + An array of structures which define the rectangular bounds of the + scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored. + + + + + Initializes a new instance of the structure. + + + An array of structures, defining the viewport transforms. If the + viewport state is dynamic, this member is ignored. + + + An array of structures which define the rectangular bounds of the + scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored. + + + Is or a pointer to an extension-specific structure. + + + + + Initializes a new instance of the structure. + + + Defines the viewport transforms. If the viewport state is dynamic, this member is ignored. + + + Defines the rectangular bounds of the scissor for the viewport. If the scissor state is + dynamic, this member is ignored. + + + Is or a pointer to an extension-specific structure. + + + + + Structure specifying a viewport. + + + + + The x coordinate for the viewport's upper left corner (x,y). + + + + + The y coordinate for the viewport's upper left corner (x,y). + + + + + Viewport's width. + + + + + Viewport's height. + + + + + Minimum depth range for the viewport. It is valid for to be + greater than or equal to . + Must be between 0.0 and 1.0, inclusive. + + + + + Maximum depth range for the viewport. It is valid for to be + greater than or equal to . + Must be between 0.0 and 1.0, inclusive. + + + + + Initializes a new instance of the structure. + + The x coordinate for the viewport's upper left corner (x,y). + The y coordinate for the viewport's upper left corner (x,y). + Viewport's width. + Viewport's height. + + Minimum depth range for the viewport. It is valid for to be + greater than or equal to . + + + Maximum depth range for the viewport. It is valid for to be + greater than or equal to . + + + + + Structure specifying parameters of a newly created pipeline rasterization state. + + + + + Is or a pointer to an extension-specific structure. + + + + + Controls whether to clamp the fragment's depth values instead of clipping primitives to + the z planes of the frustum. + + + + + Controls whether primitives are discarded immediately before the rasterization stage. + + + + + The triangle rendering mode. See . + + + + + The triangle facing direction used for primitive culling. See . + + + + + Specifies the front-facing triangle orientation to be used for culling. + + + + + Controls whether to bias fragment depth values. + + + + + A scalar factor controlling the constant depth value added to each fragment. + + + + + The maximum (or minimum) depth bias of a fragment. + + + + + A scalar factor applied to a fragment's slope in depth bias calculations. + + + + + The width of rasterized line segments. + + + + + Bitmask controlling triangle culling. + + + + + Specifies that no triangles are discarded. + + + + + Specifies that front-facing triangles are discarded. + + + + + Specifies that back-facing triangles are discarded. + + + + + Specifies that all triangles are discarded. + + + + + Control polygon rasterization mode. + + + + + Specifies that polygons are rendered using the polygon rasterization rules in this section. + + + + + Specifies that polygon edges are drawn as line segments. + + + + + Specifies that polygon vertices are drawn as points. + + + + + Specifies that polygons are rendered using polygon rasterization rules, modified to + consider a sample within the primitive if the sample location is inside the axis-aligned + bounding box of the triangle after projection. Note that the barycentric weights used in + attribute interpolation can extend outside the range [0,1] when these primitives are + shaded. Special treatment is given to a sample position on the boundary edge of the + bounding box. + + In such a case, if two rectangles lie on either side of a common edge (with identical + endpoints) on which a sample position lies, then exactly one of the triangles must + produce a fragment that covers that sample during rasterization. + + + Polygons rendered in mode may be clipped by the frustum or + by user clip planes. + + If clipping is applied, the triangle is culled rather than clipped. + + Area calculation and facingness are determined for mode + using the triangle's vertices. + + + + + + Interpret polygon front-facing orientation. + + + + + Specifies that a triangle with positive area is considered front-facing. + + + + + Specifies that a triangle with negative area is considered front-facing. + + + + + Structure specifying parameters of a newly created pipeline multisample state. + + + + + Specifies the number of samples per pixel used in rasterization. + + + + + Specifies that fragment shading executes per-sample if true, or per-fragment if false. + + + + + The minimum fraction of sample shading. + + + + + Bitmasks of static coverage information that is ANDed with the coverage information + generated during rasterization. + + If not null, must be a an array of ` / 32` + sample mask values. + + + + + + Controls whether a temporary coverage value is generated based on the alpha component of + the fragment's first color output. + + + + + Controls whether the alpha component of the fragment's first color output is replaced + with one. + + + + + Structure specifying a pipeline color blend attachment state. + + + + + Controls whether blending is enabled for the corresponding color attachment. If blending + is not enabled, the source fragment's color for that attachment is passed through unmodified. + + + + + Selects which blend factor is used to determine the source factors. + + + + + Selects which blend factor is used to determine the destination factors. + + + + + Selects which blend operation is used to calculate the RGB values to write to the color attachment. + + + + + Selects which blend factor is used to determine the source factor. + + + + + Selects which blend factor is used to determine the destination factor. + + + + + Selects which blend operation is use to calculate the alpha values to write to the color attachment. + + + + + A bitmask specifying which of the R, G, B, and/or A components are enabled for writing. + + + + + Bitmask controlling which components are written to the framebuffer. + + + + + Specifies that the R value is written to color attachment for the appropriate sample. + Otherwise, the value in memory is unmodified. + + + + + Specifies that the G value is written to color attachment for the appropriate sample. + Otherwise, the value in memory is unmodified. + + + + + Specifies that the B value is written to color attachment for the appropriate sample. + Otherwise, the value in memory is unmodified. + + + + + Specifies that the A value is written to color attachment for the appropriate sample. + Otherwise, the value in memory is unmodified. + + + + + Specifies that all the values are written to color attachment for the appropriate sample. + Otherwise, the value in memory is unmodified. + + + + + Structure specifying parameters of a newly created pipeline color blend state. + + + + + Controls whether to apply logical operations. + + + + + Selects which logical operation to apply. + + + + + Per target attachment states. + + + + + R, G, B, and A components of the blend constant that are used in blending, depending on + the blend factor. + + + + + Initializes a new instance of the structure. + + Per target attachment states. + Controls whether to apply logical operations. + Selects which logical operation to apply. + + R, G, B, and A components of the blend constant that are used in blending, depending on + the blend factor. + + + + + Framebuffer blending operations. + + + + + Stencil comparison function. + + + + + Keeps the current value. + + + + + Sets the value to 0. + + + + + Sets the value to reference. + + + + + Increments the current value and clamps to the maximum representable unsigned value. + + + + + Decrements the current value and clamps to 0. + + + + + Bitwise-inverts the current value. + + + + + Increments the current value and wraps to 0 when the maximum value would have been exceeded. + + + + + Decrements the current value and wraps to the maximum possible value when the value would + go below 0. + + + + + Framebuffer logical operations. + + + + + Framebuffer blending factors. + + + + + Structure specifying parameters of a newly created pipeline depth stencil state. + + + + + Controls whether depth testing is enabled. + + + + + Controls whether depth writes are enabled when is + true. Depth writes are always disabled when is false. + + + + + The comparison operator used in the depth test. + + + + + Controls whether depth bounds testing is enabled. + + + + + Controls whether stencil testing is enabled. + + + + + Controls the parameters of the stencil test. + + + + + Controls the parameters of the stencil test. + + + + + Defines the range of values used in the depth bounds test. + + + + + Defines the range of values used in the depth bounds test. + + + + + Structure specifying stencil operation state. + + + + + Specifies the action performed on samples that fail the stencil test. + + + + + Specifies the action performed on samples that pass both the depth and stencil tests. + + + + + Specifies the action performed on samples that pass the stencil test and fail the depth test. + + + + + Specifies the comparison operator used in the stencil test. + + + + + Selects the bits of the unsigned integer stencil values participating in the stencil test. + + + + + Selects the bits of the unsigned integer stencil values updated by the stencil test in + the stencil framebuffer attachment. + + + + + An integer reference value that is used in the unsigned stencil comparison. + + + + + Stencil comparison function. + + + + + Specifies that the test never passes. + + + + + Specifies that the test passes when R < S. + + + + + Specifies that the test passes when R = S. + + + + + Specifies that the test passes when R <= S. + + + + + Specifies that the test passes when R > S. + + + + + Specifies that the test passes when R != S. + + + + + Specifies that the test passes when R >= S. + + + + + Specifies that the test always passes. + + + + + Structure specifying parameters of a newly created pipeline dynamic state. + + + + + Values specifying which pieces of pipeline state will use the values from dynamic state + commands rather than from the pipeline state creation info. + + + + + Initializes a new instance of the structure. + + + Values specifying which pieces of pipeline state will use the values from dynamic state + commands rather than from the pipeline state creation info. + + + + + Indicate which dynamic state is taken from dynamic state commands. + + + + + Specifies that the state will be + ignored and must be set dynamically with + before any draw commands. The number of viewports used by a pipeline is still specified + by the length of . + + + + + Specifies that the state will be + ignored and must be set dynamically with before + any draw commands. The number of scissor rectangles used by a pipeline is still specified + by the length of . + + + + + Specifies that the state + will be ignored and must be set dynamically with before any draw commands that generate line + primitives for the rasterizer. + + + + + Specifies that the , and states will be ignored + and must be set dynamically with before any + draws are performed with set to true. + + + + + Specifies that the state + will be ignored and must be set dynamically with before any draws are performed with a + pipeline state with member + set to true and any of the blend functions using a constant blend color. + + + + + Specifies that the and + states will be ignored + and must be set dynamically with before any + draws are performed with a pipeline state with member set to true. + + + + + Specifies that the compare mask state in both and will be ignored and must be set + dynamically with before any draws + are performed with a pipeline state with member set to true. + + + + + Specifies that the write mask state in both and will be ignored and must be set + dynamically with before any draws are + performed with a pipeline state with member set to true. + + + + + Specifies that the reference state in both and will be ignored and must be set + dynamically with before any draws are + performed with a pipeline state with member set to true. + + + + + Specifies that the state will be + ignored and must be set dynamically with before any draws are + performed with a pipeline state with set to true. + + + + + Opaque handle to a pipeline cache object. + + Pipeline cache objects allow the result of pipeline construction to be reused between + pipelines and between runs of an application. Reuse between pipelines is achieved by passing + the same pipeline cache object when creating multiple related pipelines. Reuse across runs of + an application is achieved by retrieving pipeline cache contents in one run of an + application, saving the contents, and using them to preinitialize a pipeline cache on a + subsequent run. The contents of the pipeline cache objects are managed by the implementation. + Applications can manage the host memory consumed by a pipeline cache object and control the + amount of data retrieved from a pipeline cache object. + + + + + + Gets the parent of the resource. + + + + + Get the data store from a pipeline cache. + + Buffer. + Vulkan returns an error code. + + + + Combine the data stores of pipeline caches. + + Pipeline cache to merge into this. + + + + Combine the data stores of pipeline caches. + + Pipeline caches to merge into this. + + + + Destroy a pipeline cache object. + + + + + Structure specifying parameters of a newly created pipeline cache. + + + + + Previously retrieved pipeline cache data. If the pipeline cache data is incompatible with + the device, the pipeline cache will be initially empty. If length is zero, is ignored. + + + + + Initializes a new instance of the structure. + + + Previously retrieved pipeline cache data. If the pipeline cache data is incompatible with + the device, the pipeline cache will be initially empty. If length is zero, is ignored. + + + + + Encode pipeline cache version. + + + + + Specifies version one of the pipeline cache. + + + + + Opaque handle to a pipeline layout object. + + Access to descriptor sets from a pipeline is accomplished through a pipeline layout. Zero or + more descriptor set layouts and zero or more push constant ranges are combined to form a + pipeline layout object which describes the complete set of resources that can be accessed by + a pipeline. The pipeline layout represents a sequence of descriptor sets with each having a + specific layout. This sequence of layouts is used to determine the interface between shader + stages and shader resources. Each pipeline is created using a pipeline layout. + + + + + + Gets the parent of the resource. + + + + + Destroy a pipeline layout object. + + + + + Structure specifying the parameters of a newly created pipeline layout object. + + + + + An array of objects. + + + + + Structures defining a set of push constant ranges for use in a single pipeline layout. In + addition to descriptor set layouts, a pipeline layout also describes how many push + constants can be accessed by each stage of the pipeline. Push constants represent a high + speed path to modify constant data in pipelines that is expected to outperform + memory-backed resource updates. + + + + + Initializes a new instance of the structure. + + An array of objects. + + Structures defining a set of push constant ranges for use in a single pipeline layout. In + addition to descriptor set layouts, a pipeline layout also describes how many push + constants can be accessed by each stage of the pipeline. Push constants represent a high + speed path to modify constant data in pipelines that is expected to outperform + memory-backed resource updates. + + + + + Structure specifying a push constant range. + + + + + A set of stage flags describing the shader stages that will access a range of push + constants. If a particular stage is not included in the range, then accessing members of + that range of push constants from the corresponding shader stage will result in undefined + data being read. + + + + + The start offset consumed by the range. + Offset is in units of bytes and must be a multiple of 4. + The layout of the push constant variables is specified in the shader. + + + + + The size consumed by the range. + Size is in units of bytes and must be a multiple of 4. + The layout of the push constant variables is specified in the shader. + + + + + Initializes a new instance of the structure. + + + A set of stage flags describing the shader stages that will access a range of push + constants. If a particular stage is not included in the range, then accessing members of + that range of push constants from the corresponding shader stage will result in undefined + data being read. + + + The start offset consumed by the range. + Offset is in units of bytes and must be a multiple of 4. + The layout of the push constant variables is specified in the shader. + + + The size consumed by the range. + Size is in units of bytes and must be a multiple of 4. + The layout of the push constant variables is specified in the shader. + + + + + Opaque handle to a query pool object. + + Queries are managed using query pool objects. Each query pool is a collection of a specific + number of queries of a particular type. + + + + + + Gets the parent of the resource. + + + + + Copy results of queries in a query pool to a host memory region. + + The initial query index. + + The number of queries. and + together define a range of queries. + + The size in bytes of the buffer pointed to by . + A pointer to a user-allocated buffer where the results will be written. + + The stride in bytes between results for individual queries within . + + A bitmask specifying how and when results are returned. + + + + Destroy a query pool object. + + + + + Structure specifying parameters of a newly created query pool. + + + + + Specifies the type of queries managed by the pool. + + + + + The number of queries managed by the pool. + + + + + A bitmask specifying which counters will be returned in queries on the new pool. + Ignored if is not . + + + + + Initializes a new instance of the structure. + + Specifies the type of queries managed by the pool. + The number of queries managed by the pool. + + A bitmask specifying which counters will be returned in queries on the new pool. + Ignored if is not . + + + + + Specify the type of queries managed by a query pool. + + + + + Specifies an occlusion query. + + + + + Specifies a pipeline statistics query. + + + + + Specifies a timestamp query. + + + + + Bitmask specifying how and when query results are returned. + + + + + No flags. + + + + + Specifies the results will be written as an array of 64-bit unsigned integer values. If + this bit is not set, the results will be written as an array of 32-bit unsigned integer values. + + + + + Specifies that Vulkan will wait for each query's status to become available before + retrieving its results. + + + + + Specifies that the availability status accompanies the results. + + + + + Specifies that returning partial results is acceptable. + + + + + Opaque handle to a queue object. + + + + + Gets the parent of the resource. + + + + + Gets the queue family index. + + + + + Gets the queue index. + + + + + Submits a sequence of semaphores or command buffers to a queue. + + Structures, each specifying a command buffer submission batch. + + An optional handle to a fence to be signaled. If fence is not null, it defines a + fence signal operation. + + Vulkan returns an error code. + + + + Submits a sequence of semaphores or command buffers to a queue. + + Specifies a command buffer submission batch. + + An optional handle to a fence to be signaled. If fence is not null, it defines a + fence signal operation. + + Vulkan returns an error code. + + + + Submits semaphores or a command buffer to a queue. + + + An optional handle to a fence to be signaled. If fence is not null, it defines a + fence signal operation. + + + Semaphore upon which to wait before the command buffer for this batch begins execution. + If semaphore to wait on is provided, it defines a semaphore wait operation. + + Pipeline stages at which semaphore wait will occur. + Command buffer to execute in the batch. + + Semaphore which will be signaled when the command buffer for this batch has completed + execution. If semaphore to be signaled is provided, it defines a semaphore signal operation. + + Vulkan returns an error code. + + + + Wait for a queue to become idle. + + Equivalent to submitting a fence to a queue and waiting with an infinite timeout for that + fence to signal. + + + Vulkan returns an error code. + + + + Bind device memory to a sparse resource object. + + Specifying a sparse binding submission batch. + + An optional handle to a fence to be signaled. If fence is not null, it defines a + fence signal operation. + + Vulkan returns an error code. + + + + Bind device memory to a sparse resource object. + + + An array of structures, each specifying a sparse binding + submission batch. + + + An optional handle to a fence to be signaled. If fence is not null, it defines a + fence signal operation. + + Vulkan returns an error code. + + + + Structure specifying a queue submit operation. + + + + + Semaphores upon which to wait before the command buffers for this batch begin execution. + If semaphores to wait on are provided, they define a semaphore wait operation. + + + + + Pipeline stages at which each corresponding semaphore wait will occur. + + + + + Command buffers to execute in the batch. + + + + + Semaphores which will be signaled when the command buffers for this batch have completed + execution. If semaphores to be signaled are provided, they define a semaphore signal operation. + + + + + Initializes a new instance of the structure. + + + Semaphores upon which to wait before the command buffers for this batch begin execution. + If semaphores to wait on are provided, they define a semaphore wait operation. + + + Pipeline stages at which each corresponding semaphore wait will occur. + + + Command buffers to execute in the batch. The command buffers submitted in a batch begin + execution in the order they appear in , but may complete + out of order. + + + Semaphores which will be signaled when the command buffers for this batch have completed + execution. If semaphores to be signaled are provided, they define a semaphore signal operation. + + + + + Structure specifying a sparse binding operation. + + + + + Semaphores upon which to wait on before the sparse binding operations for this batch + begin execution. If semaphores to wait on are provided, they define a semaphore wait operation. + + + + + An array of structures. + + + + + An array of structures, indicating opaque + sparse image bindings to perform. + + + + + An array of structures, indicating sparse image + bindings to perform. + + + + + Semaphores which will be signaled when the sparse binding operations for this batch have + completed execution. If semaphores to be signaled are provided, they define a semaphore + signal operation. + + + + + Initializes a new instance of the structure. + + + Semaphores upon which to wait on before the sparse binding operations for this batch + begin execution. If semaphores to wait on are provided, they define a semaphore wait operation. + + An array of structures. + + An array of structures, indicating opaque + sparse image bindings to perform. + + + An array of structures, indicating sparse image + bindings to perform. + + + Semaphores which will be signaled when the sparse binding operations for this batch have + completed execution. If semaphores to be signaled are provided, they define a semaphore + signal operation. + + + + + Structure specifying a sparse buffer memory bind operation. + + + + + The object to be bound. + + + + + An array of structures. + + + + + Initializes a new instance of the structure. + + The object to be bound. + An array of structures. + + + + Structure specifying a sparse memory bind operation. + + + + + The offset into the resource. + + + + + The size of the memory region to be bound. + + + + + The object that the range of the resource is bound to. If + memory 0, the range is unbound. + + + + + The offset into the object to bind the resource range to. If + memory is 0, this value is ignored. + + + + + A bitmask specifying usage of the binding operation. + + + + + Initializes a new instance of the structure. + + The offset into the resource. + The size of the memory region to be bound. + + The object that the range of the resource is bound to. If + memory 0, the range is unbound. + + + The offset into the object to bind the resource range to. If + memory is 0, this value is ignored. + + A bitmask specifying usage of the binding operation. + + + + Bitmask specifying usage of a sparse memory binding operation. + + + + + No flags. + + + + + Specifies that the memory being bound is only for the metadata aspect. + + + + + Structure specifying sparse image opaque memory bind info. + + + + + The object to be bound. + + + + + An array of structures. + Length must be greater than 0. + + + + + Initializes a new instance of the structure. + + The object to be bound. + An array of structures. + + + + Structure specifying sparse image memory bind info. + + + + + The object to be bound. + + + + + An array of structures. + Length must be greater than 0. + + + + + Initializes a new instance of the structure. + + The object to be bound. + An array of structures. + + + + Structure specifying sparse image memory bind. + + + + + The aspect mask and region of interest in the image. + Must be a valid subresource for . + + + + + The coordinates of the first texel within the image subresource to bind. + + + + + The size in texels of the region within the image subresource to bind. The extent must be + a multiple of the sparse image block dimensions, except when binding sparse image blocks + along the edge of an image subresource it can instead be such that any coordinate of + equals the corresponding dimensions of the image subresource. + + + + + The object that the sparse image blocks of the image are bound + to. If memory is 0, the sparse image blocks are unbound. + Must match the memory requirements of the calling command's . + + + + + An offset into object. If memory is 0, this value is ignored. + Must match the memory requirements of the calling command's . + + + + + Sparse memory binding flags. + + + + + Structure specifying a two-dimensional subregion. + + + + + A with all of its components set to zero. + + + + + The offset component of the rectangle. + + + + + The extent component of the rectangle. + + + + + Initializes a new instance of the structure. + + The offset component of the rectangle. + The extent component of the rectangle. + + + + Initializes a new instance of the structure. + + The X component of the offset. + The Y component of the offset. + The width component of the extent. + The height component of the extent. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given rectangles are equal. + + The first rectangle to compare. + The second rectangle to compare. + true if the rectangles are equal; false otherwise. + + + + Returns a boolean indicating whether the two given rectangles are not equal. + + The first rectangle to compare. + The second rectangle to compare. + + true if the rectangles are not equal; false if they are equal. + + + + + Structure specifying a three-dimensional subregion. + + + + + A with all of its components set to zero. + + + + + The offset component of the cuboid. + + + + + The extent component of the cuboid. + + + + + Initializes a new instance of the structure. + + The offset component of the rectangle. + The extent component of the rectangle. + + + + Initializes a new instance of the structure. + + The X component of the offset. + The Y component of the offset. + The Z component of the offset. + The width component of the extent. + The height component of the extent. + The depth component of the extent. + + + + Returns a string representing this instance. + + The string representation. + + + + Returns a string representing this instance, using the specified + format to format individual elements and the given . + + The format provider to use when formatting elements. + The string representation. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the two given rectangles are equal. + + The first rectangle to compare. + The second rectangle to compare. + true if the rectangles are equal; false otherwise. + + + + Returns a boolean indicating whether the two given rectangles are not equal. + + The first rectangle to compare. + The second rectangle to compare. + + true if the rectangles are not equal; false if they are equal. + + + + + Opaque handle to a render pass object. + + A render pass represents a collection of attachments, subpasses, and dependencies between the + subpasses, and describes how the attachments are used over the course of the subpasses. The + use of a render pass in a command buffer is a render pass instance. + + + + + + Gets the parent of the resource. + + + + + Returns the granularity for optimal render area. + + The structure in which the granularity is returned. + + + + Create a new framebuffer object. + + + The structure which describes additional information about framebuffer creation. + + Controls host memory allocation. + The resulting framebuffer object. + Vulkan returns an error code. + + + + Destroy a render pass object. + + + + + Structure specifying parameters of a newly created render pass. + + + + + Structures describing properties of the attachments, or null. + + + + + Structures describing properties of the subpasses. + + + + + Structures describing dependencies between pairs of subpasses, or null. + + + + + Initializes a new instnace of the structure. + + Structures describing properties of the subpasses. + Structures describing properties of the attachments, or null. + + Structures describing dependencies between pairs of subpasses, or null. + + + + + Structure specifying a subpass description. + + + + + A bitmask specifying usage of the subpass. + + + + + Structures that lists which of the render pass's attachments will be used as color + attachments in the subpass, and what layout each attachment will be in during the subpass. + + Each element of the array corresponds to a fragment shader output location, i.e. if the + shader declared an output variable layout(location=X) then it uses the attachment + provided in ColorAttachments[X]. + + + + + + Structures that lists which of the render pass's attachments can be read in the shader + during the subpass, and what layout each attachment will be in during the subpass. Each + element of the array corresponds to an input attachment unit number in the shader, i.e. + if the shader declares an input variable layout(inputAttachmentIndex=X, set=Y, + binding=Z then it uses the attachment provided in InputAttachments[X]. + Input attachments must also be bound to the pipeline with a descriptor set, with the + input attachment descriptor written in the location (set=Y, binding=Z). + + + + + Is null or an array of structures that lists which of the render pass's + attachments are resolved to at the end of the subpass, and what layout each attachment + will be in during the multisample resolve operation. If + is not null, each of its elements corresponds to a color attachment (the element + in at the same index), and a multisample resolve operation + is defined for each attachment. At the end of each subpass, multisample resolve + operations read the subpass's color attachments, and resolve the samples for each pixel + to the same pixel location in the corresponding resolve attachments, unless the resolve + attachment index is . If the first use of an + attachment in a render pass is as a resolve attachment, then the is effectively ignored as the resolve is guaranteed to + overwrite all pixels in the render area. + + + + + Specifies which attachment will be used for depth/stencil data and the layout it will be + in during the subpass. Setting the attachment index to or leaving this as null indicates that no + depth/stencil attachment will be used in the subpass. + + + + + Render pass attachment indices describing the attachments that are not used by a subpass, + but whose contents must be preserved throughout the subpass. + + + + + Initializes a new instance of the structure. + + A bitmask indicating usage of the subpass. + + Structures that lists which of the render pass’s attachments will be used as color + attachments in the subpass, and what layout each attachment will be in during the + subpass. Each element of the array corresponds to a fragment shader output location, i.e. + if the shader declared an output variable layout(location=X) then it uses the + attachment provided in ColorAttachments[X]. + + + Structures that lists which of the render pass's attachments can be read in the shader + during the subpass, and what layout each attachment will be in during the subpass. Each + element of the array corresponds to an input attachment unit number in the shader, i.e. + if the shader declares an input variable layout(inputAttachmentIndex=X, set=Y, + binding=Z) then it uses the attachment provided in InputAttachments[X]. Input + attachments must also be bound to the pipeline with a descriptor set, with the input + attachment descriptor written in the location (set=Y, binding=Z). + + + Is null or an array of structures that lists which of the render pass's + attachments are resolved to at the end of the subpass, and what layout each attachment + will be in during the multisample resolve operation. If + is not null, each of its elements corresponds to a color attachment (the element + in at the same index), and a multisample resolve operation + is defined for each attachment. At the end of each subpass, multisample resolve + operations read the subpass's color attachments, and resolve the samples for each pixel + to the same pixel location in the corresponding resolve attachments, unless the resolve + attachment index is . If the first use of an + attachment in a render pass is as a resolve attachment, then the is effectively ignored as the resolve is guaranteed to + overwrite all pixels in the render area. + + + Specifies which attachment will be used for depth/stencil data and the layout it will be + in during the subpass. Setting the attachment index to or leaving this as null indicates that no + depth/stencil attachment will be used in the subpass. + + + Render pass attachment indices describing the attachments that are not used by a subpass, + but whose contents must be preserved throughout the subpass. + + + + + Initializes a new instance of the structure. + + + Structures that lists which of the render pass’s attachments will be used as color + attachments in the subpass, and what layout each attachment will be in during the + subpass. Each element of the array corresponds to a fragment shader output location, i.e. + if the shader declared an output variable layout(location=X) then it uses the attachment + provided in [X]. + + + Specifies which attachment will be used for depth/stencil data and the layout it will be + in during the subpass. Setting the attachment index to or leaving this as null indicates that no + depth/stencil attachment will be used in the subpass. + + + + + Bitmask specifying usage of a subpass. + + + + + No flags. + + + + + Specifies that shaders compiled for this subpass write the attributes for all views in a + single invocation of each vertex processing stage. All pipelines compiled against a + subpass that includes this bit must write per-view attributes to the *PerViewNV[] + shader outputs, in addition to the non-per-view (e.g. Position) outputs. + + + + + Specifies that shaders compiled for this subpass use per-view positions which only differ + in value in the x component. Per-view viewport mask can also be used. + + + + + Specify the bind point of a pipeline object to a command buffer. + + There are separate bind points for each of graphics and compute, so binding one does not + disturb the other. + + + + + + Specifies binding as a graphics pipeline. + + + + + Specifies binding as a compute pipeline. + + + + + Structure specifying an attachment reference. + + + + + The index of the attachment of the render pass, and corresponds to the index of the + corresponding element in the array. If any + color or depth/stencil attachments are , then no + writes occur for those attachments. + + + + + Specifies the layout the attachment uses during the subpass. + Must not be or . + + + + + Initializes a new instance of the structure. + + + The index of the attachment of the render pass, and corresponds to the index of the + corresponding element in the array. If any + color or depth/stencil attachments are , then no + writes occur for those attachments. + + Specifies the layout the attachment uses during the subpass. + + + + Structure specifying a subpass dependency. + + + + + The subpass index of the first subpass in the dependency, or . + + + + + The subpass index of the second subpass in the dependency, or . + + + + + Specifies a source stage mask. + + + + + Specifies a destination stage mask. + + + + + Specifies a source access mask. + + + + + Specifies a destination access mask. + + + + + A bitmask of . + + + + + Bitmask specifying how execution and memory dependencies are formed. + + + + + No flags. + + + + + Specifies that dependencies will be framebuffer-local. + + + + + Specifies that a subpass has more than one view. + + + + + Specifies that dependencies are non-device-local. + + + + + Vulkan command return codes. + + + + + Command successfully completed. + + + + + A fence or query has not yet completed. + + + + + A wait operation has not completed in the specified time. + + + + + An event is signaled. + + + + + An event is unsignaled. + + + + + A return array was too small for the result. + + + + + A host memory allocation has failed. + + + + + A device memory allocation has failed. + + + + + Initialization of an object could not be completed for implementation-specific reasons. + + + + + The logical or physical device has been lost. + + + + + Mapping of a memory object has failed. + + + + + A requested layer is not present or could not be loaded. + + + + + A requested extension is not supported. + + + + + A requested feature is not supported. + + + + + The requested version of Vulkan is not supported by the driver or is otherwise + incompatible for implementation-specific reasons. + + + + + Too many objects of the type have already been created. + + + + + A requested format is not supported on this device. + + + + + A pool allocation has failed due to fragmentation of the pool's memory. This must only be + returned if no attempt to allocate host or device memory was made to accomodate the new allocation. + + + + + The surface becomes no longer available. + + + + + The requested window is already in use by Vulkan or another API in a manner which + prevents it from being used again. + + + + + A swapchain no longer matches the surface properties exactly, but can still be used to + present to the surface successfully. + + + + + A surface has changed in such a way that it is no longer compatible with the swapchain, + and further presentation requests using the swapchain will fail. Applications must query + the new surface properties and recreate their swapchain if they wish to continue + presenting to the surface. + + + + + A surface has changed in such a way that it is no longer compatible with the swapchain, + and further presentation requests using the swapchain will fail. Applications must query + the new surface properties and recreate their swapchain if they wish to continue + presenting to the surface. + + + + + The application returned true from its callback and the Vulkan call being aborted + returned a . + + + + + One or more shaders failed to compile or link. More details are reported back to the + application via if enabled. + + + + + A pool memory allocation has failed. This must only be returned if no attempt to allocate + host or device memory was made to accomodate the new allocation. If the failure was + definitely due to fragmentation of the pool, should be + returned instead. + + + + + An external handle is not a valid handle of the specified type. + + + + + Opaque handle to a sampler object. + + objects represent the state of an image sampler which is used by the + implementation to read image data and apply filtering and other transformations for the shader. + + + + + + Gets the parent of the resource. + + + + + Destroy a sampler object. + + + + + Structure specifying parameters of a newly created sampler. + + + + + Specifies the magnification filter to apply to lookups. + + + + + Specifies the minification filter to apply to lookups. + + + + + Specifies the mipmap filter to apply to lookups. + + + + + Specifies the addressing mode for outside [0..1] range for U coordinate. + + + + + Specifies the addressing mode for outside [0..1] range for V coordinate. + + + + + Specifies the addressing mode for outside [0..1] range for W coordinate. + + + + + The bias to be added to mipmap LOD calculation and bias provided by image sampling + functions in SPIR-V. + + + + + Is true to enable anisotropic filtering, or false otherwise. + + + + + The anisotropy value clamp. + + + + + Is true to enable comparison against a reference value during lookups, or + false otherwise. + + + + + Specifies the comparison function to apply to fetched data before filtering. + + + + + The value used to clamp the computed level-of-detail value. + Must be less than or equal to . + + + + + The value used to clamp the computed level-of-detail value. + Must be greater than or equal to . + + + + + Specifies the predefined border color to use. + + + + + Controls whether to use unnormalized or normalized texel coordinates to address texels of + the image. When set to true, the range of the image coordinates used to lookup the + texel is in the range of zero to the image dimensions for x, y and z. When set to + false the range of image coordinates is zero to one. + + + + + Specify mipmap mode used for texture lookups. + + + + + Specifies nearest filtering. + + + + + Specifies linear filtering. + + + + + Specify behavior of sampling with texture coordinates outside an image. + + + + + Specifies that the repeat wrap mode will be used. + + + + + Specifies that the mirrored repeat wrap mode will be used. + + + + + Specifies that the clamp to edge wrap mode will be used. + + + + + Specifies that the clamp to border wrap mode will be used. + + + + + Specifies that the mirror clamp to edge wrap mode will be used. This is only valid if the + "VK_KHR_mirror_clamp_to_edge" extension is enabled. + + + + + Specify border color used for texture lookups. + + + + + Specifies a transparent, floating-point format, black color. + + + + + Specifies a transparent, integer format, black color. + + + + + Specifies an opaque, floating-point format, black color. + + + + + Specifies an opaque, integer format, black color. + + + + + Specifies an opaque, floating-point format, white color. + + + + + Specifies an opaque, integer format, white color. + + + + + Opaque handle to a semaphore object. + + Semaphores are a synchronization primitive that can be used to insert a dependency between + batches submitted to queues. Semaphores have two states - signaled and unsignaled. The state + of a semaphore can be signaled after execution of a batch of commands is completed. A batch + can wait for a semaphore to become signaled before it begins execution, and the semaphore is + also unsignaled before the batch begins execution. + + + + + + Gets the parent of this resource. + + + + + Destroy a semaphore object. + + + + + Structure specifying parameters of a newly created semaphore. + + + + + Opaque handle to a shader module object. + + Shader modules contain shader code and one or more entry points. Shaders are selected from a + shader module by specifying an entry point as part of pipeline creation. The stages of a + pipeline can use shaders that come from different modules. The shader code defining a shader + module must be in the SPIR-V format. + + + + + + Gets the owner of the resource. + + + + + Destroy a shader module. + + + + + Structure specifying parameters of a newly created shader module. + + + + + The code that is used to create the shader module. The type and format of the code is + determined from the content of the code. + + + + + Initializes a new instance of the structure. + + + The code that is used to create the shader module. The type and format of the code is + determined from the content of the code. + + + + + A platform-specific type that is used to represent a size (in bytes) of an object in memory. + Equivalent to C/C++ size_t type. + + + + + Initializes a new instance of the structure. + + The size of an object in bytes. + + + + Initializes a new instance of the structure. + + The size of an object in bytes. + + + + Converts the numeric value of the current object to its equivalent + string representation. + + The string representation of the value of this instance. + + + + Returns a boolean indicating whether the given is equal to this instance. + + The to compare this instance to. + + true if the other is equal to this instance; false otherwise. + + + + + Returns a boolean indicating whether the given is equal to this instance. + + The to compare against. + + true if the is equal to this instance; false otherwise. + + + + + Returns the hash code for this instance. + + The hash code. + + + + Compares the current instance with another size and returns an integer that indicates + whether the current instance precedes, follows, or occurs in the same position in the + sort order as the other version. + + A size to compare with this instance. + A value that indicates the relative order of the sizes being compared. + + + + Returns a boolean indicating whether the two given sizes are equal. + + The first size to compare. + The second size to compare. + true if the sizes are equal; false otherwise. + + + + Returns a boolean indicating whether the two given sizes are not equal. + + The first size to compare. + The second size to compare. + + true if the sizes are not equal; false if they are equal. + + + + + Implicitly converts an to a . + + Instance to convert. + + + + Implicitly converts a to a . + + Instance to convert. + + + + Implicitly converts an to a . + + Instance to convert. + + + + Explicitly converts a to an . + + Instance to convert. + + + + Implicitly converts a to a . + + Instance to convert. + + + + Implicitly converts a to an . + + Instance to convert. + + + + Structure type enumerant. + + + + + Reserved for internal use by the loader, layers, and ICDs. + + + + + Reserved for internal use by the loader, layers, and ICDs. + + + + + Provides helper methods for various types. + + + + + Gets the index of the that has all the requested set or -1 if not found. + + + Structures describing the memory types that can be used to access memory allocated from + the heaps specified by . + + + A bitmask of that contains one bit set + for every memory type supported by the resource. + + A bitmask of properties to request. + Index of the requested or -1 if not found. + /// + is null. + + + + Determines whether a sequence of contains a layer with + specified . + + A sequence in which to locate a layer name. + The layer name to locate in the sequence. + + true if the source sequence contains an element that has the specified value; + otherwise, false. + + is null. + + + + Determines whether a sequence of contains a layer with + specified . + + A sequence in which to locate an extension name. + The layer name to locate in the sequence. + + true if the source sequence contains an element that has the specified value; + otherwise, false. + + is null. + + + + Semantic Versioning number. + + http://semver.org/ + + + + Initializes a new instance of the struct. + + Major component of semver. + Minor component of semver. + Patch component of semver. + + + + Gets the major component of semver. + + + + + Gets the minor component of semver. + + + + + Gets the patch component of semver. + + + + + Returns a string that represents the current version in the form of MAJOR.MINOR.PATCH. + + A string that represents the current version. + + + + Indicates whether the current version is equal to another version. + + A version to compare with this version. + + true if the current version is equal to the other parameter; otherwise, false. + + + + + Compares the current instance with another version and returns an integer that indicates + whether the current instance precedes, follows, or occurs in the same position in the + sort order as the other version. + + A version to compare with this instance. + A value that indicates the relative order of the versions being compared. + + + + A shorthand for writing new Version(0, 0, 0). + + + + + Represents an error from executing a Vulkan command. + + + + + Initializes a new instance of the class. + + The result returned by Vulkan. + The message that describes the error. + + + + Gets the result returned by Vulkan. + + + + + Gets if the result is considered an error. + + + + diff --git a/packages/VulkanSharp.0.1.8/VulkanSharp.0.1.8.nupkg b/packages/VulkanSharp.0.1.8/VulkanSharp.0.1.8.nupkg new file mode 100644 index 0000000..3820567 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/VulkanSharp.0.1.8.nupkg differ diff --git a/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.Android.dll.mdb b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.Android.dll.mdb new file mode 100644 index 0000000..e9226b9 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.Android.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.config b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.config new file mode 100644 index 0000000..5b650b3 --- /dev/null +++ b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.config @@ -0,0 +1,4 @@ + + + + diff --git a/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.mdb b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.mdb new file mode 100644 index 0000000..81ea731 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/MonoAndroid10/Vulkan.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.Windows.dll.mdb b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.Windows.dll.mdb new file mode 100644 index 0000000..4e08a74 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.Windows.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.config b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.config new file mode 100644 index 0000000..5b650b3 --- /dev/null +++ b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.config @@ -0,0 +1,4 @@ + + + + diff --git a/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.mdb b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.mdb new file mode 100644 index 0000000..81ea731 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/net452/Vulkan.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.config b/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.config new file mode 100644 index 0000000..5b650b3 --- /dev/null +++ b/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.config @@ -0,0 +1,4 @@ + + + + diff --git a/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.mdb b/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.mdb new file mode 100644 index 0000000..81ea731 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/portable-net45+win8+MonoAndroid10/Vulkan.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.Windows.dll.mdb b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.Windows.dll.mdb new file mode 100644 index 0000000..4e08a74 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.Windows.dll.mdb differ diff --git a/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.config b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.config new file mode 100644 index 0000000..5b650b3 --- /dev/null +++ b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.config @@ -0,0 +1,4 @@ + + + + diff --git a/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.mdb b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.mdb new file mode 100644 index 0000000..81ea731 Binary files /dev/null and b/packages/VulkanSharp.0.1.8/lib/win8/Vulkan.dll.mdb differ diff --git a/parseManager.sln b/parseManager.sln index b46b2f8..c4bfc93 100644 --- a/parseManager.sln +++ b/parseManager.sln @@ -1,7 +1,9 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 # SharpDevelop 5.1 +VisualStudioVersion = 12.0.20827.3 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "parseManagerTester", "parseManager\parseManagerTester.csproj", "{E095732F-BCDC-4794-B013-A849C4146DA3}" EndProject Global diff --git a/parseManager/Fancy.cs b/parseManager/Fancy.cs index 9c597a8..b69c26b 100644 --- a/parseManager/Fancy.cs +++ b/parseManager/Fancy.cs @@ -31,6 +31,13 @@ namespace FancyPrintCS form = n; } } + public static void SetFVar(int f){ + if(f<0 || f>6){ + Console.WriteLine("Invalid int value! Only 0-7 is allowed!"); + } else { + fvar=f; + } + } public static void SetForm(string n) { if (n.ToLower()=="left"){ diff --git a/parseManager/Program.cs b/parseManager/Program.cs index 5debef6..762defe 100644 --- a/parseManager/Program.cs +++ b/parseManager/Program.cs @@ -11,144 +11,6 @@ using System.Diagnostics; using System.Runtime.InteropServices; using parseManagerCS; using System.Windows.Input; -public class define : standardDefine // If you want the standard methods you must include this, Also this class cannot be static! -{ - int origRow = Console.CursorTop; - int origCol = Console.CursorLeft; - public void setPosition(parseManager PM, double x, double y) - { - Console.SetCursorPosition((int)x, (int)y); - } - public void writeAt(parseManager PM, string s, double x, double y) - { - try { - Console.SetCursorPosition(origCol + (int)x, origRow + (int)y); - Console.Write(s); - } catch (ArgumentOutOfRangeException e) { - Console.Clear(); - Console.WriteLine(e.Message); - } - } - public bool isDown(parseManager PM, string key) - { - if(!ApplicationIsActivated()){ - return false; - } - Key kk = Key.Zoom; - var k = key.ToUpper(); - if (k == "A") { - kk = Key.A; - } else if (k == "B") { - kk = Key.B; - } else if (k == "C") { - kk = Key.C; - } else if (k == "D") { - kk = Key.D; - } else if (k == "E") { - kk = Key.E; - } else if (k == "F") { - kk = Key.F; - } else if (k == "G") { - kk = Key.G; - } else if (k == "H") { - kk = Key.H; - } else if (k == "I") { - kk = Key.I; - } else if (k == "J") { - kk = Key.J; - } else if (k == "K") { - kk = Key.K; - } else if (k == "L") { - kk = Key.L; - } else if (k == "M") { - kk = Key.M; - } else if (k == "N") { - kk = Key.N; - } else if (k == "O") { - kk = Key.O; - } else if (k == "P") { - kk = Key.P; - } else if (k == "Q") { - kk = Key.Q; - } else if (k == "R") { - kk = Key.R; - } else if (k == "S") { - kk = Key.S; - } else if (k == "T") { - kk = Key.T; - } else if (k == "U") { - kk = Key.U; - } else if (k == "V") { - kk = Key.V; - } else if (k == "W") { - kk = Key.W; - } else if (k == "X") { - kk = Key.X; - } else if (k == "Y") { - kk = Key.Y; - } else if (k == "Z") { - kk = Key.Z; - } else if (k == "{UP}") { - kk = Key.Up; - } else if (k == "{DOWN}") { - kk = Key.Down; - } else if (k == "{LEFT}") { - kk = Key.Left; - } else if (k == "{RIGHT}") { - kk = Key.Right; - } else if (k == "{ENTER}") { - kk = Key.Enter; - } else if (k == "{LSHIFT}"){ - kk = Key.LeftShift; - } else if (k == "{RSHIFT}"){ - kk = Key.RightShift; - } else if (k == "0"){ - kk = Key.D0; - } else if (k == "1"){ - kk = Key.D1; - } else if (k == "2"){ - kk = Key.D2; - } else if (k == "3"){ - kk = Key.D3; - } else if (k == "4"){ - kk = Key.D4; - } else if (k == "5"){ - kk = Key.D5; - } else if (k == "6"){ - kk = Key.D6; - } else if (k == "7"){ - kk = Key.D7; - } else if (k == "8"){ - kk = Key.D8; - } else if (k == "9"){ - kk = Key.D9; - } else if(k == "{SPACE}"){ - kk = Key.Space; - } - return Keyboard.IsKeyDown(kk); - } - public string isPressing(parseManager PM) - { - return Console.ReadKey(true).Key.ToString(); - } - public static bool ApplicationIsActivated() - { - var activatedHandle = GetForegroundWindow(); - if (activatedHandle == IntPtr.Zero) { - return false; // No window is currently activated - } else { - var procId = Process.GetCurrentProcess().Id; - int activeProcId; - GetWindowThreadProcessId(activatedHandle, out activeProcId); - return activeProcId == procId; - } - } - [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] - static extern IntPtr GetForegroundWindow(); - - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - static extern int GetWindowThreadProcessId(IntPtr handle, out int processId); -} namespace parseManagerCS { class Program @@ -156,12 +18,12 @@ namespace parseManagerCS [STAThread] public static void Main(string[] args) { -// if (args.Length == 0) { -// Console.Write("Please Include a file path!"); -// Console.ReadLine(); -// Environment.Exit(0); -// } - parseManager PM = new parseManager("parsetest2.txt", "define"); + if (args.Length == 0) { + Console.Write("Please Include a file path!"); + Console.ReadLine(); + Environment.Exit(0); + } + parseManager PM = new parseManager(args[0]); nextType next = PM.Next(); string type; while (next.GetCMDType() != "EOF") { diff --git a/parseManager/app.config b/parseManager/app.config index 970c80b..52737ff 100644 --- a/parseManager/app.config +++ b/parseManager/app.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/parseManager/bin/Debug/Audio/Collapse.mp3 b/parseManager/bin/Debug/Audio/Collapse.mp3 new file mode 100644 index 0000000..f028bc7 Binary files /dev/null and b/parseManager/bin/Debug/Audio/Collapse.mp3 differ diff --git a/parseManager/bin/Debug/Audio/Endnear.mp3 b/parseManager/bin/Debug/Audio/Endnear.mp3 new file mode 100644 index 0000000..360ccaf Binary files /dev/null and b/parseManager/bin/Debug/Audio/Endnear.mp3 differ diff --git a/parseManager/bin/Debug/Audio/select.mp3 b/parseManager/bin/Debug/Audio/select.mp3 new file mode 100644 index 0000000..f6bc0c1 Binary files /dev/null and b/parseManager/bin/Debug/Audio/select.mp3 differ diff --git a/parseManager/bin/Debug/CSCore.xml b/parseManager/bin/Debug/CSCore.xml deleted file mode 100644 index 0061d63..0000000 --- a/parseManager/bin/Debug/CSCore.xml +++ /dev/null @@ -1,25234 +0,0 @@ - - - - CSCore - - - - - Defines and provides methods to convert between -values and -values. - - are used by the , the and the class. - - - WAVE_FORMAT_UNKNOWN, Microsoft Corporation - - - WAVE_FORMAT_PCM Microsoft Corporation - - - WAVE_FORMAT_ADPCM Microsoft Corporation - - - WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation - - - WAVE_FORMAT_VSELP Compaq Computer Corp. - - - WAVE_FORMAT_IBM_CVSD IBM Corporation - - - WAVE_FORMAT_ALAW Microsoft Corporation - - - WAVE_FORMAT_MULAW Microsoft Corporation - - - WAVE_FORMAT_DTS Microsoft Corporation - - - WAVE_FORMAT_DRM Microsoft Corporation - - - WAVE_FORMAT_WMAVOICE9 - - - WAVE_FORMAT_OKI_ADPCM OKI - - - WAVE_FORMAT_DVI_ADPCM Intel Corporation - - - WAVE_FORMAT_IMA_ADPCM Intel Corporation - - - WAVE_FORMAT_MEDIASPACE_ADPCM Videologic - - - WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp - - - WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation - - - WAVE_FORMAT_DIGISTD DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. - - - WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation - - - WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. - - - WAVE_FORMAT_CU_CODEC Hewlett-Packard Company - - - WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America - - - WAVE_FORMAT_SONARC Speech Compression - - - WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc - - - WAVE_FORMAT_ECHOSC1 Echo Speech Corporation - - - WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. - - - WAVE_FORMAT_APTX Audio Processing Technology - - - WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. - - - WAVE_FORMAT_PROSODY_1612, Aculab plc - - - WAVE_FORMAT_LRC, Merging Technologies S.A. - - - WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories - - - WAVE_FORMAT_GSM610, Microsoft Corporation - - - WAVE_FORMAT_MSNAUDIO, Microsoft Corporation - - - WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation - - - WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited - - - WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. - - - WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited - - - WAVE_FORMAT_NMS_VBXADPCM - - - WAVE_FORMAT_CS_IMAADPCM - - - WAVE_FORMAT_ECHOSC3 - - - WAVE_FORMAT_ROCKWELL_ADPCM - - - WAVE_FORMAT_ROCKWELL_DIGITALK - - - WAVE_FORMAT_XEBEC - - - WAVE_FORMAT_G721_ADPCM - - - WAVE_FORMAT_G728_CELP - - - WAVE_FORMAT_MSG723 - - - WAVE_FORMAT_MPEG, Microsoft Corporation - - - WAVE_FORMAT_RT24 - - - WAVE_FORMAT_PAC - - - WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag - - - WAVE_FORMAT_LUCENT_G723 - - - WAVE_FORMAT_CIRRUS - - - WAVE_FORMAT_ESPCM - - - WAVE_FORMAT_VOXWARE - - - WAVE_FORMAT_CANOPUS_ATRAC - - - WAVE_FORMAT_G726_ADPCM - - - WAVE_FORMAT_G722_ADPCM - - - WAVE_FORMAT_DSAT_DISPLAY - - - WAVE_FORMAT_VOXWARE_BYTE_ALIGNED - - - WAVE_FORMAT_VOXWARE_AC8 - - - WAVE_FORMAT_VOXWARE_AC10 - - - WAVE_FORMAT_VOXWARE_AC16 - - - WAVE_FORMAT_VOXWARE_AC20 - - - WAVE_FORMAT_VOXWARE_RT24 - - - WAVE_FORMAT_VOXWARE_RT29 - - - WAVE_FORMAT_VOXWARE_RT29HW - - - WAVE_FORMAT_VOXWARE_VR12 - - - WAVE_FORMAT_VOXWARE_VR18 - - - WAVE_FORMAT_VOXWARE_TQ40 - - - WAVE_FORMAT_SOFTSOUND - - - WAVE_FORMAT_VOXWARE_TQ60 - - - WAVE_FORMAT_MSRT24 - - - WAVE_FORMAT_G729A - - - WAVE_FORMAT_MVI_MVI2 - - - WAVE_FORMAT_DF_G726 - - - WAVE_FORMAT_DF_GSM610 - - - WAVE_FORMAT_ISIAUDIO - - - WAVE_FORMAT_ONLIVE - - - WAVE_FORMAT_SBC24 - - - WAVE_FORMAT_DOLBY_AC3_SPDIF - - - WAVE_FORMAT_MEDIASONIC_G723 - - - WAVE_FORMAT_PROSODY_8KBPS - - - WAVE_FORMAT_ZYXEL_ADPCM - - - WAVE_FORMAT_PHILIPS_LPCBB - - - WAVE_FORMAT_PACKED - - - WAVE_FORMAT_MALDEN_PHONYTALK - - - WAVE_FORMAT_GSM - - - WAVE_FORMAT_G729 - - - WAVE_FORMAT_G723 - - - WAVE_FORMAT_ACELP - - - - WAVE_FORMAT_RAW_AAC1 - - - - WAVE_FORMAT_RHETOREX_ADPCM - - - WAVE_FORMAT_IRAT - - - WAVE_FORMAT_VIVO_G723 - - - WAVE_FORMAT_VIVO_SIREN - - - WAVE_FORMAT_DIGITAL_G723 - - - WAVE_FORMAT_SANYO_LD_ADPCM - - - WAVE_FORMAT_SIPROLAB_ACEPLNET - - - WAVE_FORMAT_SIPROLAB_ACELP4800 - - - WAVE_FORMAT_SIPROLAB_ACELP8V3 - - - WAVE_FORMAT_SIPROLAB_G729 - - - WAVE_FORMAT_SIPROLAB_G729A - - - WAVE_FORMAT_SIPROLAB_KELVIN - - - WAVE_FORMAT_G726ADPCM - - - WAVE_FORMAT_QUALCOMM_PUREVOICE - - - WAVE_FORMAT_QUALCOMM_HALFRATE - - - WAVE_FORMAT_TUBGSM - - - WAVE_FORMAT_MSAUDIO1 - - - - Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation - - - - - Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation - - - - - Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS - - - - - Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) - - - - WAVE_FORMAT_UNISYS_NAP_ADPCM - - - WAVE_FORMAT_UNISYS_NAP_ULAW - - - WAVE_FORMAT_UNISYS_NAP_ALAW - - - WAVE_FORMAT_UNISYS_NAP_16K - - - WAVE_FORMAT_CREATIVE_ADPCM - - - WAVE_FORMAT_CREATIVE_FASTSPEECH8 - - - WAVE_FORMAT_CREATIVE_FASTSPEECH10 - - - WAVE_FORMAT_UHER_ADPCM - - - WAVE_FORMAT_QUARTERDECK - - - WAVE_FORMAT_ILINK_VC - - - WAVE_FORMAT_RAW_SPORT - - - WAVE_FORMAT_ESST_AC3 - - - WAVE_FORMAT_IPI_HSX - - - WAVE_FORMAT_IPI_RPELP - - - WAVE_FORMAT_CS2 - - - WAVE_FORMAT_SONY_SCX - - - WAVE_FORMAT_FM_TOWNS_SND - - - WAVE_FORMAT_BTV_DIGITAL - - - WAVE_FORMAT_QDESIGN_MUSIC - - - WAVE_FORMAT_VME_VMPCM - - - WAVE_FORMAT_TPC - - - WAVE_FORMAT_OLIGSM - - - WAVE_FORMAT_OLIADPCM - - - WAVE_FORMAT_OLICELP - - - WAVE_FORMAT_OLISBC - - - WAVE_FORMAT_OLIOPR - - - WAVE_FORMAT_LH_CODEC - - - WAVE_FORMAT_NORRIS - - - WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS - - - - Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx - - - MPEG_RAW_AAC - Source wmCodec.h - - - - MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. - See . - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral SBR or PS tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - - - NOKIA_MPEG_ADTS_AAC - Source wmCodec.h - - - NOKIA_MPEG_RAW_AAC - Source wmCodec.h - - - VODAFONE_MPEG_ADTS_AAC - Source wmCodec.h - - - VODAFONE_MPEG_RAW_AAC - Source wmCodec.h - - - - High-Efficiency Advanced Audio Coding (HE-AAC) stream. - The format block is an HEAACWAVEFORMAT structure. See . - - - - WAVE_FORMAT_DVM - - - WAVE_FORMAT_VORBIS1 "Og" Original stream compatible - - - WAVE_FORMAT_VORBIS2 "Pg" Have independent header - - - WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header - - - WAVE_FORMAT_VORBIS1P "og" Original stream compatible - - - WAVE_FORMAT_VORBIS2P "pg" Have independent headere - - - WAVE_FORMAT_VORBIS3P "qg" Have no codebook header - - - - Raw AAC1 - - - - - Windows Media Audio Voice (WMA Voice) - - - - Extensible - - - WAVE_FORMAT_DEVELOPMENT - - - - FLAC - - - - - Converts a -value to a -value. - - The -value to convert to the equivalent -value. - The which belongs to the specified . - - - - Converts a value to a -value. - - The to convert to the equivalent -value. - The -value which belongs to the specified . - - - - The Major Type for Audio media types. - - - - - Channelmask used by . For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/dd757714(v=vs.85).aspx - - - - - Front left speaker. - - - - - Front right speaker. - - - - - Front center speaker. - - - - - Low frequency speaker. - - - - - Back left speaker. - - - - - Back right speaker. - - - - - Front left of center speaker. - - - - - Front right of center speaker. - - - - - Back center speaker. - - - - - Side left speaker. - - - - - Side right speaker. - - - - - Top center speaker. - - - - - Top front left speaker. - - - - - Top front center speaker. - - - - - Top front right speaker. - - - - - Top back left speaker. - - - - - Top back center speaker. - - - - - Top back right speaker. - - - - - Defines common channelmasks. - - - - - Mono. - - - - - Stereo. - - - - - 5.1 surround with rear speakers. - - - - - 5.1 surround with side speakers. - - - - - 7.1 surround. - - - - - Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream. - is the default setting. - For more information, see . - - - - - None/Invalid - - - - - AACProfile_L2_0x29 - Default value - - - - - AACProfile_L4_0x2A - - - - - AACProfile_L5_0x2B - - - - - HighEfficiencyAACProfile_L2_0x2C - - - - - HighEfficiencyAACProfile_L3_0x2D - - - - - HighEfficiencyAACProfile_L4_0x2E - - - - - HighEfficiencyAACProfile_L5_0x2F - - - - - ReservedForIsoUse_0x30 - - - - - ReservedForIsoUse_0x31 - - - - - ReservedForIsoUse_0x32 - - - - - ReservedForIsoUse_0x33 - - - - - Provides an encoder for encoding raw waveform-audio data to the AAC (Advanced Audio Codec) format. - - - - - Initializes a new instance of the class. - - of the audio data which gets encoded. - which should be used to save the encoded data in. - - - - Initializes a new instance of the class. - - of the audio data which gets encoded. - which should be used to save the encoded data in. - Default samplerate. Use 192000 as the default value. - Guid of the container type. Use as the default container. - - - - Gets or sets the audio profile and level of an Advanced Audio Coding (AAC) stream. - - - This attribute contains the value of the audioProfileLevelIndication field, as defined by ISO/IEC 14496-3. - - - - - Mediafoundation AAC decoder. - - - - - Gets a value which indicates whether the Mediafoundation AAC decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides AAC data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains AAC data. - - - - Decodes an aiff-chunk and provides its stored data. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - The chunk identifier. - - binaryReader - or - chunkId - - - - - Gets the underlying binary reader. - - Care endianness. - - - - Gets the ChunkId of the . The is used to determine the type of the - . - - - - - Gets the size of the in bytes. The and the - (4 bytes each) are not included. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides all s of a aiff stream. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - - FORM header not found. - or - Invalid Formtype. - - - - - Gets the form type. - - - Either 'AIFF' or 'AIFC'. - - - - - Gets all found of the . - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Represents errors that occur when decoding or encoding Aiff-streams/files. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The that caused the . - - - - Initializes a new instance of the class. - - - The that holds the serialized object - data about the exception being thrown. - - - The that contains contextual - information about the source or destination. - - - - - Decodes a aiff stream/file. - - - - - Initializes a new instance of the class for the specified . - - The complete file path to be decoded. - - No COMM Chunk found. - or - No SSND Chunk found. - or - Format not supported. - - - - - Initializes a new instance of the class for the specified . - - The stream to be decoded. - stream - - Stream is not readable.;stream - or - Stream is not seekable.;stream - - - No COMM Chunk found. - or - No SSND Chunk found. - or - Format not supported. - - - - - Gets the found s of the aiff stream/file. - - - - - Reads a sequence of elements from the and advances the position within the stream by - the number of elements read. - - - An array of elements. When this method returns, the contains the - specified array of elements with the values between and ( - + - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - - The total number of elements read into the buffer. - - buffer - - offset - or - count - - The sum of offset and count is larger than the buffer length. - Unexpected error. Not supported bps. - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position in bytes. - - The value is less than zero or greater than . - - - - Gets the length of the audio data in bytes. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources. - - - true to release both managed and unmanaged resources; false to release only - unmanaged resources. - - - - - Finalizes an instance of the class. - - - - - Provides the format of the encoded audio data of a AIFF-file. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - Compression type not supported. - - - - Gets the number of channels. - - - - - Gets the total number of sample frames. - - - To get the total number of samples multiply by - . - - - - - Gets the number of bits per sample. - - - - - Gets the sample rate in Hz. - - - - - Gets the compression type. - - All compression types except PCM are currently not supported. - - - - Gets the wave format. - - The wave format. - - This method does not take care about multi channel formats. It won't setup a channel mask. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides the format version of the aifc file. - - - - - Defines Aiff-Versions. - - - - - Version 1. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - Invalid AIFF-C Version. - - - - Gets the version of the aifc file. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides the encoded audio data of an aiff stream. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - - - - Gets the offset. The offset determines where the first sample frame in the starts. - - Offset in bytes. - - - - Gets the block size. It specifies the size in bytes of the blocks that sound data is aligned to. - - - - - Gets the zero based position in the stream, at which the encoded audio data starts. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Represents an entry of the class which provides information about a codec. - - - - - Gets the which initializes a codec decoder based on a . - - - - - Gets all with the codec associated file extensions. - - - - - Initializes a new instance of the class. - - Delegate which initializes a codec decoder based on a . - All which the codec associated file extensions. - - - - Provides data for all events which notify the client that a connection got established. For example the event. - - - - - Gets the uri of the connection. - - - - - Gets a value indicating whether the connection got established successfully or not. true if the connection got established successfully, otherwise false. - - - - - Initializes a new instance of the class. - - The uri of the connection. - A value indicating whether the connection got established successfully or not. true if the connection got established successfully, otherwise false. - - - - Mediafoundation DDP decoder. - - - - - Gets a value which indicates whether the Mediafoundation DDP decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides DDP data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains DDP data. - - - - Helps to choose the right decoder for different codecs. - - - - - Gets the default singleton instance of the class. - - - - - Gets the file filter in English. This filter can be used e.g. in combination with an OpenFileDialog. - - - - - Registers a new codec. - - - The key which gets used internally to save the in a - . This is typically the associated file extension. For example: the mp3 codec - uses the string "mp3" as its key. - - which provides information about the codec. - - - - Returns a fully initialized instance which is able to decode the specified file. If the - specified file can not be decoded, this method throws an . - - Filename of the specified file. - Fully initialized instance which is able to decode the specified file. - The codec of the specified file is not supported. - - - - Returns a fully initialized instance which is able to decode the audio source behind the - specified . - If the specified audio source can not be decoded, this method throws an . - - Uri which points to an audio source. - Fully initialized instance which is able to decode the specified audio source. - The codec of the specified audio source is not supported. - - - - Returns all the common file extensions of all supported codecs. Note that some of these file extensions belong to - more than one codec. - That means that it can be possible that some files with the file extension abc can be decoded but other a few files - with the file extension abc can't be decoded. - - Supported file extensions. - - - - Defines the channel assignments. - - - - - Independent assignment. - - - - - Left/side stereo. Channel 0 becomes the left channel while channel 1 becomes the side channel. - - - - - Right/side stereo. Channel 0 becomes the right channel while channel 1 becomes the side channel. - - - - - Mid/side stereo. Channel 0 becomes the mid channel while channel 1 becomes the side channel. - - - - - FLAC Exception. - - - - - Gets the layer of the flac stream the exception got thrown. - - Used for debugging purposes. - - - - Initializes a new instance of the class. - - A message which describes the error. - The layer of the flac stream the exception got thrown. - - - - Initializes a new instance of the class. - - The InnerException which caused the error. - The layer.The layer of the flac stream the exception got thrown. - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - When overridden in a derived class, sets the with information about the exception. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - - - - - - Represents a frame inside of an Flac-Stream. - - - - - Gets the header of the flac frame. - - - - - Gets the CRC16-checksum. - - - - - Gets a value indicating whether the decoder has encountered an error with this frame. - - - true if this frame contains an error; otherwise, false. - - - - - Creates a new instance of the class based on the specified . - - The stream which contains the flac frame. - A new instance of the class. - - - - Creates a new instance of the class based on the specified and some basic stream information. - - The stream which contains the flac frame. - Some basic information about the flac stream. - A new instance of the class. - - - - Tries to read the next flac frame inside of the specified stream and returns a value which indicates whether the next flac frame could be successfully read. - - True if the next flac frame could be successfully read; false if not. - - - - Gets the raw pcm data of the flac frame. - - The buffer which should be used to store the data in. This value can be null. - The number of read bytes. - - - - Disposes the and releases all associated resources. - - - - - Finalizes an instance of the class. - - - - - Provides a decoder for decoding flac (Free Lostless Audio Codec) data. - - - - - Gets a list with all found metadata fields. - - - - - Gets the output of the decoder. - - - - - Gets a value which indicates whether the seeking is supported. True means that seeking is supported; False means - that seeking is not supported. - - - - - Initializes a new instance of the class. - - Filename which of a flac file which should be decoded. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - Scan mode which defines how to scan the flac data for frames. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - Scan mode which defines how to scan the flac data for frames. - - Callback which gets called when the pre scan processes finished. Should be used if the - argument is set the . - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Disposes the instance and disposes the underlying stream. - - - - - Disposes the instance and disposes the underlying stream. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Represents the header of a . - - - - - Gets number of samples, the frame contains. - - - The number of samples, the frame contains. - - - - - Gets the sample rate in Hz. - - - The sample rate in Hz. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the channel assignment. - - - The channel assignment. - - - - - Gets the bits per sample. - - - The bits per sample. - - - - - Gets a value which indicates whether the frame provides the or the . - - - A value which indicates whether the frame provides the or the . - - - - - Gets the frame's starting sample number. - - - The frame's starting sample number. - - Only available if the is set to . - - - - Gets the frame's number. - - - The frame's number. - - Only available if the is set to . - - - - Gets the 8-bit crc checksum of the frame header. - - - The 8-bit crc checksum of the frame header. - - - - - Gets a value indicating whether this instance has error. - - - true if this instance has error; otherwise, false. - - - - - Gets the stream position. - - - The stream position. - - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - A value which indicates whether the crc8 checksum of the should be calculated. - - - - Initializes a new instance of the class. - - The raw byte-data which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - A value which indicates whether the crc8 checksum of the should be calculated. - - - - Indicates whether the format of the current is equal to the format of another . - - A which provides the format to compare with the format of the current . - true if the format of the current is equal to the format of the . - - - - Provides some basic information about a flac frame. This structure is typically used for implementing a seeking algorithm. - - - - - Gets the header of the flac frame. - - - - - Gets a value which indicates whether the described frame is the first frame of the flac stream. True means that the described frame is the first frame of the flac stream. False means that the described frame is not the first frame of the flac stream. - - - - - Gets the offset in bytes at which the frame starts in the flac stream (including the header of the frame). - - - - - Gets the number samples which are contained by other frames before this frame occurs. - - - - - Splits a flac file into a few basic layers and defines them. Mainly used for debugging purposes. - - - - - Everything which is not part of a flac frame. - - For example the "fLaC" sync code. - - - - Everything metadata related. - - - - - Everything which is part of a frame but not part of its subframes. - - - - - Everything subframe related. - - - - - Defines the blocking strategy of the a flac frame. - - - - - The of flac frames is variable. - - - - - Each flac frame uses the same . - - - - - Provides data for a FlacPreScan. - - - - - Gets the a list of found frames by the scan. - - - - - Initializes a new instance of the class. - - Found frames. - - - - Defines how to scan a flac stream. - - - - - Don't scan the flac stream. This will cause a stream to be not seekable. - - - - - Scan synchronously. - - - - - Scan async. - - - Don't use the stream while scan is running because the stream position - will change while scanning. If you playback the stream, it will cause an error! - - - - - Default value. - - - - - Represents a flac metadata block. - - - - - Reads and returns a single from the specified . - - The stream which contains the . - Returns the read . - - - - Reads all from the specified . - - The stream which contains the . - All . - - - - Skips all of the specified . - - The stream which contains the . - - - - Initializes a new instance of the class. - - The type of the metadata. - A value which indicates whether this is the last block inside of the stream. true means that this is the last block inside of the stream. - The length of block inside of the stream in bytes. Does not include the metadata header. - - - - Gets the type of the . - - - - - Gets a value indicating whether this instance is the last block. - - - - - Gets the length of the block inside of the stream in bytes. - - The length does not include the metadata header. - - - - Represents a flac seektable. - - - - - Initializes a new instance of the class. - - The stream which contains the seektable. - The length of the seektable inside of the stream in bytes. Does not include the metadata header. - A value which indicates whether this is the last block inside of the stream. true means that this is the last block inside of the stream. - - - - Gets the number of entries, the seektable offers. - - - - - Gets the seek points. - - - - - Gets the at the specified . - - - The . - - The index. - The at the specified . - - - - Represents the streaminfo metadata flac which provides general information about the flac stream. - - - - - Initializes a new instance of the class. - - The stream which contains the . - The length of the inside of the stream in bytes. Does not include the metadata header. - - A value which indicates whether this is the last block inside of - the stream. true means that this is the last block inside of the stream. - - - - - Gets the minimum size of the block in samples. - - - The minimum size of the block in samples. - - - - - Gets the maximum size of the block in samples. - - - The maximum size of the block in samples. - - - - - Gets the maximum size of the frame in bytes. - - - The maximum size of the frame in bytes. - - - - - Gets the minimum size of the frame in bytes. - - - The minimum size of the frame in bytes. - - - - - Gets the sample rate in Hz. - - - The sample rate. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the number of bits per sample. - - - The number of bits per sample. - - - - - Gets the total number of samples inside of the stream. - - - - - Gets MD5 signature of the unencoded audio data. - - - The MD5 signature of the unencoded audio data. - - - - - This method is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Defines flac metadata types. - - - - - Streaminfo metadata. - - - - - Padding metadata. - - - - - Application metadata. - - - - - Seektable metadata. - - - - - Vorbis comment metadata. - - - - - Cue sheet metadata. - - - - - Picture metadata. - - - - - Undefined metadata. Used for custom metadata fields. - - - - - Represents a single flac seek point. - - - - - The sample number for a placeholder point. - - - - - Gets the sample number of the first sample in the target frame, or for a placeholder point. - - - The sample number of the first sample in the target frame. - - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Gets the offset (in bytes) from the first byte of the first frame header to the first byte of the target frame's header. - - - The offset (in bytes) from the first byte of the first frame header to the first byte of the target frame's header. - "/> - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Gets the number of samples in the target frame. - - - The number of samples in the target frame. - - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The of the target frame. - The of the target frame. - The of the target frame. - - - - Copied from http://stackoverflow.com/questions/8970101/whats-the-quickest-way-to-compute-log2-of-an-integer-in-c 14.01.2015 - - - - - This method is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Delegate which initializes a new decoder for a specific codec based on a . - - which contains the data that should be decoded by the codec decoder. - Decoder for a specific coded based on a . - - - - Mediafoundation MP1 decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP1 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP1 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP1 data. - - - - Mediafoundation MP2 decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP2 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP2 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP2 data. - - - - DirectX Media Object MP3 Decoder wrapper. - - - - - Initializes a new instance of the class. - - File which contains raw MP3 data. - - - - Initializes a new instance of the class. - - Stream which contains raw MP3 data. - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Reads a sequence of bytes from the stream. - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Returns a to decode the mp3 data. - - Format of the mp3 data to decode. - Output format. - to decode the mp3 data. - - - - Returns the input format. - - Input format. - - - - Returns the output format. - - Output format. - - - - Gets raw mp3 data to decode. - - Byte array which will hold the raw mp3 data to decode. - Number of requested bytes. - Total amount of read bytes. - - - - Disposes the . - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Channelmode of MP3 data. For more information see the mp3 specification. - - - - - Stereo (left and right). - - - - - Joint stereo. - - - - - Dual channel. - - - - - Mono (only one channel). - - - - - The class describes an MPEG Audio Layer-3 (MP3) audio format. - - - - - Set this member to . - - - - - Indicates whether padding is used to adjust the average bitrate to the sampling rate. - - - - - Block size in bytes. This value equals the frame length in bytes x . For MP3 audio, the frame length is calculated as follows: 144 x (bitrate / sample rate) + padding. - - - - - Number of audio frames per block. - - - - - Encoder delay in samples. If you do not know this value, set this structure member to zero. - - - - - MPEGLAYER3_WFX_EXTRA_BYTES - - - - - Initializes a new instance of the class. - - Sample rate in Hz. - Number of channels. - Block size in bytes. This value equals the frame length in bytes x . For MP3 audio, the frame length is calculated as follows: 144 x (bitrate / sample rate) + padding. - Bitrate. - - - - Updates the - and the -property. - - - - - MP3 Format id. - - - - - None - - - - - Default value. Equals the MPEGLAYER3_ID_MPEG constant. - - - - - Constant frame size. - - - - - Represents an MP3 Frame. - - - - - Maximum length of one single in bytes. - - - - - Creates a new instance of the class based on a . - - which provides MP3 data. - A new instance of the class based on the specified . - - - - Creates a new instance of the class based on a . - - which provides MP3 data. - Byte array which recieves the content of the . - A new instance of the class based on the specified . - - - - Reads data from the . - - Buffer which will receive the read data. - Zero-based index at which to begin storing data within the . - The number of read bytes. - - - - Gets the Mpeg Version. - - - - - Gets the Mpeg Layer. - - - - - Gets the bit rate. - - - - - Gets the sample rate. - - - - - Gets the channel mode. - - - - - Gets the number of channels. - - - - - Gets the number of samples - - - - - Gets the length of the frame. - - - - - Gets the channel extension. - - - - - Gets a value which indicates whether the copyright flag is set (true means that the copyright flag is set). - - - - - Gets a value which indicates whether the original flag is set (true means that the original flag is set). - - - - - Gets the emphasis. - - - - - Gets the padding. - - - - - Gets a value which indicates whether the crc flag is set (true means that the crc flag is set). - - - - - MP3 Mediafoundation Decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP3 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP3 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP3 data. - - - - Indicates whether padding is used to adjust the average bitrate to the sampling rate. Use one of the following values: - - - - - Insert padding as needed to achieve the stated average bitrate. - - - - - Always insert padding. The average bit rate may be higher than stated. - - - - - Never insert padding. The average bit rate may be lower than stated. - - - - - An implementation for streaming mp3 streams like mp3 radio stations, etc. - - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - If set to true, the connection will be established asynchronously and the constructor will return immediately. - Doing that, requires the usage of the event which will notify the caller when the - is ready for use. If set to false the constructor will block the current thread as long as it takes to establish the connection. - - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - If set to true, the connection will be established asynchronously and the constructor will return immediately. - Doing that, requires the usage of the event which will notify the caller when the - is ready for use. If set to false the constructor will block the current thread as long as it takes to establish the connection. - - - - - Gets the stream address. - - - - - Gets the number buffered bytes. - - - - - Gets the size of the internal buffer in bytes. - - - - - Gets a value indicating whether the supports seeking. - - This property will always be set to false. - - - - Gets the of the decoded mp3 stream. - If the internal decoder got not initialized yet, the value of the property is set to null. - - - - - Reads a sequence of elements from the and advances the position within the stream by the number of elements read. - - An array of elements. When this method returns, the contains the specified array of elements with the values between and ( + - 1) replaced by the elements read from the current source. - The zero-based offset in the at which to begin storing the data read from the current stream. - The maximum number of elements to read from the current source. - - The total number of elements read into the buffer. - - Mp3WebStream - - - - Gets or sets the current position. This property is not supported by the class. - - The Mp3WebStream class does not support seeking. - - - - Gets the length of the waveform-audio data. The value of this property will always be set to zero. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Occurs when connection got established and the async argument of the constructor was set to true. - - - - - Initializes the connection. - - true if the connection was initialized successfully; otherwise false. - - Could not create HttpWebRequest - or - Could not create WebResponse - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Defines all known Mpeg-layers. - - - - - Reserved by ISO. - - - - - MPEG Layer 3 - - - - - MPEG Layer 2 - - - - - MPEG Layer 1 - - - - - Defines all known Mpeg Versions. - - - - - Version 2.5 - - - - - Reserved by ISO - - - - - Version 2.0 - - - - - Version 1.0 - - - - - Defines a Xing-Header. - - - - - Gets the header flags of the . - - - - - Gets the of a . If the does not has an the return value will be null. - - which should get checked whether it contains a . - of the specified or null. - - - - Defines the header flags of a xing header. - - - - - Frames field is present - - - - - Bytes field is present. - - - - - TOC field is present. - - - - - Quality indicator field is present. - - - - - Mediafoundation WMA decoder. - - - - - Gets a value which indicates whether the Mediafoundation WMA, WMA-Speech and WMA-Professional decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA-Speech decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA-Professional decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides WMA data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains WMA data. - - - - Implementation of the interface which reads raw data from a based - on a specified . - - - - - Initializes a new instance of the class. - - which contains raw waveform-audio data. - The format of the waveform-audio data within the . - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the format of the raw data. - - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Disposes the and the underlying . - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Represents the of a wave file. - - - - - Chunk ID of the . - - - - - Initializes a new instance of the class. - - which contains the data chunk. - - - - Initializes a new instance of the class. - - which should be used to read the data chunk. - - - - Gets the zero-based position inside of the stream at which the audio data starts. - - - - - Represents the of a wave file. - - - - - Chunk ID of the . - - - - - Initializes a new instance of the class. - - which contains the fmt chunk. - - - - Initializes a new instance of the class. - - which should be used to read the fmt chunk. - - - - Gets the specified by the . - - - - - Represents a wave file chunk. For more information see - . - - - - - Initializes a new instance of the class. - - which contains the wave file chunk. - - - - Initializes a new instance of the class. - - which should be used to read the wave file chunk. - - - - Gets the unique ID of the Chunk. Each type of chunk has its own id. - - - - - Gets the data size of the chunk. - - - - - Parses the and returns a . Note that the position of the - stream has to point to a wave file chunk. - - which points to a wave file chunk. - - Instance of the class or any derived classes. It the stream does not point to a - wave file chunk the instance of the which gets return will be invalid. - - - - - Provides a decoder for reading wave files. - - - - - Initializes a new instance of the class. - - Filename which points to a wave file. - - - - Initializes a new instance of the class. - - Stream which contains wave file data. - - - - Gets a list of all found chunks. - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the wave format of the wave file. This property gets specified by the . - - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the and the underlying stream. - - - - - Disposes the and the underlying stream. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Encoder for wave files. - - - - - Signals if the object has already been disposed - - - - - Signals if the object is in a disposing state - - - - - Initializes a new instance of the class. - - Filename of the destination file. This filename should typically end with the .wav extension. - - Format of the waveform-audio data. Note that the won't convert any - data. - - - - - Initializes a new instance of the class. - - Destination stream which should be used to store the - - Format of the waveform-audio data. Note that the won't convert any - data. - - - - - Disposes the and writes down the wave header. - - - - - Writes down all audio data of the to a file. - - The filename. - The source to write down to the file. - if set to true the file will be overritten if it already exists. - The maximum number of bytes to write. Use -1 to write an infinte number of bytes. - - This method is obsolete. Use the extension instead. - - - - - Encodes a single sample. - - The sample to encode. - - - - Encodes multiple samples. - - Float array which contains the samples to encode. - Zero-based offset in the array. - Number of samples to encode. - - - - Encodes raw data in the form of a byte array. - - Byte array which contains the data to encode. - Zero-based offset in the . - Number of bytes to encode. - - - - Writes down a single byte. - - Byte to write down. - - - - Writes down a single 16 bit integer value. - - Value to write down. - - - - Writes down a single 32 bit integer value. - - Value to write down. - - - - Writes down a single 32 bit float value. - - Value to write down. - - - - Disposes the and writes down the wave header. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor of the which calls the method. - - - - - Enables a client to read input data from a capture endpoint buffer. For more information, see - . - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioCaptureClient COM object. - - - - Gets the size of the next packet in frames (the size of one frame equals the blockalign value of the waveformat). - - - - - Creates a new by calling the method of the - specified . - - - The which should be used to create the -instance - with. - - A new instance of the class. - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - A pointer variable into which the method writes the starting address of the next data - packet that is available for the client to read. - - - Variable into which the method writes the frame count (the number of audio frames - available in the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Variable into which the method writes the device position of the first audio frame in the - data packet. The device position is expressed as the number of audio frames from the start of the stream. - - - Variable into which the method writes the value of the performance counter at the time that - the audio endpoint device recorded the device position of the first audio frame in the data packet. - - HRESULT - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - Variable into which the method writes the frame count (the number of audio frames available in - the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Variable into which the method writes the device position of the first audio frame in the - data packet. The device position is expressed as the number of audio frames from the start of the stream. - - - Variable into which the method writes the value of the performance counter at the time that - the audio endpoint device recorded the device position of the first audio frame in the data packet. - - - Pointer to a variable which stores the starting address of the next data packet that is available for the - client to read. - - - Use Marshal.Copy to convert the pointer to the buffer into an array. - - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - Variable into which the method writes the frame count (the number of audio frames available in - the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Pointer to a variable which stores the starting address of the next data packet that is available for the - client to read. - - - Use Marshal.Copy to convert the pointer to the buffer into an array. - - - - - The ReleaseBuffer method releases the buffer. For more information, see . - - - The number of audio frames that the client read from the - capture buffer. This parameter must be either equal to the number of frames in the - previously acquired data packet or 0. - - HRESULT - - - - The ReleaseBuffer method releases the buffer. For more information, see . - - - The number of audio frames that the client read from the - capture buffer. This parameter must be either equal to the number of frames in the - previously acquired data packet or 0. - - - - - The GetNextPacketSize method retrieves the number of frames in the next data packet in - the capture endpoint buffer. - For more information, see . - - - Variable into which the method writes the frame count (the number of audio - frames in the next capture packet). - - HRESULT - - - - The GetNextPacketSize method retrieves the number of frames in the next data packet in - the capture endpoint buffer. - For more information, see . - - The number of the audio frames in the next capture packet. - - - - Defines flags that indicate the status of an audio endpoint buffer. - - - - - None - - - - - The data in the packet is not correlated with the previous packet's device position; - this is possibly due to a stream state transition or timing glitch. - - - - - Treat all of the data in the packet as silence and ignore the actual data values. - - - - - The time at which the device's stream position was recorded is uncertain. Thus, the - client might be unable to accurately set the time stamp for the current data packet. - - - - - The constants indicate characteristics of an audio session associated with - the stream. A client can specify these options during the initialization of the stream by through the - StreamFlags parameter of the method. - - - - - The session expires when there are no associated streams and owning session control objects holding references. - - - - - The volume control is hidden in the volume mixer user interface when the audio session is created. If the session - associated with the stream already exists before opens the stream, the volume - control is displayed in the volume mixer. - - - - - The volume control is hidden in the volume mixer user interface after the session expires. - - - - - Specifies characteristics that a client can assign to an audio stream during the initialization of the stream. - - - - - None - - - - - The audio stream will be a member of a cross-process audio session. For more information, see - . - - - - - The audio stream will operate in loopback mode. For more information, see - . - - - - - Processing of the audio buffer by the client will be event driven. For more information, see - . - - - - - The volume and mute settings for an audio session will not persist across system restarts. For more information, - see . - - - - - This constant is new in Windows 7. The sample rate of the stream is adjusted to a rate specified by an application. - For more information, see - . - - - - - The class enables a client to monitor a stream's data rate and the current position in - the stream. - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioClock COM Object. - - - - Gets the device frequency. For more information, see - . - - - - - Gets the device position. - - - - - Creates a new by calling the method of the - specified . - - - which should be used to create the -instance - with. - - A new . - - - - The GetFrequency method gets the device frequency. - - - The device frequency. For more information, see - . - - HRESULT - - - - The GetPosition method gets the current device position. - - - The device position is the offset from the start of the stream to the current position in the stream. However, the - units in which this offset is expressed are undefined—the device position value has meaning only in relation to the - . For more information, see - . - - - The value of the performance counter at the time that the audio endpoint device read the device position - () in response to the call. The method converts - the counter value to 100-nanosecond time - units before writing it to . - - HRESULT - - - - The GetCharacteristics method is reserved for future use. - - Value that indicates the characteristics of the audio clock. - HREUSLT - - - - Used to get the device position. - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioClock2 COM object. - - - - Initializes a new instance of the class. - - - An instance which should be used to query the - object. - - The argument is null. - - The COM object is not supported on the current platform. Only supported on Windows - 7/Windows Server 2008 R2 and above. - For more information, see - . - - - - - The method gets the current device position, in frames, directly from the - hardware. - - - Receives the device position, in frames. The received position is an unprocessed value - that the method obtains directly from the hardware. For more information, see - . - - - Receives the value of the performance counter at the time that the audio endpoint device read - the device position retrieved in the parameter in response to the - call. - converts the counter value to 100-nanosecond time units before writing it to - QPCPosition. - - HRESULT - - - - The method gets the current device position, in frames, directly from the - hardware. - - - Receives the device position, in frames. The received position is an unprocessed value - that the method obtains directly from the hardware. For more information, see - . - - - Receives the value of the performance counter at the time that the audio endpoint device read - the device position retrieved in the parameter in response to the - call. - converts the counter value to 100-nanosecond time units before writing it to - QPCPosition. - - - - - Represents a peak meter on an audio stream to or from an audio endpoint device. - For more information, see - . - - - - - Initializes a new instance of class. - - The native pointer. - - - - Gets the number of channels in the audio stream that are monitored by peak meters. - - - - - - - Gets the peak sample value for the given . - - - - - The peak sample value for the given . - - - - Gets the hardware-supported functions. - - - - - - - Gets the peak sample value for the channels in the audio stream. - - - - - - - Creates a new instance for the given . - - The underlying device to create the audio meter instance for. - A new instance for the given . - - - - Gets the peak sample value for the channels in the audio stream. - - - A variable into which the method writes the peak sample value for the audio stream. The peak value - is a number in the normalized range from 0.0 to 1.0. - - HRESULT - - - - Gets the peak sample value for the channels in the audio stream. - - - The peak sample value for the audio stream. The peak value is a number in the normalized range from 0.0 to - 1.0. - - - - - Gets the number of channels in the audio stream that - are monitored by peak meters. - - A variable into which the method writes the number of channels. - HRESULT - - - - Gets the number of channels in the audio stream that - are monitored by peak meters. - - The number of channels. - - - - Gets the peak sample values for all the channels in the - audio stream. - - - - The channel count. This parameter also specifies the number of elements in the - array. If the specified count does not match the number of channels in the stream, - the method returns error code . - - - An array of peak sample values. The method writes the peak values for the channels into the - array. The array contains one element for each channel in the stream. The peak values are numbers in the normalized - range from 0.0 to 1.0. The array gets allocated by the method. - - HRESULT - - - - Gets the peak sample values for all the channels in the - audio stream. - - - - The channel count. This parameter also specifies the number of elements in the returned - array. If the specified count does not match the number of channels in the stream, the method returns error code - . - - - An array of peak sample values. he array contains one element for each channel in the stream. The peak values - are numbers in the normalized range from 0.0 to 1.0. - - - - - Gets the peak sample values for all the channels in the - audio stream. - - - An array of peak sample values. he array contains one element for each channel in the stream. The peak values - are numbers in the normalized range from 0.0 to 1.0. - - - - - Queries the audio endpoint device for its - hardware-supported functions. - - - A variable into which the method writes a hardware support mask that indicates the - hardware capabilities of the audio endpoint device. - - HRESULT - - - - Queries the audio endpoint device for its - hardware-supported functions. - - A hardware support mask that indicates the hardware capabilities of the audio endpoint device. - - - - Provides data for the event. - - - - - Gets the number of audio channels in the session submix. - - - - - Gets the volume level for each audio channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume. - - - - - Gets the index of the audio channel that changed. Use this value as an index into the . - If the session submix contains n channels, the channels are numbered from 0 to n– 1. If more than one channel might have changed, the value of ChangedChannel is (DWORD)(–1). - - - - - Gets the volume of the channel specified by the . - - The zero-based index of the channel. - Volume level of the specified channelIndex in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume. - - - - Initializes a new instance of the class. - - The number of channels. - Volumes of the channels. - Number of channel volumes changed. - Userdefined event context. - - - - The class can be used by a client to get information about the audio session. - For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer to the IAudioSessionControl2 object. - - - - Gets the session identifier. - - For more information, see . - - - - Gets the identifier of the audio session instance. - - For more information, see . - - - - Gets the process identifier of the audio session. - In the case of that the session is no single-process-session (see ), the is the initial identifier of the process that created the session. - - - - - Gets a value indicating whether the session spans more than one process. If True, the session spans more than one process; If False otherwise. - - - - - Gets the process of the audio session. - In the case of that the session is no SingleProcessSession (see ), the Process is the process that created the session. - If the process that created the session is not available anymore, the value is null. - - - - - Gets a value indicating whether the session is a system sounds session. If True, the session is a system sound session; If False otherwise. - - - - - Gets the session identifier. - - - A variable which retrieves the session identifier. - HRESULT - - - - Gets the identifier of the audio session instance. - - - A variable which retrieves the identifier of a particular instance of the audio session. - HRESULT - - - - Gets the process identifier of the audio session. - - - A variable which receives the process id of the audio session. - HRESULT - - - - Indicates whether the session is a system sounds session. - - - HRESULT; S_OK = true, S_FALSE = false - - - - Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. - - A variable that enables or disables system auto-ducking. - HRESULT - - - - Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. - - A variable that enables or disables system auto-ducking. - - - - Provides data for the event. - - - - - Gets the reason that the audio session was disconnected. - - - - - Initializes a new instance of the class. - - The reason that the audio session was disconnected. - - - - Specifies reasons that a audio session was disconnected. - - For more information about WTS sessions, see the Windows SDK documentation or . - - - - The user removed the audio endpoint device. - - - - - The Windows audio service has stopped. - - - - - The stream format changed for the device that the audio session is connected to. - - - - - The user logged off the Windows Terminal Services (WTS) session that the audio session was running in. - - - - - The WTS session that the audio session was running in was disconnected. - - - - - The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. - - - - - Provides data for the event. - - - - - Gets the new display name the session. - - - - - Initializes a new instance of the class. - - Thew new display name of the session. - The event context value. - - - - The object enumerates audio sessions on an audio device. - For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer of the object. - - - - Gets the total number of audio sessions. - - - - - Gets the audio session specified by an index. - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - - - - Gets the total number of audio sessions that are open on the audio device. - - - Receives the total number of audio sessions. - HRESULT - - - - Gets the audio session specified by an audio session number. - - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - The of the specified session number. - HRESULT - - - - Gets the audio session specified by an audio session number. - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - The of the specified session number. - - - - Returns an enumerator that iterates through the audio sessions. - - - A that can be used to iterate through the audio sessions. - - - - - Returns an enumerator that iterates through the audio sessions. - - - An object that can be used to iterate through the audio sessions. - - - - - A base class for all event-args classes which specify an value. - - - - - Gets the event context value. - - - - - Initializes a new instance of the class. - - The event context value. - - - - Provides notifications of session-related events such as changes in the volume level, display name, and session state. - For more information, see . - - - - - Occurs when the display name for the session has changed. - - - - - Occurs when the display icon for the session has changed. - - - - - Occurs when the volume level or muting state of the session has changed. - - - - - Occurs when the volume level of an audio channel in the session submix has changed. - - - - - Occurs when the grouping parameter for the session has changed. - - - - - Occurs when the stream-activity state of the session has changed. - - - - - Occurs when the session has been disconnected. - - - - - Notifies the client that the display name for the session has changed. - - The new display name for the session. - The event context value. - HRESULT - - - - Notifies the client that the display icon for the session has changed. - - The path for the new display icon for the session. - The event context value. - HRESULT - - - - Notifies the client that the volume level or muting state of the audio session has changed. - - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, - where 0.0 is silence and 1.0 is full volume (no attenuation). - - The new muting state. If TRUE, muting is enabled. If FALSE, muting is disabled. - The event context value. - HRESULT - - - - Notifies the client that the volume level of an audio channel in the session submix has changed. - - The number of channels in the session submix. - An array of volume levels. Each element is a value of type float that specifies the volume level for a particular channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). The number of elements in the array is specified by the ChannelCount parameter. - The number of the channel whose volume level changed. - The event context value. - - - - - Notifies the client that the grouping parameter for the session has changed. - - The new grouping parameter for the session. This parameter points to a grouping-parameter GUID. - The event context value. - HRESULT - - - - Notifies the client that the stream-activity state of the session has changed. - - The new session state. - HRESULT - - - - Notifies the client that the audio session has been disconnected. - - The reason that the audio session was disconnected. - HRESULT - - - - Provides data for the event. - - - - - Gets the new grouping parameter for the session. - - - - - Initializes a new instance of the class. - - The new grouping parameter for the session. - The event context value. - - - - Provides data for the event. - - - - - Gets the path for the new display icon for the session. - - - - - Initializes a new instance of the class. - - The path for the new display icon for the session. - The event context value. - - - - The class enables a client to access the session controls and volume controls for both cross-process and process-specific audio sessions. - - - - - Initializes a new instance of the class. - - Native pointer to the object. - - - - Retrieves an audio session control. - - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - Specifies the status of the flags for the audio stream. - The of the specified . - HRESULT - - - - Retrieves an audio session control. - - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - Specifies the status of the flags for the audio stream. - instance. - - - - Retrieves a simple audio volume control. - - Specifies whether the request is for a cross-process session. Set to TRUE if the session is cross-process. Set to FALSE if the session is not cross-process. - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - of the audio volume control object. - HRESULT - - - - Retrieves a simple audio volume control. - - Specifies whether the request is for a cross-process session. Set to TRUE if the session is cross-process. Set to FALSE if the session is not cross-process. - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - instance. - - - - Enables an application to manage submixes for the audio device. - - - - - Occurs when the audio session has been created. - - - - - Occurs when a pending system ducking event gets fired. - - - - - Occurs when a pending system unducking event gets fired. - - - - - Creates a new instance of based on a . - - Device to use to activate the . - instance for the specified . - - - - Initializes a new instance of the class. - - The native pointer. - - - - Gets a pointer to the audio session enumerator object. - - - Retrieves a session enumerator object that the client can use to enumerate audio sessions on the audio device. - HRESULT - The client is responsible for releasing the . - - - - Gets a pointer to the audio session enumerator object. - - a session enumerator object that the client can use to enumerate audio sessions on the audio device. - The client is responsible for releasing the returned . - - - - Registers the application to receive a notification when a session is created. - - - The application's implementation of the interface. - HRESULT - - Use the class as the default implementation for the parameter. - - Note: Make sure to call the from an MTA-Thread. Also make sure to enumerate all sessions after calling this method. - - - - - Registers the application to receive a notification when a session is created. - - The application's implementation of the interface. - - Use the class as the default implementation for the parameter. - - Note: Make sure to call the from an MTA-Thread. Also make sure to enumerate all sessions after calling this method. - - - - - Deletes the registration to receive a notification when a session is created. - - - - The application's implementation of the interface. - Pass the same object that was specified to the session manager in a previous call to register for notification. - HRESULT - - - - Deletes the registration to receive a notification when a session is created. - - - The application's implementation of the interface. - Pass the same object that was specified to the session manager in a previous call to register for notification. - - - - Registers the application to receive ducking notifications. - - - A string that contains a session instance identifier. Applications that are playing a media stream and want to provide custom stream attenuation or ducking behavior, pass their own session instance identifier. - Other applications that do not want to alter their streams but want to get all the ducking notifications must pass NULL. - Instance of any object which implements the and which should receive duck notifications. - HRESULT - - - - Registers the application to receive ducking notifications. - - A string that contains a session instance identifier. Applications that are playing a media stream and want to provide custom stream attenuation or ducking behavior, pass their own session instance identifier. - Other applications that do not want to alter their streams but want to get all the ducking notifications must pass NULL. - Instance of any object which implements the and which should receive duck notifications. - - - - Deletes the registration to receive ducking notifications. - - - - The interface that is implemented by the application. Pass the same interface pointer that was specified to the session manager in a previous call to the method. - - HRESULT - - - - Deletes the registration to receive ducking notifications. - - - The interface that is implemented by the application. Pass the same interface pointer that was specified to the session manager in a previous call to the method. - - - - - Releases the COM object and unregisters all session notifications and all volume duck notifications. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - The object provides notification when an audio session is created. - For more information, . - - - - - Occurs when the audio session has been created. - - - - - Notifies the registered processes that the audio session has been created. - - Pointer to the object of the audio session that was created. - HRESULT - - - - Provides data for the event. - - - - - Gets the new volume level for the audio session. - - The value is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - - - - Gets the new muting state. - - If true, muting is enabled. If false, muting is disabled. - - - - Initializes a new instance of the class. - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - The muting state. If true, muting is enabled. If false, muting is disabled. - The event context value. - - - - Defines constants that indicate the current state of an audio session. - - - - - The session has no active audio streams. - - - - - The session has active audio streams. - - - - - The session is dormant. - - - - - Provides data for the event. - - - - - Gets the new session state. - - - - - Initializes a new instance of the class. - - - - - - The default implementation of the interface. - - - - - Occurs when a pending system ducking event gets fired. - - - - - Occurs when a pending system unducking event gets fired. - - - - - Sends a notification about a pending system ducking event. - - A string containing the session instance identifier of the communications session that raises the the auto-ducking event. - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - HRESULT - - - - Sends a notification about a pending system unducking event. - - A string containing the session instance identifier of the terminating communications session that intiated the ducking. - The number of active communications sessions. If there are n sessions, they are numbered from 0 to n-1. - - - - - Provides data for the event. - - - - - Gets the data-flow direction of the endpoint device. - - - - - Gets the device role of the audio endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - - - - Provides basic data for all device notification events. - - - - - Gets the device id that identifies the audio endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - - - - Tries the get device associated with the . - - The device associated with the . If the return value is false, the will be null. - true if the associated device be successfully retrieved; false otherwise. - - - - Provides data for the event. - - - - - Gets the that specifies the changed property. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - - - - Provides data for the event. - - - - - Gets the new state of the endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The new state of the endpoint device. - - - - The class enables a client to configure the control parameters for an audio session and to monitor events in the session. - For more information, see . - - - - - Occurs when the display name for the session has changed. - - - - - Occurs when the display icon for the session has changed. - - - - - Occurs when the volume level or muting state of the session has changed. - - - - - Occurs when the volume level of an audio channel in the session submix has changed. - - - - - Occurs when the grouping parameter for the session has changed. - - - - - Occurs when the stream-activity state of the session has changed. - - - - - Occurs when the session has been disconnected. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - The audio client to create a instance for. - audioClient - - - - Gets the current state of the audio session. - - - - - Gets or sets the display name for the audio session. - - - - - Gets or sets the path for the display icon for the audio session. - - - - - Gets or sets the grouping parameter of the audio session. - - - - - Retrieves the current state of the audio session. - - - A variable into which the method writes the current session state. - HRESULT - - - - Retrieves the display name for the audio session. - - - A variable into which the method writes the display name of the session. - HRESULT - - - - Assigns a display name to the current session. - - - The new display name of the audio session. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the path for the display icon for the audio session. - - - A variable into which the method writes the path and file name of an .ico, .dll, or .exe file that contains the icon. - HRESULT - - - - Assigns a display icon to the current session. - - - A string that specifies the path and file name of an .ico, .dll, or .exe file that contains the icon. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the grouping parameter of the audio session. - - - A variable into which the method writes the grouping parameter. - HRESULT - For some more information about grouping parameters, see . - - - - Assigns a session to a grouping of sessions. - - - - - HRESULT - For some more information about grouping parameters, see . - - - - Registers the client to receive notifications of session events, including changes in the stream state. - - - An instance of the object which receives the notifications. - HRESULT - - - - Registers the client to receive notifications of session events, including changes in the stream state. - - An instance of the object which receives the notifications. - - - - Deletes a previous registration by the client to receive notifications. - - The instance of the object which got registered previously by the method. - HRESULT - - - - Deletes a previous registration by the client to receive notifications. - - The instance of the object which got registered previously by the method. - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - The interface provides notifications of session-related events such as changes in the volume level, display name, and session state. - - - - - Notifies the client that the display name for the session has changed. - - The new display name for the session. - The event context value. - HRESULT - - - - Notifies the client that the display icon for the session has changed. - - The path for the new display icon for the session. - The event context value. - HRESULT - - - - Notifies the client that the volume level or muting state of the audio session has changed. - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - The new muting state. If TRUE, muting is enabled. If FALSE, muting is disabled. - The event context value. - HRESULT - - - - Notifies the client that the volume level of an audio channel in the session submix has changed. - - The number of channels in the session submix. - An array of volume levels. Each element is a value of type float that specifies the volume level for a particular channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). The number of elements in the array is specified by the ChannelCount parameter. - The number of the channel whose volume level changed. - The event context value. - HRESULT - - - - Notifies the client that the grouping parameter for the session has changed. - - The new grouping parameter for the session. This parameter points to a grouping-parameter GUID. - The event context value. - HRESULT - - - - Notifies the client that the stream-activity state of the session has changed. - - The new session state. - HRESULT - - - - Notifies the client that the audio session has been disconnected. - - The reason that the audio session was disconnected. - HRESULT - - - - The interface provides notification when an audio session is created. - - - - - Notifies the registered processes that the audio session has been created. - - Pointer to the object of the audio session that was created. - HRESULT - - - - The interface is used to by the system to send notifications about stream attenuation changes. - - For more information, see . - - - - Sends a notification about a pending system ducking event. - - A string containing the session instance identifier of the communications session that raises the the auto-ducking event. - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - HRESULT - - - - Sends a notification about a pending system unducking event. - - A string containing the session instance identifier of the terminating communications session that intiated the ducking. - The number of active communications sessions. If there are n sessions, they are numbered from 0 to n-1. - HRESULT - - - - The interface provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device. - - - - - The OnDeviceStateChanged method indicates that the state of an audio endpoint device has - changed. - - The device id that identifies the audio endpoint device. - Specifies the new state of the endpoint device. - HRESULT - - - - The OnDeviceAdded method indicates that a new audio endpoint device has been added. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDeviceRemoved method indicates that an audio endpoint device has been removed. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDefaultDeviceChanged method notifies the client that the default audio endpoint - device for a particular device role has changed. - - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnPropertyValueChanged method indicates that the value of a property belonging to an - audio endpoint device has changed. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - HRESULT - - - - Represents an audio endpoint device - (see also ). - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - Obtain an instance of the by using the constructor. - - - - - Initializes a new instance of the class based on an - by calling its method. - - The used to obtain an instance. - device - - - - Gets the data flow of the associated device. - - - The data flow of the associated device. - - - - - Indicates whether the endpoint is associated with a rendering device or a capture device. - - A variable into which the method writes the data-flow direction of the endpoint device. - HRESULT - Use the property instead. - - - - Provides data for the event. - - - - - Gets the object of the audio session that was created. - - - - - Initializes a new instance of the class. - - The object of the audio session that was created. - must not be null. - - - - Provides data for the and the event. - For more information, see . - - - - - A string containing the session instance identifier of the communications session that raises the auto-ducking event. - - - - - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - - - - - Initializes a new instance of the class. - - The session instance identifier of the communications session that raises the the auto-ducking event. - number of active communications sessions. - sessionID is null or empty. - countCommunicationSessions is less than zero. - - - - The interface represents the volume controls on the audio stream to or from an - audio endpoint device. - For more information, see - . - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Gets all registered . - - - - - Gets the number of available channels. - - - - - - Gets or sets the MasterVolumeLevel in decibel. - - - - - - - Gets or sets the MasterVolumeLevel as a normalized value in the range from 0.0 to 1.0. - - - - - - - Gets or sets the muting state of the audio stream that enters or leaves the - audio endpoint device. True indicates that the audio endpoint devie is muted. False indicates that the audio endpoint device is not muted. - - - - - - - Gets all available channels. - - - - - Returns a new instance based on a instance. - - instance to create the for. - A new instance based on the specified . - - - - Registers a client's notification callback - interface. - - The callback instance that the client is registering for notification callbacks. - HRESULT - - When notifications are no longer needed, the client can call the - method to terminate the - notifications. - - - - - Registers a client's notification callback - interface. - - The callback instance that the client is registering for notification callbacks. - - When notifications are no longer needed, the client can call the - method to terminate the - notifications. - - - - - Deletes the registration of a client's - notification callback interface that the client registered in a previous call to the - method. - - - The callback instance to unregister. The client passed this same object to the endpoint volume - object in the previous call to the method. - - HRESULT - - - - Deletes the registration of a client's - notification callback interface that the client registered in a previous call to the - method. - - - The callback instance to unregister. The client passed this same object to the endpoint volume - object in the previous call to the method. - - - - - Gets the number of channels in the audio stream that enters - or leaves the audio endpoint device. - - Retrieves the number of channels in the audio stream. - HRESULT - - - - Gets the number of channels in the audio stream that enters - or leaves the audio endpoint device. - - The number of channels in the audio stream. - - - - Sets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - The new master volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - The new master volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - - - Sets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - The new master volume level. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - The new master volume level. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - - - Gets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - A - float variable into which the method writes the volume level in decibels. To get the - range of volume levels obtained from this method, call the - method. - - HRESULT - - - - Gets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - Volume level in decibels. To get the range of volume levels obtained from this - method, call the method. - - - - - Gets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - A float - variable into which the method writes the volume level. The level is expressed as a - normalized value in the range from 0.0 to 1.0. - - HRESULT - - - - Gets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - Volume level. The level is expressed as a normalized value in the range from - 0.0 to 1.0. - - - - - Sets the volume level, in decibels, of the specified - channel of the audio stream that enters or leaves the audio endpoint device. - - - The new volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Sets the volume level, in decibels, of the specified - channel of the audio stream that enters or leaves the audio endpoint device. - - - The new volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - - - Sets the normalized, audio-tapered volume level - of the specified channel in the audio stream that enters or leaves the audio endpoint - device. - - - The volume level. The volume level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Sets the normalized, audio-tapered volume level - of the specified channel in the audio stream that enters or leaves the audio endpoint - device. - - - The volume level. The volume level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - - - Gets the volume level, in decibels, of the specified - channel in the audio stream that enters or leaves the audio endpoint device. - - - A float variable into which the method writes the - volume level in decibels. To get the range of volume levels obtained from this method, - call the method. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Gets the volume level, in decibels, of the specified - channel in the audio stream that enters or leaves the audio endpoint device. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - Volume level in decibels. To get the range of volume levels obtained from this - method, call the method. - - - - - Gets the normalized, audio-tapered volume level - of the specified channel of the audio stream that enters or leaves the audio endpoint - device. - - - A float variable into which the method writes the volume - level. The level is expressed as a normalized value in the range from 0.0 to - 1.0. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Gets the normalized, audio-tapered volume level - of the specified channel of the audio stream that enters or leaves the audio endpoint - device. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - Volume level of a specific channel. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - - - - Sets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - True mutes the stream. False turns off muting. - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - EventContext which can be accessed in the event handler. - True mutes the stream. False turns off muting. - - - - Gets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - - A Variable into which the method writes the muting state. - If is true, the stream is muted. If false, the stream is not muted. - - HRESULT - - - - Gets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - If the method returns true, the stream is muted. If false, the stream is not muted. - - - - Gets information about the current step in the volume - range. - - - A variable into which the method writes the current step index. This index is a value in the - range from 0 to – 1, where 0 represents the minimum volume level and - – 1 represents the maximum level. - - - A variable into which the method writes the number of steps in the volume range. This number - remains constant for the lifetime of the object instance. - - HRESULT - - - - Gets information about the current step in the volume - range. - - - A variable into which the method writes the current step index. This index is a value in the - range from 0 to – 1, where 0 represents the minimum volume level and - – 1 represents the maximum level. - - - A variable into which the method writes the number of steps in the volume range. This number - remains constant for the lifetime of the object instance. - - - - - Increments, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Increments, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - - - - Decrements, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Decrements, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - - - - Queries the audio endpoint device for its - hardware-supported functions. - - - A variable into which the method writes a hardware support mask that indicates the - hardware capabilities of the audio endpoint device. - - HRESULT - - - - Queries the audio endpoint device for its - hardware-supported functions. - - A hardware support mask that indicates the hardware capabilities of the audio endpoint device. - - - - Gets the volume range, in decibels, of the audio stream that - enters or leaves the audio endpoint device. - - - Minimum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Maximum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Volume increment in decibels. This increment remains - constant for the lifetime of the object instance. - - HREUSLT - - - - Gets the volume range, in decibels, of the audio stream that - enters or leaves the audio endpoint device. - - - Minimum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Maximum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Volume increment in decibels. This increment remains - constant for the lifetime of the object instance. - - - - - Provides an implementation of the interface. - - - - - Occurs when the volume level or the muting state of the audio endpoint device has changed. - - - - - The method notifies the client that the volume level or muting state of the audio endpoint device has changed. - - Pointer to the volume-notification data. - HRESULT; If the method succeeds, it returns . If it fails, it returns an error code. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - The data which describes a change in the volume level or muting state of an audio endpoint device. - The native pointer to the . - - - - Gets the event context value. - - - The event context value. - - - Context value for the method. This member is the value of the - event-context GUID that was provided as an input parameter to the method call - that changed the endpoint volume level or muting state. For more information, see - . - - - - - Gets a value indicating whether the audio stream is currently muted. - - - true if the audio stream is currently muted; otherwise, false. - - - - - Gets the current master volume level of the audio stream. The volume level is - normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 - is the maximum level. Within this range, the relationship of the normalized volume level - to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the volume level for each channel is normalized to the range from 0.0 to 1.0, where 0.0 - is the minimum volume level and 1.0 is the maximum level. Within this range, the - relationship of the normalized volume level to the attenuation of signal amplitude is - described by a nonlinear, audio-tapered curve. - - - - - Represents a single audio endpoint volume channel. - - - - - Gets the parent instance. - - - The parent instance. - - - - - Gets the index of the audio endpoint channel. - - - The index of the audio endpoint channel. - - - - - Initializes a new instance of the class. - - The underlying which provides access to the audio endpoint volume. - The zero-based index of the channel. - - - - Gets or sets the volume in decibel. - - - The volume in decibel. - - - - - Gets or sets the volume as a normalized value in the range from 0.0 to 1.0. - - - The volume as a normalized value in the range from 0.0 to 1.0. - - - - - The class enables a client to write output data to a rendering endpoint buffer. - - - For more information, see - . - - - - - Initializes a new instance of the class. - - Pointer to the instance. - - - - Returns a new instance of the class. This is done by calling the - method of the class. - - - The instance which should be used to create the new - instance. - - A new instance of the class. - - - - Retrieves a pointer to the next available space in the rendering endpoint buffer into - which the caller can write a data packet. - - - The number of audio frames in the data packet that the caller plans to write to the requested space in the buffer. - If the call succeeds, the size of the buffer area pointed to by return value matches the size specified in - . - - - A pointer variable into which the method writes the starting address of the buffer area into which the caller - will write the data packet. - - - - - Retrieves a pointer to the next available space in the rendering endpoint buffer into - which the caller can write a data packet. - - - The number of audio frames in the data packet that the caller plans to write to the requested space in the buffer. - If the call succeeds, the size of the buffer area pointed to by matches the size - specified in . - - - Pointer variable into which the method writes the starting address of the buffer area into which - the caller will write the data packet. - - HRESULT - - - - Releases the buffer space acquired in the previous call to the - method. - - - The number of audio frames written by the client to the data packet. - The value of this parameter must be less than or equal to the size of the data packet, as specified in the - numFramesRequested parameter passed to the method. - - The buffer-configuration flags. - HRESULT - - - - Releases the buffer space acquired in the previous call to the - method. - - - The number of audio frames written by the client to the data packet. - The value of this parameter must be less than or equal to the size of the data packet, as specified in the - numFramesRequested parameter passed to the method. - - The buffer-configuration flags. - - - - The structure describes a change in the volume level or muting state of an audio endpoint device. - For more information, see . - - - - - The event context value. - - - Context value for the method. This member is the value of the - event-context GUID that was provided as an input parameter to the method call - that changed the endpoint volume level or muting state. For more information, see - . - - - - - A value indicating whether the audio stream is currently muted. true if the audio stream is currently muted; - otherwise, false. - - - - - Specifies the current master volume level of the audio stream. The volume level is - normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 - is the maximum level. Within this range, the relationship of the normalized volume level - to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve. - - - - - The number of channels. - - - - - The first element of an array which specifies the volume level of each channel. Use the - method to get all channel volumes. - - - - - Gets all channel volumes. - - - The volume level for each channel is normalized to the range from 0.0 to 1.0, where 0.0 - is the minimum volume level and 1.0 is the maximum level. Within this range, the - relationship of the normalized volume level to the attenuation of signal amplitude is - described by a nonlinear, audio-tapered curve. - - - - - The are hardware support flags for an audio endpoint device. - - For more information, see . - - - - None - - - - - The audio endpoint device supports a hardware volume control. - - - - - The audio endpoint device supports a hardware mute control. - - - - - The audio endpoint device supports a hardware peak meter. - - - - - The interface provides notifications of changes in the volume level and muting state of an audio endpoint device. - - - - - Notifies the client that the volume level or muting state of the audio endpoint device has changed. - - Pointer to the volume-notification data. - HRESULT; If the method succeeds, it returns . If it fails, it returns an error code. - - - - Enables a client to create and initialize an audio stream between an audio application and the audio engine (for a - shared-mode stream) or the hardware buffer of an audio endpoint device (for an exclusive-mode stream). For more - information, see - . - - - - - IID of the IAudioClient-interface. - - - - - Initializes a new instance of the class. - - Native pointer. - Use the method to create a new instance. - - - - Gets the default interval between periodic processing passes by the audio engine. The time is expressed in - 100-nanosecond units. - - - - - Gets the minimum interval between periodic processing passes by the audio endpoint device. The time is expressed in - 100-nanosecond units. - - - - - Gets the maximum capacity of the endpoint buffer. - - - - - Gets the number of frames of padding in the endpoint buffer. - - - - - Gets the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - - - Gets the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - - - - Returns a new instance of the class. - - Device which should be used to create the instance. - instance. - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - The format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - HRESULT - - For more information, see - . - - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - Pointer to the format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - HRESULT - - For more information, see - . - - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - The format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - - For more information, see - . - - - - - Retrieves the size (maximum capacity) of the endpoint buffer. - - Retrieves the number of audio frames that the buffer can hold. - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - HRESULT - - - - Returns the size (maximum capacity) of the endpoint buffer. - - The number of audio frames that the buffer can hold. - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - HRESULT - - - - Retrieves the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - Retrieves a value representing the latency. The time is expressed in 100-nanosecond units. - - Rendering clients can use this latency value to compute the minimum amount of data that - they can write during any single processing pass. To write less than this minimum is to - risk introducing glitches into the audio stream. For more information, see - . - - HRESULT - - - - Retrieves the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - - Rendering clients can use this latency value to compute the minimum amount of data that - they can write during any single processing pass. To write less than this minimum is to - risk introducing glitches into the audio stream. For more information, see - . - - A value representing the latency. The time is expressed in 100-nanosecond units. - - - - Retrieves the number of frames of padding in the endpoint buffer. - - Retrieves the frame count (the number of audio frames of padding in the buffer). - HRESULT - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - - - - Retrieves the number of frames of padding in the endpoint - buffer. - - The frame count (the number of audio frames of padding in the buffer). - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - Retrieves the supported format that is closest to the format that the client specified - through the parameter. If is - , the will be always null. - - - HRESULT code. If the method returns 0 (= ), the endpoint device supports the specified - . If the method returns - 1 (= ), the method succeeded with a to the specified - . If the method returns - 0x88890008 (= ), the method succeeded but the specified format - is not supported in exclusive mode. If the method returns anything else, the method failed. - - - For more information, see - . - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - Retrieves the supported format that is closest to the format that the client specified - through the parameter. If is - , the will be always null. - - - True if the is supported. False if the - is not supported. - - - For more information, see - . - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - True if the is supported. False if the - is not supported. - - - For more information, see - . - - - - - Retrieves the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - Retrieves the mix format that the audio engine uses for its internal processing of - shared-mode streams. - - - For more information, see - . - - HRESULT - - - - Retrieves the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - For more information, see - . - - The mix format that the audio engine uses for its internal processing of shared-mode streams. - - - - Retrieves the length of the periodic interval separating - successive processing passes by the audio engine on the data in the endpoint buffer. - - - Retrieves a time value specifying the default interval between periodic processing - passes by the audio engine. The time is expressed in 100-nanosecond units. - - - Retrieves a time value specifying the minimum interval between periodic processing - passes by the audio endpoint device. The time is expressed in 100-nanosecond units. - - - Use the and the properties instead of - the method. - For more information, see - . - - HRESULT - - - - Starts the audio stream. - - HRESULT - - For more information, see - . - - - - - Starts the audio stream. - - - For more information, see - . - - - - - Stops the audio stream. - - HRESULT - - For more information, see - . - - - - - Stops the audio stream. - - - For more information, see - . - - - - - Resets the audio stream. - - HRESULT - - For more information, see - . - - - - - Resets the audio stream. - - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - HRESULT - - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - For more information, see - . - - - - - Accesses additional services from the audio client object. - - - The interface ID for the requested service. For a list of all available values, see - . - - - A pointer variable into which the method writes the address of an instance of the - requested interface. Through this method, the caller obtains a counted reference to the interface. The caller is - responsible for releasing the interface, when it is no longer needed, by calling the interface's Release method. If - the GetService call fails, *ppv is . - - HRESULT - - For more information, see - . - - - - - Accesses additional services from the audio client object. - - - The interface ID for the requested service. For a list of all available values, see - . - - - A pointer into which the method writes the address of an instance of the requested interface. - Through this method, the caller obtains a counted reference to the interface. The caller is responsible for - releasing the interface, when it is no longer needed, by calling the interface's Release method. - - - For more information, see - . - - - - - AudioClient share mode - - - - - The device will be opened in shared mode and use the WAS format. - - - - - The device will be opened in exclusive mode and use the application specified format. - - - - - Represents a collection of multimedia device resources. - - - - - Initializes a new instance of the class. - - The native pointer. - Use the method to create an instance of the class. - - - - Gets the number of devices in the device collection. - - - - - Gets the element at the specified index. - - - - - - The method retrieves a count of the devices in the device collection. - - The number of devices in the device collection. - - - - The method retrieves a count of the devices in the device collection. - - Variable into which the method writes the number of devices in the device collection. - HRESULT - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - The object of the specified item in the device collection. - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - A pointer variable into which the method writes the address of the object of the specified item in the device collection. - HRESULT - - - - Returns an enumerator that iterates through the . - - Enumerator for the . - - - - Returns an enumerator that iterates through the . - - Enumerator for the . - - - - The object provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device. - - - - - Occurs when the state of an audio endpoint device has changed. - - - - - Occurs when a new audio endpoint device has been added. - - - - - Occurs when an audio endpoint device has been removed. - - - - - Occurs when the default audio endpoint device for a particular device role has changed. - - - - - Occurs when the value of a property belonging to an audio endpoint device has changed. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class based on an existing . - - - - - - The OnDeviceStateChanged method indicates that the state of an audio endpoint device has - changed. - - The device id that identifies the audio endpoint device. - Specifies the new state of the endpoint device. - HRESULT - - - - The OnDeviceAdded method indicates that a new audio endpoint device has been added. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDeviceRemoved method indicates that an audio endpoint device has been removed. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDefaultDeviceChanged method notifies the client that the default audio endpoint - device for a particular device role has changed. - - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnPropertyValueChanged method indicates that the value of a property belonging to an - audio endpoint device has changed. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - HRESULT - - - - Disposes und unregisters the . - - In order to unregister the , this method calls the method. - - - - Finalizes an instance of the class. - - - - - The object enables a client to control the master volume level of an audio session. - For more information, see . - - - - - Creates a new instance by calling the method of the - specified . - - - The which should be used to create the -instance - with. - - A new instance of the class. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets or sets the master volume level for the audio session. Valid volume levels are in the range 0.0 (=0%) to 1.0 (=100%). - - - - - Gets or sets the muting state for the audio session. True indicates that muting is enabled. False indicates that it is disabled. - - - - - Sets the master volume level for the audio session. - - - The new master volume level. Valid volume levels are in the range 0.0 to 1.0. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the client volume level for the audio session. - - - A variable into which the method writes the client volume level. The volume level is a value in the range 0.0 to 1.0. - HRESULT - - - - Sets the muting state for the audio session. - - - The new muting state. TRUE enables muting. FALSE disables muting. - EventContext which can be accessed in the event handler. - HRESULT - - - - The GetMute method retrieves the current muting state for the audio session. - - - A variable into which the method writes the muting state. TRUE indicates that muting is enabled. FALSE indicates that it is disabled. - HRESULT - - - - Encapsulates the generic features of a multimedia device resource. - - - - - Initializes a new instance of the class. - - Native pointer. - Use the class to create a new instance. - - - - Gets the propertystore associated with the . - - Warning: This PropertyStore is only readable. Use the OpenPropertyStore-Method to get - writeable PropertyStore. - - - - Gets the device id. For information, see . - - - - - Gets the friendly name of the device. - - This value is stored in the . - - - - Gets the AudioEndpointPath of the device. - - - This value is stored in the . - Use this value as the deviceid for XAudio2.8 device selection. - - - - - Gets the device state of the device. - - - - - Gets the data flow of the device. - - - The data flow of the device. - - - - - Gets the device format. - - Specifies the device format, which is the format that the user has selected for the stream that flows between the audio engine and the audio endpoint device when the device operates in shared mode. - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - A pointer variable into which the method writes the address of the interface specified by parameter . - HRESULT - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - A pointer variable into which the method writes the address of the interface specified by parameter . - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - for the . - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - A pointer variable into which the method writes the address of the IPropertyStore interface of the device's property store. - HRESULT - - - - Retrieves an endpoint ID string that identifies the audio endpoint device. - - The variable which will receive the id of the device. - HRESULT - - - - Retrieves the current device state. - - The variable which will receive the of the device. - HRESULT - - - - Disposes the and its default property store (see property). - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns the of the . - - The . - - - - CoreAudioAPI COM Exception - - - - - Throws an if the represents an error. - - The error code. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class. - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Defines constants that indicate the direction in which audio data flows between an audio endpoint device and an application. - - - - - Audio rendering stream. Audio data flows from the application to the audio endpoint device, which renders the stream. - - - - - Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, to the application. - - - - - Audio rendering or capture stream. Audio data can flow either from the application to the audio endpoint device, or from the audio endpoint device to the application. - - - - - Indicates the current state of an audio endpoint device. - - - - - The audio endpoint device is active. That is, the audio adapter that connects to the endpoint device is present and enabled. In addition, if the endpoint device plugs into a jack on the adapter, then the endpoint device is plugged in. - - - - - The audio endpoint device is disabled. The user has disabled the device in the Windows multimedia control panel, Mmsys.cpl. For more information, see Remarks. - - - - - he audio endpoint device is not present because the audio adapter that connects to the endpoint device has been removed from the system, or the user has disabled the adapter device in Device Manager. - - - - - The audio endpoint device is unplugged. The audio adapter that contains the jack for the endpoint device is present and enabled, but the endpoint device is not plugged into the jack. Only a device with jack-presence detection can be in this state. - - - - - Includes audio endpoint devices in all states—active, disabled, not present, and unplugged. - - - - - Encapsulates the generic features of a multimedia device resource. - - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - Pointer to a pointer variable into which the method writes the address of the interface specified by parameter . - HRESULT - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - Pointer to a pointer variable into which the method writes the address of the IPropertyStore interface of the device's property store. - HRESULT - - - - Retrieves an endpoint ID string that identifies the audio endpoint device. - - The variable which will receive the id of the device. - HRESULT - - - - Retrieves the current device state. - - The variable which will receive the of the device. - HRESULT - - - - Represents a collection of multimedia device resources. - - - - - The method retrieves a count of the devices in the device collection. - - Variable into which the method writes the number of devices in the device collection. - HRESULT - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - The object of the specified item in the device collection. - HRESULT - - - - Provides methods for enumerating multimedia device resources. - - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - Pointer to a pointer variable into which the method writes the address of the COM object of the device-collection object. - HRESULT - - - - The method retrieves the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - Pointer to a pointer variable into which the method writes the address of the COM object of the endpoint object for the default audio endpoint device. - HRESULT - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - Pointer to a pointer variable into which the method writes the address of the IMMDevice interface for the specified device. Through this method, the caller obtains a counted reference to the interface. - HREUSLT - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - HRESULT - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - HRESULT - - - - Defines constants that indicate the role that the system has assigned to an audio endpoint device. - - - - - Games, system notification sounds, and voice commands. - - - - - Music, movies, narration, and live music recording. - - - - - Voice communications (talking to another person). - - - - - Specifies how to open a property store. - - - - - Readable only. - - - - - Writeable but not readable. - - - - - Read- and writeable. - - - - - Provides methods for enumerating multimedia device resources. - - - - - Returns the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. - - - - Returns the default audio endpoint for the specified data-flow direction and role. If no device is available the method returns null. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. If no device is available the method returns null. - - - - Generates a collection of all active audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - which contains the enumerated devices. - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - which contains the enumerated devices. - - - - Initializes a new instance of the class. - - - - - Gets the with the specified device id. - - - The . - - The device identifier. - - - - - Returns the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. - - - - The method retrieves the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - A pointer variable into which the method writes the address of the COM object of the endpoint object for the default audio endpoint device. - HRESULT - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - which contains the enumerated devices. - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - A pointer variable into which the method writes the address of the COM object of the device-collection object. - HRESULT - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - instance for specified device. - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - A pointer variable into which the method writes the address of the IMMDevice interface for the specified device. Through this method, the caller obtains a counted reference to the interface. - HREUSLT - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - HRESULT - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - HRESULT - - - - Is used to create buffer objects, manage devices, and set up the environment. This object supersedes and adds new methods. - Obtain a instance by calling the method. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Ascertains whether the device driver is certified for DirectX. - - Receives a value which indicates whether the device driver is certified for DirectX. - DSResult - - - - Ascertains whether the device driver is certified for DirectX. - - A value which indicates whether the device driver is certified for DirectX. On emulated devices, the method returns . - - - - Used to create buffer objects, manage devices, and set up the environment. - - - - - Returns a new instance of the class. - - The device to use for the initialization. - The new instance of the class. - - - - Returns a new instance of the class. - - The device to use for the initialization. - The new instance of the class. - - - - Gets the capabilities. - - - - - Initializes a new instance of the class. - - The native pointer of the DirectSound COM object. - - - - Checks whether the specified is supported. - - The wave format. - A value indicating whether the specified is supported. If true, the is supported; Otherwise false. - - - - Sets the cooperative level of the application for this sound device. - - Handle to the application window. - The requested level. - - - - Sets the cooperative level of the application for this sound device. - - Handle to the application window. - The requested level. - DSResult - - - - Creates a sound buffer object to manage audio samples. - - A structure that describes the sound buffer to create. - Must be . - A variable that receives the IDirectSoundBuffer interface of the new buffer object. - For more information, see . - - - - Creates a sound buffer object to manage audio samples. - - A structure that describes the sound buffer to create. - Must be . - A variable that receives the IDirectSoundBuffer interface of the new buffer object. - DSResult - For more information, see . - - - - Retrieves the capabilities of the hardware device that is represented by the device object. - - - Receives the capabilities of this sound device. - DSResult - Use the property instead. - - - - Creates a new secondary buffer that shares the original buffer's memory. - - Type of the buffer to duplicate. - The buffer to duplicate. - The duplicated buffer. - For more information, see . - - - - Creates a new secondary buffer that shares the original buffer's memory. - - Address of the IDirectSoundBuffer or IDirectSoundBuffer8 interface of the buffer to duplicate. - Address of a variable that receives the IDirectSoundBuffer interface pointer for the new buffer. - DSResult - For more information, see . - - - - Has no effect. See remarks. - - This method was formerly used for compacting the on-board memory of ISA sound cards. - DSResult - - - - Has no effect. See remarks. - - This method was formerly used for compacting the on-board memory of ISA sound cards. - - - - Retrieves the speaker configuration. - - Retrieves the speaker configuration. - DSResult - - - - Retrieves the speaker configuration. - - The speaker configuration. - - - - Specifies the speaker configuration of the device. - - The speaker configuration. - DSResult - - In Windows Vista and later versions of Windows, is a NOP. For Windows Vista and later versions, the speaker configuration is a system setting that should not be modified by an application. End users can set the speaker configuration through control panels. - For more information, see . - - - - - Specifies the speaker configuration of the device. - - The speaker configuration. - - In Windows Vista and later versions of Windows, is a NOP. For Windows Vista and later versions, the speaker configuration is a system setting that should not be modified by an application. End users can set the speaker configuration through control panels. - For more information, see . - - - - - Initializes a device object that was created by using the CoCreateInstance function. - - The globally unique identifier (GUID) specifying the sound driver to which this device object binds. Pass null to select the primary sound driver. - DSResult - - - - Initializes a device object that was created by using the CoCreateInstance function. - - The globally unique identifier (GUID) specifying the sound driver to which this device object binds. Pass null to select the primary sound driver. - - - - Combines a value with a value. - - Must be . - The value to combine with the . - Combination out of the and the value. - Must be stereo.; speakerConfiguration - - - - Used to manage sound buffers. - - - - - Left only. - - - - - 50% left, 50% right. - - - - - Right only. - - - - - The default frequency. For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the capabilities of the buffer object. - - - - - Gets the status of the sound buffer. - - - - - Retrieves the capabilities of the buffer object. - - Receives the capabilities of this sound buffer. - DSResult - - - - Retrieves the capabilities of the buffer object. - - The capabilities of this sound buffer. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - Priority for the sound, used by the voice manager when assigning hardware mixing resources. The lowest priority is 0, and the highest priority is 0xFFFFFFFF. If the buffer was not created with the flag, this value must be 0. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - Priority for the sound, used by the voice manager when assigning hardware mixing resources. The lowest priority is 0, and the highest priority is 0xFFFFFFFF. If the buffer was not created with the flag, this value must be 0. - DSResult - - - - Causes the sound buffer to stop playing. - - For more information, see . - - - - Causes the sound buffer to stop playing. - - DSResult - For more information, see . - - - - Restores the memory allocation for a lost sound buffer. - - For more information, see . - - - - Restores the memory allocation for a lost sound buffer. - - DSResult - For more information, see . - - - - Readies all or part of the buffer for a data write and returns pointers to which data can be written. - - Offset, in bytes, from the start of the buffer to the point where the lock begins. This parameter is ignored if is specified in the parameter. - Size, in bytes, of the portion of the buffer to lock. The buffer is conceptually circular, so this number can exceed the number of bytes between and the end of the buffer. - Receives a pointer to the first locked part of the buffer. - Receives the number of bytes in the block at . If this value is less than , the lock has wrapped and points to a second block of data at the beginning of the buffer. - Receives a pointer to the second locked part of the capture buffer. If is returned, the parameter points to the entire locked portion of the capture buffer. - Receives the number of bytes in the block at . If is , this value is zero. - Flags modifying the lock event. - DSResult - - - - Readies all or part of the buffer for a data write and returns pointers to which data can be written. - - Offset, in bytes, from the start of the buffer to the point where the lock begins. This parameter is ignored if is specified in the parameter. - Size, in bytes, of the portion of the buffer to lock. The buffer is conceptually circular, so this number can exceed the number of bytes between and the end of the buffer. - Receives a pointer to the first locked part of the buffer. - Receives the number of bytes in the block at . If this value is less than , the lock has wrapped and points to a second block of data at the beginning of the buffer. - Receives a pointer to the second locked part of the capture buffer. If is returned, the parameter points to the entire locked portion of the capture buffer. - Receives the number of bytes in the block at . If is , this value is zero. - Flags modifying the lock event. - - - - Releases a locked sound buffer. - - Address of the value retrieved in the audioPtr1 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr1. - Address of the value retrieved in the audioPtr2 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr2. - DSResult - - - - Releases a locked sound buffer. - - Address of the value retrieved in the audioPtr1 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr1. - Address of the value retrieved in the audioPtr2 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr2. - - - - Retrieves the position of the play and write cursors in the sound buffer. - - Receives the offset, in bytes, of the play cursor. - Receives the offset, in bytes, of the write cursor. - DSResult - - - - Retrieves the position of the play and write cursors in the sound buffer. - - Receives the offset, in bytes, of the play cursor. - Receives the offset, in bytes, of the write cursor. - - - - Sets the position of the play cursor, which is the point at which the next byte of data is read from the buffer. - - Offset of the play cursor, in bytes, from the beginning of the buffer. - - - - Sets the position of the play cursor, which is the point at which the next byte of data is read from the buffer. - - Offset of the play cursor, in bytes, from the beginning of the buffer. - DSResult - - - - Initializes a sound buffer object if it has not yet been initialized. - - The device object associated with this buffer. - A structure that contains the values used to initialize this sound buffer. - DSResult - - - - Initializes a sound buffer object if it has not yet been initialized. - - The device object associated with this buffer. - A structure that contains the values used to initialize this sound buffer. - - - - Retrieves the status of the sound buffer. - - - Receives the status of the sound buffer. - DSResult - Use the property instead. - - - - Sets the frequency at which the audio samples are played. - - Frequency, in hertz (Hz), at which to play the audio samples. A value of resets the frequency to the default value of the buffer format. - DSResult - Before setting the frequency, you should ascertain whether the frequency is supported by checking the and members of the structure for the device. Some operating systems do not support frequencies greater than 100,000 Hz. - - - - Sets the frequency at which the audio samples are played. - - Frequency, in hertz (Hz), at which to play the audio samples. A value of resets the frequency to the default value of the buffer format. - Before setting the frequency, you should ascertain whether the frequency is supported by checking the and members of the structure for the device. Some operating systems do not support frequencies greater than 100,000 Hz. - - - - Retrieves the frequency, in samples per second, at which the buffer is playing. - - A variable that receives the frequency at which the audio buffer is being played, in hertz. - DSResult - - - - Gets the frequency, in samples per second, at which the buffer is playing. - - The frequency at which the audio buffer is being played, in hertz. - - - - Sets the relative volume of the left and right channels. - - Relative volume between the left and right channels. Must be between and . - DSResult - For more information, see . - - - - Sets the relative volume of the left and right channels. - - Relative volume between the left and right channels. Must be between and . - For more information, see . - - - - Sets the relative volume of the left and right channels as a scalar value. - - Relative volume between the left and right channels. Must be between -1.0 and 1.0. - A value of -1.0 will set the volume of the left channel to 100% and the volume of the right channel to 0%. - A value of 1.0 will set the volume of the left channel to 0% and the volume of the right channel to 100%. - - - - Retrieves the relative volume of the left and right audio channels. - - A variable that receives the relative volume, in hundredths of a decibel. - DSResult - - - - Retrieves the relative volume of the left and right audio channels. - - The relative volume, in hundredths of a decibel. - - - - Gets the relative volume of the left and right channels as a scalar value. - - The relative volume between the left and right channels. A value of -1.0 indicates that the volume of the left channel is set to 100% and the volume of the right channel to 0%. - A value of 1.0 indicates that the volume of the left channel is set to 0% and the volume of the right channel is set to 100%. - - - - Sets the attenuation of the sound. - - Attenuation, in hundredths of a decibel (dB). - DSResult - - - - Sets the attenuation of the sound. - - Attenuation, in hundredths of a decibel (dB). - - - - Sets the attenuation of the sound. - - The attenuation of the sound. The attenuation is expressed as a normalized value in the range from 0.0 to 1.0. - - - - Retrieves the attenuation of the sound. - - A variable that receives the attenuation, in hundredths of a decibel. - DSResult - - - - Returns the attenuation of the sound. - - The attenuation, in hundredths of a decibel. - - - - Returns the attenuation of the sound. - - The attenuation of the sound. The attenuation is expressed as a normalized value in the range from 0.0 to 1.0. - - - - Retrieves a description of the format of the sound data in the buffer, or the buffer size needed to retrieve the format description. - - Address of a or instance that receives a description of the sound data in the buffer. To retrieve the buffer size needed to contain the format description, specify . In this case the variable at receives the size of the structure needed to receive the data. - Size, in bytes, of the structure at . If is not , this value must be equal to or greater than the size of the expected data. - A variable that receives the number of bytes written to the structure at . - DSResult - - - - Returns a description of the format of the sound data in the buffer. - - A description of the format of the sound data in the buffer. The returned description is either of the type or of the type . - - - - Sets the format of the primary buffer. Whenever this application has the input focus, DirectSound will set the primary buffer to the specified format. - - A waveformat that describes the new format for the primary sound buffer. - DSResult - - - - Sets the format of the primary buffer. Whenever this application has the input focus, DirectSound will set the primary buffer to the specified format. - - A waveformat that describes the new format for the primary sound buffer. - - - - Enables effects on a buffer. For this method to succeed, CoInitialize must have been called. Additionally, the buffer must not be playing or locked. - - Number of elements in the effectDescriptions and resultCodes arrays. If this value is 0, effectDescriptions and resultCodes must both be . Set to 0 to remove all effects from the buffer. - Address of an array of DSEFFECTDESC structures, of size effectsCount, that specifies the effects wanted on the buffer. Must be if effectsCount is 0. - Address of an array of DWORD elements, of size effectsCount. - DSResult - - - - Allocates resources for a buffer that was created with the DSBCAPS_LOCDEFER flag in the DSBUFFERDESC structure. - - Flags specifying how resources are to be allocated for a buffer created with the DSBCAPS_LOCDEFER flag. - Number of elements in the resultCodes array, or 0 if resultCodes is . - Address of an array of DWORD variables that receives information about the effects associated with the buffer. This array must contain one element for each effect that was assigned to the buffer by . - DSResult - - - - Retrieves an interface for an effect object associated with the buffer. - - Unique class identifier of the object being searched for, such as GUID_DSFX_STANDARD_ECHO. Set this parameter to GUID_All_Objects to search for objects of any class. - Index of the object within objects of that class in the path. - Unique identifier of the desired interface. - Address of a variable that receives the desired interface pointer. - DSResult - For more information, see . - - - - Gets a value indicating whether the buffer is lost. True means that the buffer is lost; Otherwise False. - - - - - Writes data to the buffer by locking the buffer, copying data to the buffer and finally unlocking it. - - The data to write to the buffer. - The zero-based offset in the at which to start copying data. - The number of bytes to write. - Returns true if writing data was successful; Otherwise false. - - - - Writes data to the buffer by locking the buffer, copying data to the buffer and finally unlocking it. - - The data to write to the buffer. - The zero-based offset in the at which to start copying data. - The number of shorts to write. - Returns true if writing data was successful; Otherwise false. - - - - Describes the capabilities of a device. - - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - - - - Flags describing device capabilities. - - - - - Minimum sample rate specification that is supported by this device's hardware secondary sound buffers. - - - - - Maximum sample rate specification that is supported by this device's hardware secondary sound buffers. - - - - - Number of primary buffers supported. This value will always be 1. - - - - - Number of buffers that can be mixed in hardware. This member can be less than the sum of and . Resource tradeoffs frequently occur. - - - - - Maximum number of static buffers. - - - - - Maximum number of streaming sound buffers. - - - - - Number of unallocated buffers. On WDM drivers, this includes . - - - - - Number of unallocated static buffers. - - - - - Number of unallocated streaming buffers. - - - - - Maximum number of 3D buffers. - - - - - Maximum number of static 3D buffers. - - - - - Maximum number of streaming 3D buffers. - - - - - Number of unallocated 3D buffers. - - - - - Number of unallocated static 3D buffers. - - - - - Number of unallocated streaming 3D buffers. - - - - - Size, in bytes, of the amount of memory on the sound card that stores static sound buffers. - - - - - Size, in bytes, of the free memory on the sound card. - - - - - Size, in bytes, of the largest contiguous block of free memory on the sound card. - - - - - The rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the method. - - - - - The processing overhead, as a percentage of main processor cycles, needed to mix software buffers. This varies according to the bus type, the processor type, and the clock speed. - - - - - Represents a directsound-device. - - - - - The guid of the default playback device. - - - - - Gets the default playback device. - - - - - Enumerates all directsound-devices. Use the method instead. - - A list, containing all enumerated directsound-devices. - - - - Gets the textual description of the DirectSound device. - - - - - Gets the module name of the DirectSound driver corresponding to this device. - - - - - The that identifies the device being enumerated. - - - - - Initializes a new instance of the class. - - The description. - The module. - The unique identifier. - - - - Performs an explicit conversion from to . - - The device. - - The of the . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Provides the functionality to enumerate directsound devices installed on the system. - - - - - Enumerates the directsound devices installed on the system. - - A readonly collection, containing all enumerated devices. - - - - Exception class which represents all DirectSound related exceptions. - - - - - Initializes a new instance of the class. - - The Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class. - - The Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Gets the which got associated with the specified . - - - - - Throws an if the is not - . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Sets up notification events for a playback or capture buffer. - - - - - Returns a new instance of the class for the specified . - - The to create a instance for. - A new instance of the class for the specified - is null. - - - - Initializes a new instance of the class based on the native pointer. - - The native pointer of the COM object. - - - - Sets the notification positions. During capture or playback, whenever the read or play cursor reaches one of the specified offsets, the associated event is signaled. - - An array of structures. - - - - Sets the notification positions. During capture or playback, whenever the read or play cursor reaches one of the specified offsets, the associated event is signaled. - - An array of structures. - DSResult - - - - Represents a primary directsound buffer. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - The buffer description which describes the buffer to create. - - The is invalid. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Represents a secondary directsound buffer. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - The of the sound buffer. - The buffer size. Internally, the will be set to * 2. - or - must be a value between 4 and 0x0FFFFFFF. - - - - Initializes a new instance of the class. - - A instance which provides the method. - The buffer description which describes the buffer to create. - - - The is invalid. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Defines possible flags for the method. - - - - - The default value. - - - - - Start the lock at the write cursor. The offset parameter is ignored. - - - - - Lock the entire buffer. The bytes parameter is ignored. - - - - - Flags specifying how to play a . - - For more information, see . - - - - None - - - - - After the end of the audio buffer is reached, play restarts at the beginning of the buffer. Play continues until explicitly stopped. This flag must be set when playing a primary buffer. - - - - - Play this voice in a hardware buffer only. If the hardware has no available voices and no voice management flags are set, the call to fails. This flag cannot be combined with . - - - - - Play this voice in a software buffer only. This flag cannot be combined with or any voice management flag. - - - - - If the hardware has no available voices, a currently playing nonlooping buffer will be stopped to make room for the new buffer. The buffer prematurely terminated is the one with the least time left to play. - - - - - If the hardware has no available voices, a currently playing buffer will be stopped to make room for the new buffer. The buffer prematurely terminated will be selected from buffers that have the buffer's flag set and are beyond their maximum distance. If there are no such buffers, the method fails. - - - - - If the hardware has no available voices, a currently playing buffer will be stopped to make room for the new buffer. The buffer prematurely terminated will be the one with the lowest priority as set by the priority parameter passed to for the buffer. - - - - - The structure describes a notification position. It is used by . - - - - - Zero offset. - - - - - Causes the event to be signaled when playback or capture stops, either because the end of the buffer has been reached (and playback or capture is not looping) or because the application called the or IDirectSoundCaptureBuffer8::Stop method. - - - - - Offset from the beginning of the buffer where the notify event is to be triggered, or . - - - - - Handle to the event to be signaled when the offset has been reached. - - - - - Initializes a new instance of the struct. - - The offset from the beginning of the buffer where the notify event is to be triggered. - Handle to the event to be signaled when the offset has been reached - - - - Defines flags that describe the status of a . - - - - - The buffer is playing. If this value is not set, the buffer is stopped. - - - - - The buffer is lost and must be restored before it can be played or locked. - - - - - The buffer is being looped. If this value is not set, the buffer will stop when it reaches the end of the sound data. This value is returned only in combination with . - - - - - The buffer is playing in hardware. Set only for buffers created with the flag. - - - - - The buffer is playing in software. Set only for buffers created with the flag. - - - - - The buffer was prematurely terminated by the voice manager and is not playing. Set only for buffers created with the flag. - - - - - Describes the capabilities of a DirectSound buffer object. It is used by the property. - - For more information, see . - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - Use the method to determine the size. - - - - Flags that specify buffer-object capabilities. - - - - - Size of this buffer, in bytes. - - - - - The rate, in kilobytes per second, at which data is transferred to the buffer memory when is called. High-performance applications can use this value to determine the time required for to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate. - - - - - The processing overhead as a percentage of main processor cycles needed to mix this sound buffer. For hardware buffers, this member will be zero because the mixing is performed by the sound device. For software buffers, this member depends on the buffer format and the speed of the system processor. - - - - - Flags that specify buffer-object capabilities. - - - - - None - - - - - The buffer is a primary buffer. - - - - - The buffer is in on-board hardware memory. - - - - - The buffer uses hardware mixing. - - - - - The buffer is in software memory and uses software mixing. - - - - - The buffer has 3D control capability. - - - - - The buffer has frequency control capability. - - - - - The buffer has pan control capability. - - - - - The buffer has volume control capability. - - - - - The buffer has position notification capability. - - - - - The buffer supports effects processing. - - - - - The buffer has sticky focus. If the user switches to another application not using DirectSound, the buffer is still audible. However, if the user switches to another DirectSound application, the buffer is muted. - - - - - The buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. - For more information, see . - - - - - The buffer uses the new behavior of the play cursor when is called. For more information, see . - - - - - The sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted. Applies only to software buffers. - - - - - The buffer can be assigned to a hardware or software resource at play time, or when is called. - - - - - Force to return the buffer's true play position. This flag is only valid in Windows Vista. - - - - - Describes the characteristics of a new buffer object. - - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - Use the or the method to - - - - Flags specifying the capabilities of the buffer. - - - - - Size of the new buffer, in bytes. For more information, see . - - Must be a value between 4 and 0x0FFFFFFF. - - - - Address of a or class specifying the waveform format for the buffer. This value must be for primary buffers. - - - - - Unique identifier of the two-speaker virtualization algorithm to be used by DirectSound3D hardware emulation. If is not set in , this member must be . - For more information, see . - - - - - Flags describing device capabilities. - - - - - The driver has been tested and certified by Microsoft. This flag is always set for WDM drivers. To test for certification, use . - - - - - The device supports all sample rates between the and member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency. - - - - - The device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected. - - - - - None - - - - - The device supports a primary buffer with 16-bit samples. - - - - - The device supports primary buffers with 8-bit samples. - - - - - The device supports monophonic primary buffers. - - - - - The device supports stereo primary buffers. - - - - - The device supports hardware-mixed secondary sound buffers with 16-bit samples. - - - - - The device supports hardware-mixed secondary buffers with 8-bit samples. - - - - - The device supports hardware-mixed monophonic secondary buffers. - - - - - The device supports hardware-mixed stereo secondary buffers. - - - - - Defines possible return values for the method. - - For more information, see or . - - - - Driver is certified for DirectSound. - - - - - Driver is not certified for DirectSound. - - - - - Not supported. - - The method returned DSERR_UNSUPPORTED. - - - - Defines cooperative levels which can be set by calling the - method. - - For more information, see . - - - - Sets the normal level. This level has the smoothest multitasking and resource-sharing behavior, but because it does - not allow the primary buffer format to change, output is restricted to the default 8-bit format. - - - - - Sets the priority level. Applications with this cooperative level can call the SetFormat and Compact methods. - - - - - For DirectX 8.0 and later, has the same effect as . For previous versions, sets the - application to the exclusive level. This means that when it has the input focus, the application will be the only - one audible; sounds from applications with the GlobalFocus flag set will be muted. With this level, it also - has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by - the most recent call to the SetFormat method, after the application gains the input focus. - - - - - Sets the write-primary level. The application has write access to the primary buffer. No secondary buffers can be - played. This level cannot be set if the DirectSound driver is being emulated for the device; that is, if the - GetCaps method returns the DSCAPS_EMULDRIVER flag in the DSCAPS structure. - - - - - Defines possible DirectSound return values. - - For more information, see . - - - - The method succeeded. - - - - - The DirectSound subsystem could not allocate sufficient memory to complete the caller's request. - - - - - The requested COM interface is not available. - - - - - The buffer was created, but another 3D algorithm was substituted. - - - - - The method succeeded, but not all the optional effects were obtained. - - - - - The function called is not supported at this time. - - - - - An undetermined error occurred inside the DirectSound subsystem. - - - - - The request failed because access was denied. - - - - - An invalid parameter was passed to the returning function. - - - - - The request failed because resources, such as a priority level, were already in use by another caller. - - - - - The buffer control (volume, pan, and so on) requested by the caller is not available. Controls must be specified when the buffer is created, using the member of . - - - - - This function is not valid for the current state of this object. - - - - - A cooperative level of or higher is required. - - - - - The specified wave format is not supported. - - - - - No sound driver is available for use, or the given GUID is not a valid DirectSound device ID. - - - - - The object is already initialized. - - - - - The buffer memory has been lost and must be restored. - - - - - Another application has a higher priority level, preventing this call from succeeding. - - - - - The method has not been called or has not been called successfully before other methods were called. - - - - - The buffer size is not great enough to enable effects processing. - - - - - A DirectSound object of class CLSID_DirectSound8 or later is required for the requested functionality. - - - - - A circular loop of send effects was detected. - - - - - The GUID specified in an audiopath file does not match a valid mix-in buffer. - - - - - The effects requested could not be found on the system, or they are in the wrong order or in the wrong location; for example, an effect expected in hardware was found in software. - - - - - The requested object was not found. - - - - - Defines possible speaker configurations. - - - - - The audio is passed through directly, without being configured for speakers. - - - - - The audio is played through headphones. - - - - - The audio is played through a single speaker. - - - - - The audio is played through quadraphonic speakers. - - - - - The audio is played through stereo speakers (default value). - - - - - The audio is played through surround speakers. - - - - - The audio is played through a home theater speaker arrangement of five surround speakers with a subwoofer. - - Obsolete 5.1 setting. Use instead. - - - - The audio is played through a home theater speaker arrangement of seven surround speakers with a subwoofer. - - Obsolete 7.1 setting. Use instead. - - - - The audio is played through a home theater speaker arrangement of seven surround speakers with a subwoofer. This value applies to Windows XP SP2 or later. - - - - - The audio is played through a home theater speaker arrangement of five surround speakers with a subwoofer. This value applies to Windows Vista or later. - - - - - The audio is played through a wide speaker arrangement of seven surround speakers with a subwoofer. ( is still defined, but is obsolete as of Windows XP SP 2. Use instead.) - - - - - The audio is played through a speaker arrangement of five surround speakers with a subwoofer. ( is still defined, but is obsolete as of Windows Vista. Use instead.) - - - - - Defines values that can be combined with the value. - - To combine the a value with the stereo value, use the method. - - - - The speakers are directed over an arc of 5 degrees. - - - - - The speakers are directed over an arc of 10 degrees. - - - - - The speakers are directed over an arc of 20 degrees. - - - - - The speakers are directed over an arc of 180 degrees. - - - - - implementation for Dmo based streams. - - - - - Creates a new instance of the class. - - Base source of the . - - - - Gets or sets the position of the stream in bytes. - - - - - Gets the length of the stream in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the . - - - - - Gets inputData to feed the Dmo MediaObject with. - - - InputDataBuffer which receives the inputData. - If this parameter is null or the length is less than the amount of inputData, a new byte array will be applied. - - The requested number of bytes. - The number of bytes read. The number of actually read bytes does not have to be the number of requested bytes. - - - - Gets the input format to use. - - The input format. - Typically this is the of the . - - - - Defines DMO-Categories for enumerating DMOs. - - - - - All DMOs. - - - - - AudioEffects - - - - - AudioCaptureEffects - - - - - Category which includes audio decoder. - - - - - Category which includes audio encoder. - - - - - Defines flags that specify search criteria when enumerating Microsoft DirectX Media Objects. - For more information, see . - - - A software key enables the developer of a DMO to control who uses the DMO. If a DMO has a software key, - applications must unlock the DMO to use it. The method for unlocking the DMO depends on the implementation. Consult - the documentation for the particular DMO. - - - - - None - - - - - The enumeration should include DMOs whose use is restricted by a software key. If this flag is absent, keyed DMOs - are omitted from the enumeration. - - - - - Encapsulates the properties of an enumerated dmo. - - - - - Gets or sets the CLSID of the dmo. - - - - - Gets or sets the friendly name of the dmo. - - - - - Error codes that are specific to Microsoft DirectX Media Objects. - - - - - Invalid stream index. - - - - - Invalid media type. - - - - - Media type was not set. One or more streams require a media type before this operation can be performed. - - - - - Data cannot be accepted on this stream. You might need to process more output data; see MediaObject::ProcessInput - (-> http://msdn.microsoft.com/en-us/library/windows/desktop/dd406959(v=vs.85).aspx). - - - - - Media type was not accepted. - - - - - Media-type index is out of range. - - - - - Encapsulates the values retrieved by the method. - - - - - Initializes a new instance of the class. - - The minimum size of an input buffer for the stream, in bytes. - The required buffer alignment, in bytes. If the stream has no alignment requirement, the value is 1 - The maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does not perform a lookahead on the stream, the value is zero. - - - - Gets the maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does not perform a - lookahead on the stream, the value is zero. - - - - - Defines flags that describe an input stream. - - - - - None. - - - - - The stream requires whole samples. Samples must not span multiple buffers, and buffers must not contain partial - samples. - - - - - Each buffer must contain exactly one sample. - - - - - All the samples in this stream must be the same size. - - - - - The DMO performs lookahead on the incoming data, and may hold multiple input buffers for this stream. - - - - - Represents a Dmo output data buffer. For more details see . - - - - - Pointer to the interface of a buffer allocated by the application. - - - - - Status flags. After processing output, the DMO sets this member to a bitwise combination - of or more flags. - - - - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a - valid time stamp, the DMO sets this member and also sets the - flag in the dwStatus member. Otherwise, ignore this member. - - - - - Reference time specifying the length of the data in the buffer. If the DMO sets this - member to a valid value, it also sets the flag in the - dwStatus member. Otherwise, ignore this member. - - - - - Initializes a new instance of the struct. - - The maxlength (in bytes) of the internally used . - - - - Gets the length of the . - - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The number of read bytes. - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - The number of read bytes. - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - Zero-based offset inside of the source buffer at which to begin copying data. - The number of read bytes. - - - - Resets the Buffer. Sets the length of the to zero and sets the - to . - - - - - Disposes the internally used . - - - - - The enumeration defines flags that describe an output stream. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do not contain partial - samples. - - - - - Each buffer contains exactly one sample. - - - - - All the samples in this stream are the same size. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can discard data for this stream - without copying it to an output buffer. - - - - - The stream is optional. An optional stream is discardable. Also, the application can ignore this stream entirely; - it does not have to set the media type for the stream. Optional streams generally contain additional information, - or data not needed by all applications. - - - - - Describes a media type used by a Microsoft DirectX Media Object. - - For more informatin, see . - - - - Major type GUID. Use to match any major type. - - - - - Subtype GUID. Use to match any subtype. - - - - - Encapsulates the values retrieved by the - and the - method. - - - - - Initializes a new instance of the class. - - The minimum size of an input buffer for the stream, in bytes. - The required buffer alignment, in bytes. If the stream has no alignment requirement, the value is 1. - - - - Gets the minimum size of an input buffer for this stream, in bytes. - - - - - Gets the required buffer alignment, in bytes. If the input stream has no alignment requirement, the value is 1. - - - - - Base class for all Dmo based streams. - - - - - The default inputStreamIndex to use. - - - - - The default outputStreamIndex to use. - - - - - Gets the input format of the . - - - - - Reads a sequence of bytes from the stream. - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Gets or sets the position of the stream. - - - - - Gets the length of the stream. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the . - - - - - Gets the output format of the . - - - - - Gets inputData to feed the Dmo MediaObject with. - - - InputDataBuffer which receives the inputData. - If this parameter is null or the length is less than the amount of inputData, a new byte array will be applied. - - The requested number of bytes. - The number of bytes read. The number of actually read bytes does not have to be the number of requested bytes. - - - - Creates and returns a new instance to use for processing audio data. This can be a decoder, effect, ... - - The input format of the to create. - The output format of the to create. - The created to use for processing audio data. - - - - Gets the input format to use. - - The input format. - - - - Gets the output format to use. - - The output format. - - - - Initializes the DmoStream. Important: This has to be called before using the DmoStream. - - - - - Converts a position of the inputstream to the equal position in the outputstream. - - Any position/offset of the inputstream, in bytes. - Position in the outputstream, in bytes. - - - - Translates a position of the outputstream to the equal position in the inputstream. - - Any position/offset of the outputstream, in bytes. - Position in the inputstream, in bytes. - - - - Resets the overflowbuffer. - - - - - Releases the . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The depth. - - - - - The feedback. - - - - - The frequency. - - - - - The waveform. - - - - - The delay. - - - - - The phase. - - - - - Internal parameter structure for the effect. - - - - - The gain. - - - - - The attack. - - - - - The release. - - - - - The threshold. - - - - - The ratio. - - - - - The predelay. - - - - - Base class for any DirectSoundEffect. - - Parameters type. - - - - Default ctor for a ComObject. - - Pointer of a DirectSoundEffect interface. - - - - Gets or sets the Parameters of the Effect. - - - - - Gets the name of the COM interface. Used for generating error messages. - - - - - Sets the effects parameters. - - - Object that contains the new parameters of the effect. - HRESULT - Use the property instead. - - - - Retrieves the effects parameters. - - - A variable which retrieves the set parameters of the effect. - HRESULT - Use the property instead. - - - - The IDirectSoundFXChorus interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXChorus wrapper based on a pointer to a IDirectSoundFXChorus cominterface. - - Pointer of a DirectSoundFXChorus interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXCompressor interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXCompressor wrapper based on a pointer to a IDirectSoundFXCompressor cominterface. - - Pointer of a DirectSoundFXCompressor interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXDistortion interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXDistortion wrapper based on a pointer to a IDirectSoundFXDistortion cominterface. - - Pointer of a DirectSoundFXDistortion interface. - - - - Interface name used for generating DmoExceptions. - - - - - The IDirectSoundFXEcho interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXEcho wrapper based on a pointer to a IDirectSoundFXEcho cominterface. - - Pointer of a DirectSoundFXEcho interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXFlanger interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXFlanger wrapper based on a pointer to a IDirectSoundFXFlanger cominterface. - - Pointer of a DirectSoundFXFlanger interface. - - - - Interface name used for generating DmoExceptions. - - - - - The IDirectSoundFXChorus interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXGargle wrapper based on a pointer to a IDirectSoundFXGargle cominterface. - - Pointer of a DirectSoundFXGargle interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXReverb interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXWavesReverb wrapper based on a pointer to a IDirectSoundFXWavesReverb cominterface. - - Pointer of a DirectSoundFXWavesReverb interface. - - - - Interface name used for generating DmoExceptions. - - - - - Internal parameter structure for the effect. - - - - - The gain. - - - - - The edge. - - - - - The post eq center frequency. - - - - - The post eq bandwidth. - - - - - The pre lowpass cutoff. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The feedback. - - - - - The left delay. - - - - - The right delay. - - - - - The pan delay. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The depth. - - - - - The feedback. - - - - - The frequency. - - - - - The waveform. - - - - - The delay. - - - - - The phase. - - - - - Internal parameter structure for the effect. - - - - - The rate hz. - - - - - The wave shape. - - - - - Internal parameter structure for the effect. - - - - - The in gain. - - - - - The reverb mix. - - - - - The reverb time. - - - - - The high freq rt ratio. - - - - - Provides methods for enumerating Microsoft DirectX Media Objects. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Enumerates DMOs listed in the registry. The caller can search by category, media type, or both. - - - GUID that specifies which category of DMO to search. Use Guid.Empty to search every category. - See for a list of category guids. - - Flags that specify search criteria. - Array of input-Mediatypes. - Array of output-Mediatypes. - EnumDMO - - - - Enumerates DMOs listed in the registry. - - - GUID that specifies which category of DMO to search. Use Guid.Empty to search every category. - See for a list of category guids. - - Flags that specify search criteria. - An that can be used to iterate through the enumerated DMOs. - - - - Retrieves a specified number of items in the enumeration sequence. - - Number of items to retrieve. - Array that is filled with the CLSIDs of the enumerated DMOs. - Array that is filled with the friendly names of the enumerated DMOs. - Actual number of items retrieved. - HRESULT - - - - Retrieves a specified number of items in the enumeration sequence. - - Number of items to retrieve. - Array of enumerated DMOs. - - - - Skips over a specified number of items in the enumeration sequence. - - Number of items to skip. - HRESULT - - - - Skips over a specified number of items in the enumeration sequence. - - Number of items to skip. - - - - Resets the enumeration sequence to the beginning. - - HRESULT - - - - Resets the enumeration sequence to the beginning. - - - - - This method is not implemented. - - Reserved - - - - - This method is not implemented. - - This method is not implemented an will throw an with the error code . - - - - The interface provides methods for manipulating a data buffer. - - For more information, . - - - - The SetLength method specifies the length of the data currently in the buffer. - - Size of the data, in bytes. The value must not exceed the buffer's maximum size. Call the method to obtain the maximum size. - HRESULT - - - - The method retrieves the maximum number of bytes this buffer can hold. - - A variable that receives the buffer's maximum size, in bytes. - HRESULT - - - - The method retrieves the buffer and the size of the valid data in the buffer. - - Address of a pointer that receives the buffer array. Can be if is not . - Pointer to a variable that receives the size of the valid data, in bytes. Can be if is not . - HRESULT - - - - Defines flags that describe an input buffer. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375501(v=vs.85).aspx - - - - - None - - - - - The beginning of the data is a synchronization point. - - - - - The buffer's time stamp is valid. The buffer's indicated time length is valid. - - - - - The buffer's indicated time length is valid. - - - - - InputStatusFlags. - See also: http://msdn.microsoft.com/en-us/library/windows/desktop/dd406950(v=vs.85).aspx - - - - - None - - - - - The stream accepts data. - - - - - Defines flags that describe an input stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375502(v=vs.85).aspx. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do - not contain partial samples. - - - - - Each buffer contains exactly one sample. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can - discard data for this stream without copying it to an output buffer. - - - - - The DMO performs lookahead on the incoming data, and may hold multiple input buffers for - this stream. - - - - - Defines flags that describe an output buffer. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375508(v=vs.85).aspx. - - - - - None - - - - - The beginning of the data is a synchronization point. A synchronization point is a - random access point. For encoded video, this a sample that can be used as a decoding - start point (key frame). For uncompressed audio or video, every sample is a - synchronization point. - - - - - The buffer's time stamp is valid. The buffer's indicated time length is valid. - - - - - The buffer's indicated time length is valid. - - - - - There is still input data available for processing, but the output buffer is full. - - - - - Flags that describe an output stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375509(v=vs.85).aspx. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do - not contain partial samples. - - - - - Each buffer contains exactly one sample. - - - - - All the samples in this stream are the same size. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can - discard data for this stream without copying it to an output buffer. - - - - - The stream is optional. An optional stream is discardable. Also, the application can - ignore this stream entirely; it does not have to set the media type for the stream. - Optional streams generally contain additional information, or data not needed by all - applications. - - - - - Defines flags that specify output processing requests. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375511(v=vs.85).aspx - - - - - None - - - - - Discard the output when the pointer to the output buffer is NULL. - - - - - Defines flags for setting the media type on a stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375514(v=vs.85).aspx. - - - - - None - - - - - Test the media type but do not set it. - - - - - Clear the media type that was set for the stream. - - - - - Default-Implementation of the IMediaBuffer interface. - For more information, see . - - - - - Creates a MediaBuffer and allocates the specified number of bytes in the memory. - - The number of bytes which has to be allocated in the memory. - - - - Gets the maximum number of bytes this buffer can hold. - - - - - Gets the length of the data currently in the buffer. - - - - - Frees the allocated memory of the internally used buffer. - - - - - The SetLength method specifies the length of the data currently in the buffer. - - Size of the data, in bytes. The value must not exceed the buffer's maximum size. Call the method to obtain the maximum size. - HRESULT - - - - The method retrieves the maximum number of bytes this buffer can hold. - - A variable that receives the buffer's maximum size, in bytes. - HRESULT - - - - The method retrieves the buffer and the size of the valid data in the buffer. - - Address of a pointer that receives the buffer array. Can be if is not . - Pointer to a variable that receives the size of the valid data, in bytes. Can be if is not . - HRESULT - - - - Writes a sequence of bytes to the internally used buffer. - - - Array of bytes. The Write method copies data from the specified array of bytes to the internally - used buffer. - - - Zero-based bytes offset in the specified buffer at which to begin copying bytes to the internally - used buffer. - - The number of bytes to be copied. - - - - Reads a sequence of bytes from the internally used buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - - - - Reads a sequence of bytes from the buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - - - - Reads a sequence of bytes from the buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - Zero-based offset inside of the source buffer at which to begin copying data. - - - - Frees the allocated memory of the internally used buffer. - - - - - Frees the allocated memory of the internally used buffer. - - - - - Represents a DMO MediaObject. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the number of input streams. - - - - - Gets the number of output streams. - - - - - Creates a MediaObject from any ComObjects. - - - Internally the IUnknown::QueryInterface method of the specified COM Object gets called. - - The COM Object to cast to a . - The . - - - - Retrieves the number of input and output streams. - - A variable that receives the number of input streams. - A variable that receives the number of output streams. - HRESULT - - - - Retrieves the number of input and output streams. - - A variable that receives the number of input streams. - A variable that receives the number of output streams. - - - - Retrieves information about a specified input stream. - - Zero-based index of an input stream on the DMO. - Bitwise combination of zero or more flags. - HRESULT - - - - Retrieves information about a specified input stream. - - Zero-based index of an input stream on the DMO. - The retrieved information about the specified input stream. - - - - Retrieves information about a specified output stream. - - Zero-based index of an output stream on the DMO. - Bitwise combination of zero or more flags. - HRESULT - - - - Retrieves information about a specified output stream. - - Zero-based index of an output stream on the DMO. - The information about the specified output stream. - - - - Retrieves a preferred media type for a specified input stream. - - Zero-based index on the set of acceptable media types. - - Can be null to check whether the typeIndex argument is in range. If not, the errorcode will be - (0x80040206). - - Zero-based index of an input stream on the DMO. - HRESULT - - - - Retrieves a preferred media type for a specified input stream. - - Zero-based index on the set of acceptable media types. - Zero-based index of an input stream on the DMO. - The preferred media type for the specified input stream. - - - - Retrieves a preferred media type for a specified output stream. - - Zero-based index on the set of acceptable media types. - - Can be null to check whether the typeIndex argument is in range. If not, the errorcode will be - (0x80040206). - - Zero-based index of an output stream on the DMO. - HRESULT - - - - Retrieves a preferred media type for a specified output stream. - - Zero-based index on the set of acceptable media types. - Zero-based index of an output stream on the DMO. - The preferred media type for the specified output stream. - - - - Sets the media type on an input stream, or tests whether a media type is acceptable. - - Zero-based index of an input stream on the DMO. - The new mediatype. - Bitwise combination of zero or more flags from the enumeration. - HRESULT - - - - Clears the inputtype for a specific input stream. - - Zero-based index of an input stream on the DMO. - - - - Sets the media type on an input stream. - - Zero-based index of an input stream on the DMO. - The new mediatype. - Bitwise combination of zero or more flags from the enumeration. - - - - Sets the media type on an input stream. - - Zero-based index of an input stream on the DMO. - The format to set as the new for the specified input stream. - - - - Tests whether the given is supported. - - Zero-based index of an input stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Tests whether the given is supported. - - Zero-based index of an input stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The new . - Bitwise combination of zero or more flags from the enumeration. - HRESULT - - - - Clears the outputtype for a specific output stream. - - Zero-based index of an output stream on the DMO. - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The new . - Bitwise combination of zero or more flags from the enumeration. - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The format to set as the new for the specified output stream. - - - - Tests whether the given is supported as OutputFormat. - - Zero-based index of an output stream on the DMO. - WaveFormat - True = supported, False = not supported - - - - Tests whether the given is supported. - - Zero-based index of an output stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Retrieves the media type that was set for an input stream, if any. - - Zero-based index of an input stream on the DMO. - A variable that receives the retrieved media type of the specified input stream. - HRESULT - - - - Retrieves the media type that was set for an input stream, if any. - - Zero-based index of an input stream on the DMO. - The retrieved media type of the specified input stream. - - - - Retrieves the media type that was set for an output stream, if any. - - Zero-based index of an output stream on the DMO. - A variable that receives the retrieved media type of the specified output stream. - HRESULT - - - - Retrieves the media type that was set for an output stream, if any. - - Zero-based index of an output stream on the DMO. - The media type that was set for the specified output stream. - - - - Retrieves the buffer requirements for a specified input stream. - - Zero-based index of an input stream on the DMO. - Minimum size of an input buffer for this stream, in bytes. - - The maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does - not perform a lookahead on the stream, the value is zero. - - - The required buffer alignment, in bytes. If the input stream has no alignment requirement, the - value is 1. - - HRESULT - - - - This method retrieves the buffer requirements for a specified input stream. - - Zero-based index of an input stream on the DMO. - The buffer requirements for the specified input stream. - - - - This method retrieves the buffer requirements for a specified output stream. - - Zero-based index of an output stream on the DMO. - Minimum size of an output buffer for this stream, in bytes. - - The required buffer alignment, in bytes. If the output stream has no alignment requirement, the - value is 1. - - HRESULT - - - - This method retrieves the buffer requirements for a specified output stream. - - Zero-based index of an output stream on the DMO. - The buffer requirements for the specified output stream. - - - - Retrieves the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Receives the maximum latency in reference type units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - - - - Retrieves the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - The maximum latency in reference type units. Unit = REFERENCE_TIME = 100 nanoseconds - - - - Sets the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Maximum latency in reference time units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - For the definition of maximum latency, see . - - - - Sets the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Maximum latency in reference time units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - For the definition of maximum latency, see . - - - - This method flushes all internally buffered data. - - HRESULT - - - - This method flushes all internally buffered data. - - - - - Signals a discontinuity on the specified input stream. - - Zero-based index of an input stream on the DMO. - HRESULT - A discontinuity represents a break in the input. A discontinuity might occur because no more data is expected, the format is changing, or there is a gap in the data. - After a discontinuity, the DMO does not accept further input on that stream until all pending data has been processed. - The application should call the method until none of the streams returns the (see ) flag. - This method might fail if it is called before the client sets the input and output types on the DMO. - - - - Signals a discontinuity on the specified input stream. - - Zero-based index of an input stream on the DMO. - A discontinuity represents a break in the input. A discontinuity might occur because no more data is expected, the format is changing, or there is a gap in the data. - After a discontinuity, the DMO does not accept further input on that stream until all pending data has been processed. - The application should call the method until none of the streams returns the (see ) flag. - This method might fail if it is called before the client sets the input and output types on the DMO. - - - - Allocates any resources needed by the DMO. Calling this method is always - optional. - - HRESULT - - For more information, see . - - - - - Allocates any resources needed by the DMO. Calling this method is always - optional. - - - For more information, see . - - - - - Frees resources allocated by the DMO. Calling this method is always optional. - - HREUSLT - - For more information, see . - - - - - Frees resources allocated by the DMO. Calling this method is always optional. - - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - The queried input status. - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - A variable that receives either or . - HRESULT - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - If the return value is True, the input stream can accept more input data. Otherwise false. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a valid - time stamp, set the Time flag in the flags parameter. - - - Reference time specifying the duration of the data in the buffer. If the buffer has a valid - time stamp, set the TimeLength flag in the flags parameter. - - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a valid - time stamp, set the Time flag in the flags parameter. - - - Reference time specifying the duration of the data in the buffer. If the buffer has a valid - time stamp, set the TimeLength flag in the flags parameter. - - HRESULT - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - Number of output buffers. - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - Number of output buffers. - Receives a reserved value (zero). The application should ignore this value. - HREUSLT - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - - Value that specifies whether to acquire or release the lock. If the value is non-zero, a lock is - acquired. If the value is zero, the lock is released. - - HRESULT - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - - Value that specifies whether to acquire or release the lock. If the value is non-zero, a lock is - acquired. If the value is zero, the lock is released. - - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - A disposable object which can be used to unlock the by calling its method. - - This example shows how to use the method: - - partial class TestClass - { - public void DoStuff(MediaObject mediaObject) - { - using(var lock = mediaObject.Lock()) - { - //do some stuff - } - //the mediaObject gets automatically unlocked by the using statement after "doing your stuff" - } - } - - - - - - Used to unlock a after locking it by calling the method. - - - - - Unlocks the locked . - - - - - The structure describes the format of the data used by a stream in a Microsoft DirectX Media Object (DMO). - For more information, . - - - - - Creates a MediaType based on a given WaveFormat. Don't forget to call Free() for the returend MediaType. - - WaveFormat to create a MediaType from. - Dmo MediaType - - - - A GUID identifying the stream's major media type. This must be one of the DMO Media - Types(see ). - - - - - Subtype GUID of the stream. - - - - - If TRUE, samples are of a fixed size. This field is informational only. For audio, it is - generally set to TRUE. For video, it is usually TRUE for uncompressed video and FALSE - for compressed video. - - - - - If TRUE, samples are compressed using temporal (interframe) compression. A value of TRUE - indicates that not all frames are key frames. This field is informational only. - - - - - Size of the sample, in bytes. For compressed data, the value can be zero. - - - - - GUID specifying the format type. The pbFormat member points to the corresponding format - structure. (see ) - - - - - Size of the format block of the media type. - - - - - Pointer to the format structure. The structure type is specified by the formattype - member. The format structure must be present, unless formattype is GUID_NULL or - FORMAT_None. - - - - - Frees the allocated members of a media type structure by calling the MoFreeMediaType function. - - - - - Sets properties on the audio resampler DSP. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - - - - Specifies the channel matrix. - - An array of floating-point values that represents a channel conversion matrix. - - Use the class to build the channel-conversation-matrix and its - method to convert the channel-conversation-matrix into a - compatible array which can be passed as value for the parameter. - For more information, - . - - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - HRESULT - - - - Specifies the channel matrix. - - An array of floating-point values that represents a channel conversion matrix. - HRESULT - - Use the class to build the channel-conversation-matrix and its - method to convert the channel-conversation-matrix into a - compatible array which can be passed as value for the parameter. - For more information, - . - - - - - DirectX Media Object COM Exception - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - HRESULT - - - - Used to apply a bandpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Represents a biquad-filter. - - - - - The a0 value. - - - - - The a1 value. - - - - - The a2 value. - - - - - The b1 value. - - - - - The b2 value. - - - - - The q value. - - - - - The gain value in dB. - - - - - The z1 value. - - - - - The z2 value. - - - - - Gets or sets the frequency. - - value;The samplerate has to be bigger than 2 * frequency. - - - - Gets the sample rate. - - - - - The q value. - - - - - Gets or sets the gain value in dB. - - - - - Initializes a new instance of the class. - - The sample rate. - The frequency. - - sampleRate - or - frequency - or - q - - - - - Initializes a new instance of the class. - - The sample rate. - The frequency. - The q. - - sampleRate - or - frequency - or - q - - - - - Processes a single sample and returns the result. - - The input sample to process. - The result of the processed sample. - - - - Processes multiple samples. - - The input samples to process. - The result of the calculation gets stored within the array. - - - - Calculates all coefficients. - - - - - Represents an element inside of a . - - - - - Gets the assigned input channel of the . - - - - - Gets the assigned output channel of the . - - - - - Gets or sets the coefficient in the range from 0.0f to 1.0f. - - - - - Initializes a new instance of the class. - - The input channel. - The output channel. - - - - Provides an Fast Fourier Transform implementation including a few utils method which are commonly used in combination with FFT (e.g. the hamming window function). - - - - - Obsolete. Use the property instead. - - - - The intensity of the complex value . - sqrt(r² + i²) - - - - Implementation of the Hamming Window using double-precision floating-point numbers. - - Current index of the input signal. - Window width. - Hamming window multiplier. - - - - Hamming window implementation using single-precision floating-point numbers. - - Current index of the input signal. - Window width. - Hamming Window multiplier. - - - - Computes an Fast Fourier Transform. - - Array of complex numbers. This array provides the input data and is used to store the result of the FFT. - The exponent n. - The to use. Use as the default value. - - - - Computes an Fast Fourier Transform. - - Array of complex numbers. This array provides the input data and is used to store the result of the FFT. - The exponent n. - The to use. Use as the default value. - - - - Provides FFT calculations. - - - Usage: Use the -method to input samples to the . Use the method to - calculate the Fast Fourier Transform. - - - - - Gets the specified fft size. - - - - - Gets a value which indicates whether new data is available. - - - - - Initializes a new instance of the class. - - Number of channels of the input data. - The number of bands to use. - is less than zero. - - - - Adds a and a sample to the . The and the sample will be merged together. - - The sample of the left channel. - The sample of the right channel. - - - - Adds multiple samples to the . - - Float Array which contains samples. - Number of samples to add to the . - - - - Calculates the Fast Fourier Transform and stores the result in the . - - The output buffer. - Returns a value which indicates whether the Fast Fourier Transform got calculated. If there have not been added any new samples since the last transform, the FFT won't be calculated. True means that the Fast Fourier Transform got calculated. - - - - Calculates the Fast Fourier Transform and stores the result in the . - - The output buffer. - Returns a value which indicates whether the Fast Fourier Transform got calculated. If there have not been added any new samples since the last transform, the FFT won't be calculated. True means that the Fast Fourier Transform got calculated. - - - - Fft mode. - - - - - Forward - - - - - Backward - - - - - Defines FFT data size constants that can be used for FFT calculations. - Note that only the half of the specified size can be used for visualizations. - - - - - 64 bands. - - - - - 128 bands. - - - - - 256 bands. - - - - - 512 bands. - - - - - 1024 bands. - - - - - 2014 bands. - - - - - 4096 bands. - - - - - 8192 bands. - - - - - 16384 bands. - - - - - Used to apply a highpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply a highshelf-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - Gain value in dB. - - - - Calculates all coefficients. - - - - - Used to apply a lowpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply a lowshelf-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - Gain value in dB. - - - - Calculates all coefficients. - - - - - Used to apply a notch-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply an peak-filter to a signal. - - - - - Gets or sets the bandwidth. - - - - - Initializes a new instance of the class. - - The sampleRate of the audio data to process. - The center frequency to adjust. - The bandWidth. - The gain value in dB. - - - - Calculates all coefficients. - - - - - Represents a channel conversion matrix. For more information, see - . - - - - - Defines a stereo to 5.1 surround (with rear) channel conversion matrix. - - - - - Defines a 5.1 surround (with rear) to stereo channel conversion matrix. - - - - - Defines a stereo to 5.1 surround (with side) channel conversion matrix. - - - - - Defines a 5.1 surround (with side) to stereo channel conversion matrix. - - - - - Defines a stereo to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to stereo channel conversion matrix. - - - - - Defines a mono to 5.1 surround (with rear) channel conversion matrix. - - - - - Defines a 5.1 surround (with rear) to mono channel conversion matrix. - - - - - Defines a mono to 5.1 surround (with side) channel conversion matrix. - - - - - Defines a 5.1 surround (with side) to mono channel conversion matrix. - - - - - Defines a mono to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround channel to mono conversion matrix. - - - - - Defines a stereo to mono conversion matrix. - - - - - Defines a mono to stereo conversion matrix. - - - - - Defines a 5.1 surround (with rear) to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to 5.1 surround (with rear) channel conversion matrix - - - - - Defines a 5.1 surround (with side) to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to 5.1 surround (with side) channel conversion matrix - - - - - Gets a to convert between the two specified s. - - The of the input stream. - The desired of the output stream. - A to convert between the two specified s. - equals - No accurate was found. - - - - Gets a to convert between the two specified formats. - - The input waveformat. - The output waveformat. - A to convert between the two specified formats. - If no channelmask could be found, the return value is null. - - The channelmask of the input format equals the channelmask of the output format. - No accurate was found. - - - - Initializes a new instance of the class. - - The of the input signal. - The of the output signal. - Invalid /. - - - - Gets the of the input signal. - - - - - Gets the of the output signal. - - - - - Gets the number of rows of the channel conversion matrix. - - - - - Gets the number of columns of the channel conversion matrix. - - - - - Gets the input signals number of channels. - - - The property always returns the same value as the - property. - - - - - Gets the output signals number of channels. - - - The property always returns the same value as the - property. - - - - - Gets or sets a of the . - - The zero-based index of the input channel. - The zero-based index of the output channel. - The of the at the specified position. - - - - Sets the channel conversion matrix. - The x-axis of the specifies the output channels. The y-axis - of the specifies the input channels. - - Channel conversion matrix to use. - - - - Returns a one dimensional array which contains the channel conversion matrix coefficients. - - A one dimensional array which contains the channel conversion matrix coefficients - - This method is primarily used in combination with the - method. - - - - - Flips the axis of the matrix and returns the new matrix with the flipped axis. - - A matrix with flipped axis. - - This could be typically used in the following scenario: There is a - 5.1 to stereo matrix. By using the method the 5.1 to stereo matrix can be - converted into a stereo to 5.1 matrix. - - - - - Resampler based on the which can change the number of channels based on a - . Supported since Windows XP. - - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - source - or - channelMatrix - or - outputFormat - - The number of channels of the source has to be equal to the number of input channels specified by the channelMatrix. - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - The destination sample rate. - - - - Gets the channel matrix. - - If any changes to the channel matrix are made, use the method to commit them. - - - - Commits all channel-matrix-changes. - - - - - Resampler based on the DmoResampler. Supported since Windows XP. - - - - - Initializes a new instance of the class. - - which has to get resampled. - The new output samplerate specified in Hz. - - - - Initializes a new instance of the class. - - which has to get resampled. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - - - Initializes a new instance of the class. - - which has to get resampled. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - True to ignore the position of the for more accurate seeking. The default value is True. - For more details see remarks. - - Since the resampler transforms the audio data of the to a different samplerate, - the position might differ from the actual amount of read data. In order to avoid that behavior set - to True. This will cause the property to return the number of actually read bytes. - Note that seeking the won't have any effect on the of the . - - - - Gets the new output format. - - - - - Gets or sets the position of the source. - - - - - Gets the length of the source. - - - - - Specifies the quality of the output. The valid range is from 1 to 60. - - Specifies the quality of the resampled output. The valid range is: 1 >= value <= 60. - - - - Reads a resampled sequence of bytes from the and advances the position within the - stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Disposes the allocated resources of the resampler but does not dispose the underlying source. - - - - - Disposes the . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Provides a basic fluent API for creating a source chain. - - - - - Appends a source to an already existing source. - - Input - Output - Already existing source. - Function which appends the new source to the already existing source. - The return value of the delegate. - - - - Appends a source to an already existing source. - - Input - Output - Already existing source. - Function which appends the new source to the already existing source. - Receives the return value. - The return value of the delegate. - - - - Changes the SampleRate of an already existing wave source. - - Already existing wave source whose sample rate has to be changed. - Destination sample rate. - Wave source with the specified . - - - - Changes the SampleRate of an already existing sample source. Note: This extension has to convert the - to a and back to a . - - Already existing sample source whose sample rate has to be changed. - Destination sample rate. - Sample source with the specified . - - - - Converts the specified wave source with n channels to a wave source with two channels. - Note: If the has only one channel, the - extension has to convert the to a and back to a - . - - Already existing wave source. - instance with two channels. - - - - Converts the specified sample source with n channels to a wave source with two channels. - Note: If the has more than two channels, the - extension has to convert the to a - and back to a . - - Already existing sample source. - instance with two channels. - - - - Converts the specified wave source with n channels to a wave source with one channel. - Note: If the has two channels, the extension - has to convert the to a and back to a - . - - Already existing wave source. - instance with one channel. - - - - Converts the specified sample source with n channels to a wave source with one channel. - Note: If the has only one channel, the - extension has to convert the to a and back to a - . - - Already existing sample source. - instance with one channels - - - - Appends a new instance of the class to the audio chain. - - The underlying which should be looped. - The new instance instance. - - - - Converts a SampleSource to either a Pcm (8, 16, or 24 bit) or IeeeFloat (32 bit) WaveSource. - - Sample source to convert to a wave source. - Bits per sample. - Wave source - - - - Converts a to IeeeFloat (32bit) . - - The to convert to a . - The wrapped around the specified . - - - - Converts a to a . - - The to convert to a . - The wrapped around the specified . - - - - Returns a thread-safe (synchronized) wrapper around the specified object. - - The object to synchronize. - Type of the argument. - The type of the data read by the Read method of the method. - A thread-safe wrapper around the specified object. - The is null. - - - - Defines a generic base for all readable audio streams. - - The type of the provided audio data. - - - - Reads a sequence of elements from the and advances the position within the - stream by the - number of elements read. - - - An array of elements. When this method returns, the contains the specified - array of elements with the values between and ( + - - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - The total number of elements read into the buffer. - - - - Provides the method. - - - - - Used to write down raw byte data. - - Byte array which contains the data to write down. - Zero-based offset in the . - Number of bytes to write. - - - - Defines the CLSID values for several common mediafoundation audio decoders. - - - - - CLSID_CMSDDPlusDecMFT - - - - - CLSID_CMSMPEGAudDecMFT - - - - - CMSAACDecMFT - - - - - CWMADecMediaObject - - - - - CALawDecMediaObject - - - - - ACM Wrapper - - - - - CWMAudioSpdTxDMO - - - - - CWMSPDecMediaObject - - - - - Wrapper - - - - - IMA ADPCM ACM Wrapper - - - - - CMP3DecMediaObject - - - - - ADPCM ACM Wrapper - - - - - see http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx - - - - - The is a generic decoder for all installed Mediafoundation codecs. - - - - - Initializes a new instance of the class. - - Uri which points to an audio source which can be decoded. - - - - Initializes a new instance of the class. - - Stream which provides the audio data to decode. - - - - Initializes a new instance of the class. - - Stream which provides the audio data to decode. - - - - Reads a sequence of bytes from the and advances the position within the - stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Disposes the . - - - - - Gets the format of the decoded audio data provided by the method. - - - - - Gets or sets the position of the output stream, in bytes. - - - - - Gets the total length of the decoded audio, in bytes. - - - - - Gets a value which indicates whether the seeking is supported. True means that seeking is supported. False means - that seeking is not supported. - - - - - Disposes the and its internal resources. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - A generic encoder for all installed Mediafoundation-Encoders. - - - - - Creates an new instance of the class. - - Mediatype of the source to encode. - Stream which will be used to store the encoded data. - The format of the encoded data. - See container type. For a list of all available container types, see . - - - - Gets the total duration of all encoded data. - - - - - Gets the underlying stream which operates as encoding target. - - - - - Gets the media type of the encoded data. - - - - - Gets the which is used to write to the . - - - - - Gets the destination stream which is used to store the encoded audio data. - - - - - Releases all resources used by the encoder and finalizes encoding. - - - - - Encodes raw audio data. - - A byte-array which contains raw data to encode. - The zero-based byte offset in buffer at which to begin encoding bytes to the underlying stream. - The number of bytes to encode. - - - - Sets and initializes the targetstream for the encoding process. - - Stream which should be used as the targetstream. - Mediatype of the raw input data to encode. - Mediatype of the encoded data. - Container type which should be used. - - - - Disposes the . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - Encodes the whole with the specified . The encoding process - stops as soon as the method of the specified - returns 0. - - The encoder which should be used to encode the audio data. - The which provides the raw audio data to encode. - - - - Returns a new instance of the class, configured as mp3 encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as mp3 encoder. - - - - Returns a new instance of the class, configured as mp3 encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as mp3 encoder. - - - - Returns a new instance of the class, configured as wma encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as wma encoder. - - - - Returns a new instance of the class, configured as wma encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as wma encoder. - - - - Returns a new instance of the class, configured as aac encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as aac encoder. - - - - Returns a new instance of the class, configured as aac encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as aac encoder. - - - - Tries to find the which fits best the requested format specified by the parameters: - , , and - . - - The audio subtype. For more information, see the class. - The requested sample rate. - The requested number of channels. - The requested bit rate. - - A which fits best the requested format. If no mediatype could be found the - method returns null. - - - - - Returns all s available for encoding the specified . - - The audio subtype to search available s for. - Available s for the specified . If the returns an empty array, no encoder for the specified was found. - - - - Enables the application to defer the creation of an object. This interface is exposed by activation objects. - - For more information, see . - - - - Initializes a new instance of the class. - - The underlying native pointer. - - - - Creates the object associated with this activation object. - - Interface identifier (IID) of the requested interface. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Creates the object associated with this activation object. - - - - The type of the com object to create. - Interface identifier (IID) of the requested interface. - An instance of the requested interface. - - - - Creates the object associated with this activation object. - - Interface identifier (IID) of the requested interface. - A pointer to the requested interface. The caller must release the interface. - - - - Shuts down the created object. - - - HRESULT - - - - Shuts down the created object. - - - - - Detaches the created object from the activation object. - - - HRESULT - - - - Detaches the created object from the activation object. - - - - - Gets the name of the MFT. - - - - - Gets the available input types. - - - - - Gets the available output types. - - - - - Contains media type information for registering a Media Foundation transform (MFT). - - - - - The major media type. - - - - - The media subtype. - - - - - Represents a byte stream from some data source, which might be a local file, a network file, or some other source. The interface supports the typical stream operations, such as reading, writing, and seeking. - - - - - Gets the characteristics of the . - - - - - Gets or sets the length of the stream in bytes. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class which acts as a wrapper for the specified to use it in a media foundation context. - - The stream to wrap for media foundation usage. - A value indicating whether the should be closed when the - method is being called. - - - - Retrieves the characteristics of the byte stream. - - Receives a bitwise OR of zero or more flags. - HRESULT - Use the property for easier usage with automated error handling. - - - - Retrieves the length of the stream. - - Receives the length of the stream, in bytes. If the length is unknown, this value is -1. - HRESULT - Use the property for easier usage with automated error handling. - - - - Sets the length of the stream. - - The length of the stream in bytes. - HRESULT - Use the property for easier usage with automated error handling. - - - - Retrieves the current read or write position in the stream. - - The current position, in bytes. - HRESULT - - - - Sets the current read or write position. - - New position in the stream, as a byte offset from the start of the stream. - HRESULT - - - - Gets or sets the current read/write position in bytes. - - - - - Gets a value indicating whether the has reached the end of the stream. - - - - - Queries whether the current position has reached the end of the stream. - - Receives the value if the end of the stream has been reached, or otherwise. - HREUSLT - - - - Reads data from the stream. - - Pointer to a buffer that receives the data. The caller must allocate the buffer. - Size of the buffer in bytes. - Receives the number of bytes that are copied into the buffer. - HRESULT - - - - Reads data from the stream. - - The buffer that receives the data. - The number of bytes to read. - HRESULT - buffer is null. - count is bigger than the length of the buffer. - - - - Begins an asynchronous read operation from the stream. - - Pointer to a buffer that receives the data. The caller must allocate the buffer. - Size of the buffer in bytes. - Pointer to the IMFAsyncCallback interface of a callback object. The caller must implement this interface. - Pointer to the IUnknown interface of a state object, defined by the caller. Can be Zero. - HRESULT - - - - Completes an asynchronous read operation. - - Pointer to the IMFAsyncResult interface. Pass in the same pointer that your callback object received in the IMFAsyncCallback::Invoke method. - Receives the number of bytes that were read. - HRESULT - - - - Writes data to the stream. - - Pointer to a buffer that contains the data to write. - Size of the buffer in bytes. - Receives the number of bytes that are written. - HRESULT - - - - Writes data to the stream. - - Buffer that contains the data to write. - The number of bytes to write. - The number of bytes that were written. - buffer is null. - count is bigger than the length of the buffer. - - - - Begins an asynchronous write operation to the stream. - - Pointer to a buffer containing the data to write. - Size of the buffer in bytes. - Pointer to the IMFAsyncCallback interface of a callback object. The caller must implement this interface. - Pointer to the IUnknown interface of a state object, defined by the caller. Can be Zero. - HRESULT - - - - Completes an asynchronous write operation. - - Pointer to the IMFAsyncResult interface. Pass in the same pointer that your callback object received in the IMFAsyncCallback::Invoke method. - Receives the number of bytes that were written. - HRESULT - - - - Moves the current position in the stream by a specified offset. - - Specifies the origin of the seek as a member of the enumeration. The offset is calculated relative to this position. - Specifies the new position, as a byte offset from the seek origin. - Specifies whether all pending I/O requests are canceled after the seek request completes successfully. - Receives the new position after the seek. - The new position after the seek. - - - - Moves the current position in the stream by a specified offset. - - Specifies the origin of the seek as a member of the enumeration. The offset is calculated relative to this position. - Specifies the new position, as a byte offset from the seek origin. - Specifies whether all pending I/O requests are canceled after the seek request completes successfully. - The new position after the seek. - - - - Clears any internal buffers used by the stream. If you are writing to the stream, the buffered data is written to the underlying file or device. - - HRESULT - - - - Clears any internal buffers used by the stream. If you are writing to the stream, the buffered data is written to the underlying file or device. - - - - - Closes the stream and releases any resources associated with the stream, such as sockets or file handles. This method also cancels any pending asynchronous I/O requests. - - HRESULT - - - - Closes the stream and releases any resources associated with the stream, such as sockets or file handles. This method also cancels any pending asynchronous I/O requests. - - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Defines the characteristics of a . - - - - - None - - - - - The byte stream can be read. - - - - - The byte stream can be written to. - - - - - The byte stream can be seeked. - - - - - The byte stream is from a remote source, such as a network. - - - - - The byte stream represents a file directory. - - - - - Seeking within this stream might be slow. For example, the byte stream might download from a network. - - - - - The byte stream is currently downloading data to a local cache. Read operations on the byte stream might take longer until the data is completely downloaded.This flag is cleared after all of the data has been downloaded. - If the flag is also set, it means the byte stream must download the entire file sequentially. Otherwise, the byte stream can respond to seek requests by restarting the download from a new point in the stream. - - - - - Another thread or process can open this byte stream for writing. If this flag is present, the length of the byte stream could change while it is being read. - - Requires Windows 7 or later. - - - - The byte stream is not currently using the network to receive the content. Networking hardware may enter a power saving state when this bit is set. - - Requires Windows 8 or later. - - - - Specifies the origin for a seek request. - - - - - The seek position is specified relative to the start of the stream. - - - - - The seek position is specified relative to the current read/write position in the stream. - - - - - Provides the functionality to enumerate Mediafoundation-Transforms. - - - - - Enumerates Mediafoundation-Transforms that match the specified search criteria. - - A that specifies the category of MFTs to enumerate. - For a list of MFT categories, see . - The bitwise OR of zero or more flags from the enumeration. - Specifies an input media type to match. This parameter can be null. If null, all input types are matched. - Specifies an output media type to match. This parameter can be null. If null, all output types are matched. - A that can be used to iterate through the MFTs. - - - - Enumerates Media Foundation transforms (MFTs) in the registry. - - A that specifies the category of MFTs to enumerate. - For a list of MFT categories, see . - Specifies an input media type to match. This parameter can be null. If null, all input types are matched. - Specifies an output media type to match. This parameter can be null. If null, all output types are matched. - An array of CLSIDs. For more information, see . - On Windows 7/Windows Server 2008 R2, use the method instead. - - - - Defines the characteristics of a media source. - - For more information, see . - - - - This flag indicates a data source that runs constantly, such as a live presentation. If the source is stopped and then restarted, there will be a gap in the content. - - - - - The media source supports seeking. - - - - - The source can pause. - - - - - The media source downloads content. It might take a long time to seek to parts of the content that have not been downloaded. - - - - - The media source delivers a playlist, which might contain more than one entry. - - Requires Windows 7 or later. - - - - The media source can skip forward in the playlist. Applies only if the flag is present. - - Requires Windows 7 or later. - - - - The media source can skip backward in the playlist. Applies only if the flag is present. - - Requires Windows 7 or later. - - - - The media source is not currently using the network to receive the content. Networking hardware may enter a power saving state when this bit is set. - - Requires Windows 8 or later. - - - - Defines common audio subtypes. - - - - - Advanced Audio Coding (AAC). - - - - - Not used - - - - - Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). - - - - - Encrypted audio data used with secure audio path. - - - - - Digital Theater Systems (DTS) audio. - - - - - Uncompressed IEEE floating-point audio. - - - - - MPEG Audio Layer-3 (MP3). - - - - - MPEG-1 audio payload. - - - - - Windows Media Audio 9 Voice codec. - - - - - Uncompressed PCM audio. - - - - - Windows Media Audio 9 Professional codec over S/PDIF. - - - - - Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. - - - - - Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. - - - - - Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. - - - - - Dolby Digital (AC-3). - - - - - MPEG-4 and AAC Audio Types - - - - - Dolby Audio Types - - - - - Dolby Audio Types - - - - - μ-law coding - - - - - Adaptive delta pulse code modulation (ADPCM) - - - - - Dolby Digital Plus formatted for HDMI output. - - - - - MSAudio1 - unknown meaning - Reference : wmcodecdsp.h - - - - - IMA ADPCM ACM Wrapper - - - - - WMSP2 - unknown meaning - Reference: wmsdkidl.h - - - - - Currently no flags are defined. - - - - - None - - - - - Implemented by the Microsoft Media Foundation sink writer object. - - - - - Stream index to selected all streams. - - - - - MF_SINK_WRITER_MEDIASINK constant. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class with a underlying . - - The underlying to use. - Attributes to configure the . For more information, see . Use null/nothing as the default value. - - - - Adds a stream to the sink writer. - - - The target mediatype which specifies the format of the samples that will be written to the file. It does not need to match the input format. To set the input format, call . - Receives the zero-based index of the new stream. - HRESULT - - - - Adds a stream to the sink writer. - - The target mediatype which specifies the format of the samples that will be written to the file. It does not need to match the input format. To set the input format, call . - The zero-based index of the new stream. - - - - Sets the input format for a stream on the sink writer. - - - The zero-based index of the stream. The index is returned by the method. - The input media type that specifies the input format. - An attribute store. Use the attribute store to configure the encoder. This parameter can be NULL. - HRESULT - - - - Sets the input format for a stream on the sink writer. - - The zero-based index of the stream. The index is returned by the method. - The input media type that specifies the input format. - An attribute store. Use the attribute store to configure the encoder. This parameter can be NULL. - - - - Initializes the sink writer for writing. - - - HRESULT - - - - Initializes the sink writer for writing. - - - - - Delivers a sample to the sink writer. - - - The zero-based index of the stream for this sample. - The sample to write. - HRESULT - You must call before calling this method. - - - - Delivers a sample to the sink writer. - - The zero-based index of the stream for this sample. - The sample to write. - You must call before calling this method. - - - - Indicates a gap in an input stream. - - - The zero-based index of the stream. - The position in the stream where the gap in the data occurs. The value is given in 100-nanosecond units, relative to the start of the stream. - HRESULT - - - - Indicates a gap in an input stream. - - The zero-based index of the stream. - The position in the stream where the gap in the data occurs. The value is given in 100-nanosecond units, relative to the start of the stream. - - - - Places a marker in the specified stream. - - - The zero-based index of the stream. - Pointer to an application-defined value. The value of this parameter is returned to the caller in the pvContext parameter of the caller's IMFSinkWriterCallback::OnMarker callback method. The application is responsible for any memory allocation associated with this data. This parameter can be NULL. - HRESULT - - - - Places a marker in the specified stream. - - The zero-based index of the stream. - Pointer to an application-defined value. The value of this parameter is returned to the caller in the pvContext parameter of the caller's IMFSinkWriterCallback::OnMarker callback method. The application is responsible for any memory allocation associated with this data. This parameter can be NULL. - - - - Notifies the media sink that a stream has reached the end of a segment. - - - The zero-based index of a stream, or to signal that all streams have reached the end of a segment. - HRESULT - - - - Notifies the media sink that a stream has reached the end of a segment. - - The zero-based index of a stream, or to signal that all streams have reached the end of a segment. - - - - Flushes one or more streams. - - - The zero-based index of the stream to flush, or to flush all of the streams. - HRESULT - - - - Flushes one or more streams. - - The zero-based index of the stream to flush, or to flush all of the streams. - - - - Completes all writing operations on the sink writer. - - - HRESULT - - - - Completes all writing operations on the sink writer. - - Renamed from 'Finalize' to 'FinalizeWriting' to suppress "CS0465 warning". - - - - Queries the underlying media sink or encoder for an interface. - - - The zero-based index of a stream to query, or to query the media sink itself. - A service identifier GUID, or . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls IMFGetService::GetService. - For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Queries the underlying media sink or encoder for an interface. - - The zero-based index of a stream to query, or to query the media sink itself. - A service identifier GUID, or . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls IMFGetService::GetService. - For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - A pointer to the requested interface. The caller must release the interface. - - - - Gets statistics about the performance of the sink writer. - - The zero-based index of a stream to query, or to query the media sink itself. - Receives statistics about the performance of the sink writer. - HRESULT - - - - Gets statistics about the performance of the sink writer. - - The zero-based index of a stream to query, or to query the media sink itself. - Statistics about the performance of the sink writer. - - - - Contains statistics about the performance of the sink writer. - - - - - The size of the structure, in bytes. - - - - - The time stamp of the most recent sample given to the sink writer. The sink writer updates this value each time the application calls . - - - - - The time stamp of the most recent sample to be encoded. The sink writer updates this value whenever it calls IMFTransform::ProcessOutput on the encoder. - - - - - The time stamp of the most recent sample given to the media sink. The sink writer updates this value whenever it calls IMFStreamSink::ProcessSample on the media sink. - - - - - The time stamp of the most recent stream tick. The sink writer updates this value whenever the application calls . - - - - - The system time of the most recent sample request from the media sink. The sink writer updates this value whenever it receives an MEStreamSinkRequestSample event from the media sink. The value is the current system time. - - - - - The number of samples received. - - - - - The number of samples encoded. - - - - - The number of samples given to the media sink. - - - - - The number of stream ticks received. - - - - - The amount of data, in bytes, currently waiting to be processed. - - - - - The total amount of data, in bytes, that has been sent to the media sink. - - - - - The number of pending sample requests. - - - - - The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. - - - - - The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder. - - - - - The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. - - - - - Defines flags that indicate the status of the method. - - - - - None - - - - - An error occurred. If you receive this flag, do not make any further calls to - methods. - - - - - The source reader reached the end of the stream. - - - - - One or more new streams were created. - - - - - The native format has changed for one or more streams. The native format is the format delivered by the media - source before any decoders are inserted. - - - - - The current media has type changed for one or more streams. To get the current media type, call the - method. - - - - - There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. - - - - - All transforms inserted by the application have been removed for a particular stream. This could be due to a - dynamic format change from a source or decoder that prevents custom transforms from being used because they cannot - handle the new media type. - - - - - Defines categories for Media Foundation transforms (MFTs). These categories are used to register and enumerate MFTs. - - For more information, see . - - - - Audio decoders. - - - - - Audio encoders. - - - - - Audio effects. - - - - - Video encoders. - - - - - Video decoders. - - - - - Video effects. - - - - - Video processors. - - - - - Demultiplexers. - - - - - Multiplexers. - - - - - Miscellaneous MFTs. - - - - - Defines flags for registering and enumeration Media Foundation transforms (MFTs). - - - - - None - - - - - The MFT performs synchronous data processing in software. - This flag does not apply to hardware transforms. - - - - - The MFT performs asynchronous data processing in software. See . - This flag does not apply to hardware transforms. - - - - - The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. MFTs in this category always process data asynchronously. - See . - - - - - Must be unlocked by the app before use. For more information, see . - - - - - For enumeration, include MFTs that were registered in the caller's process. - - - - - The MFT is optimized for transcoding rather than playback. - - - - - For enumeration, sort and filter the results. For more information, see . - - - - - Bitwise OR of all the flags, excluding . - - - - - Contains media type information for registering a Media Foundation transform (MFT). - - - - - The major media type. - - - - - The media subtype. - - - - - Defines flags for the method. - - - - - None - - - - - Retrieve any pending samples, but do not request any more samples from the media source. To get all of the pending samples, call with this flag until the method returns a NULL media sample pointer. - - - - - Defines the GUIDs for different types of container formats. - - - - - MPEG2 - - - - - ADTS - - - - - AC3 - - - - - 3GP - - - - - MP3 - - - - - MPEG4 - - - - - ASF - - - - - FMPEG4 - - - - - AMR - - - - - WAVE - - - - - AVI - - - - - Mediafoundation COM Exception - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not - . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Indicates the degree of similarity between the two media types. - - - - - None - - - - - The major types are the same. - - - - - The subtypes are the same, or neither media type has a subtype. - - - - - The attributes in one of the media types are a subset of the attributes in the other, and the values of these - attributes match, excluding the value of the MF_MT_USER_DATA, MF_MT_FRAME_RATE_RANGE_MIN, and - MF_MT_FRAME_RATE_RANGE_MAX attributes. - - - - - The user data is identical, or neither media type contains user data. User data is specified by the MF_MT_USER_DATA - attribute. - - - - - Represents a MediaFoundation-attribute. - - The type of the value of the - - - - Gets the key of the attribute. - - - - - Gets the value of the attribute. - - - - - Initializes a new instance of the class. - - The key. - The value. - - - - Specifies how to compare the attributes on two objects. - - - - - Check whether all the attributes in pThis exist in pTheirs and have the same data, where pThis is the object whose - method is being called and pTheirs is the object given in the pTheirs - parameter. - - - - - Check whether all the attributes in pTheirs exist in pThis and have the same data, where pThis is the object whose - method is being called and pTheirs is the object given in the pTheirs - parameter. - - - - - Check whether both objects have identical attributes with the same data. - - - - - Check whether the attributes that exist in both objects have the same data. - - - - - Find the object with the fewest number of attributes, and check if those attributes exist in the other object and - have the same data. - - - - - Provides a generic way to store key/value pairs on an object. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a initial size. - - The initial size in bytes. - - - - Gets or sets an item specified by its index. - - The index of the item. - - - - Gets or sets an item specified by its key. - - The key of the item. - - - - Gets the number of attributes that are set on this object. - - - - - Retrieves the value associated with a key. - - A that identifies which value to retrieve. - A pointer to a that receives the value. - HRESULT - - For more information, see - . - - - - - Retrieves the value associated with a key. - - A that identifies which value to retrieve. - A that receives the value. - - For more information, see - . - - - - - Retrieves the data type of the value associated with a key. - - that identifies which value to query. - The type of the item, associated with the specified . - HRESULT - - For more information, see - . - - - - - Retrieves the data type of the value associated with a key. - - that identifies which value to query. - The type of the item, associated with the specified . - - For more information, see - . - - - - - Queries whether a stored attribute value equals a specified . - - that identifies which value to query. - that contains the value to compare. - - Receives a boolean value indicating whether the attribute matches the value given in - . - - HRESULT - - For more information, see - . - - - - - Queries whether a stored attribute value equals a specified . - - that identifies which value to query. - that contains the value to compare. - A boolean value indicating whether the attribute matches the value given in . - - For more information, see - . - - - - - Compares the attributes on this object with the attributes on another object. - - The interface of the object to compare with this object. - A value, specifying the type of comparison to make. - - Receives a Boolean value. The value is if the two sets of - attributes match in the way specified by the parameter. Otherwise, the value is - . - - HRESULT - - - - Compares the attributes on this object with the attributes on another object. - - The interface of the object to compare with this object. - A value, specifying the type of comparison to make. - - Returns true if the two sets of attributes match in the way specified by the - parameter; otherwise, false. - - - - - Retrieves a UINT32 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a UINT32 value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a UINT32 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a UINT64 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a UINT64 value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a UINT64 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a Double value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a Double value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a Double value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a Guid value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a Guid value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a Guid value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves the length of a string value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , - this parameter receives the number of characters in the string, not including the terminating NULL character. - - HRESULT - - - - Retrieves the length of a string value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - If the key is found and the data type is , - this method returns the number of characters in the string, not including the terminating NULL character. - - - - Retrieves a wide-character string associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Pointer to a wide-character array allocated by the caller. - The array must be large enough to hold the string, including the terminating NULL character. - If the key is found and the value is a string type, the method copies the string into this buffer. - To find the length of the string, call . - - The size of the pwszValue array, in characters. This value includes the terminating NULL character. - Receives the number of characters in the string, excluding the terminating NULL character. This parameter can be NULL. - HRESULT - - - - Retrieves a wide-character string associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a wide-character string associated with a key. This method allocates the - memory for the string. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the value is a string type, this parameter receives a copy of the string. The caller must free the memory for the string by calling . - - - Receives the number of characters in the string, excluding the terminating NULL character. - HRESULT - - Don't use the method. Use the method instead. - - - - - Retrieves the length of a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this parameter receives the size of the array, in bytes. - HRESULT - - - - Retrieves the length of a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this method returns the size of the array, in bytes. - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - Pointer to a buffer allocated by the caller. If the key is found and the value is a byte array, the method copies the array into this buffer. To find the required size of the buffer, call . - The size of the buffer, in bytes. - Receives the size of the byte array. This parameter can be . - HRESULT - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - The byte array associated with the . - - - - Retrieves an object associated with a key. - - that identifies which value to retrieve. The attribute type must be . - The type of the object (type of the returned object -> see return value). - The object associated with the . - Type is null. - Internally this method retrieves a byte-array with gets converted to a instance of the specified . - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this parameter receives a copy of the array. - Receives the size of the array, in bytes. - HRESULT - - Obsolete, use the method instead. - - - - - Retrieves an interface pointer associated with a key. - - that identifies which value to retrieve. The attribute type must be . - Interface identifier (IID) of the interface to retrieve. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Associates an attribute value with a key. - - A that identifies the value to set. If this key already exists, the method overwrites the old value. - A that contains the attribute value. The method copies the value. The type must be one of the types listed in the enumeration. - HRESULT - - - - Associates an attribute value with a key. - - A that identifies the value to set. If this key already exists, the method overwrites the old value. - A that contains the attribute value. The method copies the value. The type must be one of the types listed in the enumeration. - - - - Removes a key/value pair from the object's attribute list. - - that identifies the value to delete. - HRESULT - - - - Removes a key/value pair from the object's attribute list. - - that identifies the value to delete. - - - - Removes all key/value pairs from the object's attribute list. - - HRESULT - - - - Removes all key/value pairs from the object's attribute list. - - - - - Associates a UINT32 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a UINT32 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a UINT64 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a UINT64 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a Double value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a Double value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a wide-character string with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - Internally this method stores a copy of the string specified by the parameter. - - - - Associates a wide-character string with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - Internally this method stores a copy of the string specified by the parameter. - - - - Associates a byte array with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - Pointer to a byte array to associate with this key. The method stores a copy of the array. - Size of the array, in bytes. - HRESULT - - - - Associates a byte array with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - The byte array to associate with the - - - - Associates an IUnknown pointer with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - IUnknown pointer to be associated with this key. - HRESULT - - - - Locks the attribute store so that no other thread can access it. If the attribute store is already locked by another thread, this method blocks until the other thread unlocks the object. After calling this method, call to unlock the object. - - HRESULT - - - - Locks the attribute store so that no other thread can access it. If the attribute store is already locked by another thread, this method blocks until the other thread unlocks the object. After calling this method, call to unlock the object. - - - - - Unlocks the attribute store after a call to the method. While the object is unlocked, multiple threads can access the object's attributes. - - HRESULT - - - - Unlocks the attribute store after a call to the method. While the object is unlocked, multiple threads can access the object's attributes. - - - - - Retrieves the number of attributes that are set on this object. - - Receives the number of attributes. - HRESULT - - - - Retrieves the number of attributes that are set on this object. - - Returns the number of attributes. - - - - Retrieves an attribute at the specified index. - - Index of the attribute to retrieve. To get the number of attributes, call . - Receives the that identifies this attribute. - Pointer to a that receives the value. This parameter can be . If it is not , the method fills the with a copy of the attribute value. Call to free the memory allocated by this method. - HRESULT - - - - Retrieves an attribute at the specified index. - - Index of the attribute to retrieve. To get the number of attributes, call . - Receives the that identifies this attribute. - Returns the value of the attribute specified by the . - - - - Copies all of the attributes from this object into another attribute store. - - The attribute store that recevies the copy. - HRESULT - - - - Copies all of the attributes from this object into another attribute store. - - The attribute store that recevies the copy. - - - - Determines whether the attribute store contains an attribute with the specified . - - The key of the attribute. - True if the attribute exists; otherwise, false - An unexpected error occurred. - - - - Gets the item which got associated with the specified . - - The key of the item. - The item which got associated with the specified . - The value type of the associated item is not supported. - - - - Gets the item which got associated with the specified . - - The key of the item. - Type of the returned item. - The item which got associated with the specified . - The specified is not supported. - - - - Sets the value of a property specified by its . - - The key of the property. - The value to set. - The type of the property. - The specified is not supported. - - - - Sets the value of a property specified by the key of the object. - - The type of the property. - Specifies the key of the property and the new value to set. - - - - Defines data types for key/value pairs. - - - - - Unsigned 32-bit integer. - - - - - Unsigned 64-bit integer. - - - - - Floating-point number. - - - - - value. - - - - - Wide-character string. - - - - - Byte array. - - - - - IUnknown pointer. - - - - - Represents a block of memory that contains media data. Use this interface to access the data in the buffer. - - - - - Gets or sets the length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - - - - - Gets the allocated size of the buffer, in bytes. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class with the specified maximum . - - The size of the in bytes. The specified will be the of the constructed . - The caller needs to release the allocated memory by disposing the . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - Receives a pointer to the start of the buffer. - Receives the maximum amount of data that can be written to the buffer. The same value is returned by the method. - Receives the length of the valid data in the buffer, in bytes. The same value is returned by the method. - HRESULT - When you are done accessing the buffer, call to unlock the buffer. You must call once for each call to . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - Receives the maximum amount of data that can be written to the buffer. The same value is returned by the method. - Receives the length of the valid data in the buffer, in bytes. The same value is returned by the method. - A pointer to the start of the buffer. - When you are done accessing the buffer, call to unlock the buffer. You must call once for each call to . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - A disposable object which provides the information returned by the method. Call its method to unlock the . - - This example shows how to use the method: - - partial class TestClass - { - public void DoStuff(MFMediaBuffer mediaBuffer) - { - using(var lock = mediaBuffer.Lock()) - { - //do some stuff - } - //the mediaBuffer gets automatically unlocked by the using statement after "doing your stuff" - } - } - - - - - - Unlocks a buffer that was previously locked. Call this method once for every call to . - - HRESULT - - - - Unlocks a buffer that was previously locked. Call this method once for every call to . - - - - - Retrieves the length of the valid data in the buffer. - - - Receives the length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - HRESULT - - - - Retrieves the length of the valid data in the buffer. - - - The length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - - - - Sets the length of the valid data in the buffer. - - - Length of the valid data, in bytes. This value cannot be greater than the allocated size of the buffer, which is returned by the method. - HRESULT - - - - Sets the length of the valid data in the buffer. - - - Length of the valid data, in bytes. This value cannot be greater than the allocated size of the buffer, which is returned by the method. - - - - Retrieves the allocated size of the buffer. - - - Receives the allocated size of the buffer, in bytes. - HRESULT - - - - Retrieves the allocated size of the buffer. - - - The allocated size of the buffer, in bytes. - - - - Used to unlock a after locking it by calling the method. - - - - - Gets a pointer to the start of the buffer. - - - - - Gets the maximum amount of data that can be written to the buffer. - - - - - Gets the length of the valid data in the buffer, in bytes. - - - - - Unlocks the locked . - - - - - Represents a description of a media format. - - - - - Creates an empty . - - Returns an empty . - - - - Creates a new based on a specified . - - which should be "converted" to a . - Returns a new . - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets or sets the number of channels. - - - - - Gets or sets the number of bits per sample. - - - - - Gets or sets the number of samples per second (for one channel each). - - - - - Gets or sets the channelmask. - - - - - Gets or sets the average number of bytes per second. - - - - - Gets or sets the audio subtype. - - - - - Gets or sets the major type. - - - - - Gets a value, indicating whether the media type is a temporally compressed format. - Temporal compression uses information from previously decoded samples when - decompressing the current sample. - - - - - Gets the major type of the format. - - Receives the major type . - The major type describes the broad category of the format, such as audio or video. For a list of possible values, see . - HRESULT - - - - Gets the major type of the format. - - The major type . The major type describes the broad category of the format, such as audio or video. For a list of possible values, see . - - - - Queries whether the media type is a temporally compressed format. Temporal compression - uses information from previously decoded samples when decompressing the current sample. - - Receives a Boolean value. The value is TRUE if the format uses temporal compression, or FALSE if the format does not use temporal compression. - HRESULT - - - - Queries whether the media type is a temporally compressed format. Temporal compression - uses information from previously decoded samples when decompressing the current sample. - - if the format uses temporal compression. if the format does not use temporal compression. - - - - Compares two media types and determines whether they are identical. If they are not - identical, the method indicates how the two formats differ. - - The to compare. - Receives a bitwise OR of zero or more flags, indicating the degree of similarity between the two media types. - HRESULT - - - - Compares two media types and determines whether they are identical. If they are not - identical, the method indicates how the two formats differ. - - The to compare. - A bitwise OR of zero or more flags, indicating the degree of similarity between the two media types. - - - - Retrieves an alternative representation of the media type. Currently only the DirectShow - AM_MEDIA_TYPE structure is supported. - - that specifies the representation to retrieve. The following values are defined. - Receives a pointer to a structure that contains the representation. The method allocates the memory for the structure. The caller must release the memory by calling . - HRESULT - For more information, see . - - - - Retrieves an alternative representation of the media type. Currently only the DirectShow - AM_MEDIA_TYPE structure is supported. - - that specifies the representation to retrieve. The following values are defined. - A pointer to a structure that contains the representation. The method allocates the memory for the structure. The caller must release the memory by calling . - For more information, see . - - - - Frees memory that was allocated by the method. - - that was passed to the method. - Pointer to the buffer that was returned by the method. - HRESULT - For more information, see . - - - - Frees memory that was allocated by the method. - - that was passed to the method. - Pointer to the buffer that was returned by the method. - For more information, see . - - - - Converts the to a . - - Contains a flag from the enumeration. - The which got created based on the . - - - - Represents a media sample, which is a container object for media data. For video, a sample typically contains one video frame. For audio data, a sample typically contains multiple audio samples, rather than a single sample of audio. - - - - - Initializes a new instance of the class. - - Calls the MFCreateSample function. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To get attibutes from a sample, use the object, which - inherits. - - Receives the value . - HRESULT - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To get attibutes from a sample, use the object, which - inherits. - - Returns the . - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To set attibutes on a sample, use the object, which - IMFSample inherits. - - Must be . - HRESULT - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To set attibutes on a sample, use the object, which - IMFSample inherits. - - Must be . - - - - Retrieves the presentation time of the sample. - - Presentation time, in 100-nanosecond units. - HRESULT - - - - Retrieves the presentation time of the sample. - - Presentation time, in 100-nanosecond units. - - - - Sets the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - HRESULT - - - - Sets the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - - - - Retrieves the presentation time of the sample. - - Receives the presentation time, in 100-nanosecond units. - HRESULT - - - - Retrieves the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - - - - Sets the duration of the sample. - - Duration of the sample, in 100-nanosecond units. - HRESULT - - - - Sets the duration of the sample. - - Duration of the sample, in 100-nanosecond units. - - - - Retrieves the number of buffers in the sample. - - Receives the number of buffers in the sample. A sample might contain zero buffers. - HRESULT - - - - Retrieves the number of buffers in the sample. - - The number of buffers in the sample. A sample might contain zero buffers. - - - - Gets a buffer from the sample, by index. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - Receives the instance. The caller must release the object. - HRESULT - - Note: In most cases, it is safer to use the method. - If the sample contains more than one buffer, the method replaces them with a single buffer, copies the original data into that buffer, and returns the new buffer to the caller. - The copy operation occurs at most once. On subsequent calls, no data is copied. - - - - - Gets a buffer from the sample, by index. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - The instance. The caller must release the object. - - Note: In most cases, it is safer to use the method. - If the sample contains more than one buffer, the method replaces them with a single buffer, copies the original data into that buffer, and returns the new buffer to the caller. - The copy operation occurs at most once. On subsequent calls, no data is copied. - - - - - Converts a sample with multiple buffers into a sample with a single buffer. - - Receives a instance. The caller must release the instance. - HRESULT - - - - Converts a sample with multiple buffers into a sample with a single buffer. - - A instance. The caller must release the instance. - - - - Adds a buffer to the end of the list of buffers in the sample. - - The to add. - HRESULT - - - - Adds a buffer to the end of the list of buffers in the sample. - - The to add. - - - - Removes a buffer at a specified index from the sample. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - HRESULT - - - - Removes a buffer at a specified index from the sample. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - - - - Removes all of the buffers from the sample. - - HRESULT - - - - Removes all of the buffers from the sample. - - - - - Retrieves the total length of the valid data in all of the buffers in the sample. The length is calculated as the sum of the values retrieved by the method. - - Receives the total length of the valid data, in bytes. - HRESULT - - - - Retrieves the total length of the valid data in all of the buffers in the sample. The length is calculated as the sum of the values retrieved by the method. - - The total length of the valid data, in bytes. - - - - Copies the sample data to a buffer. This method concatenates the valid data from all of the buffers of the sample, in order. - - The object of the destination buffer. - The buffer must be large enough to hold the valid data in the sample. - To get the size of the data in the sample, call . - HRESULT - - - - Copies the sample data to a buffer. This method concatenates the valid data from all of the buffers of the sample, in order. - - The object of the destination buffer. - The buffer must be large enough to hold the valid data in the sample. - To get the size of the data in the sample, call . - - - - Implemented by the Microsoft Media Foundation source reader object. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class based on a given . - - The URL. - - - - Gets a value indicating whether this instance can seek. - - - true if this instance can seek; otherwise, false. - - - - - Gets the media source characteristics. - - - The media source characteristics. - - - - - Queries whether a stream is selected. - - The stream to query. For more information, see . - Receives if the stream is selected and will generate data. Receives if the stream is not selected and will not generate data. - HRESULT - - - - Queries whether a stream is selected. - - The stream to query. For more information, see . - if the stream is selected and will generate data; if the stream is not selected and will not generate data. - - - - Selects or deselects one or more streams. - - The stream to set. For more information, see . - Specify to select streams or to deselect streams. If a stream is deselected, it will not generate data. - HRESULT - - - - Selects or deselects one or more streams. - - The stream to set. For more information, see . - Specify to select streams or to deselect streams. If a stream is deselected, it will not generate data. - - - - Gets a format that is supported natively by the media source. - - Specifies which stream to query. For more information, see . - The zero-based index of the media type to retrieve. - Receives the . The caller must dispose the object. - HRESULT - - - - Gets a format that is supported natively by the media source. - - Specifies which stream to query. For more information, see . - The zero-based index of the media type to retrieve. - The . The caller must dispose the . - - - - Gets the current media type for a stream. - - Specifies which stream to query. For more information, see . - Receives the . The caller must dispose the . - HRESULT - - - - Gets the current media type for a stream. - - Specifies which stream to query. For more information, see . - The . The caller must dispose the . - - - - Sets the media type for a stream. - This media type defines the format that the produces as output. It can differ from the native format provided by the media source. See Remarks for more information. - - The stream to configure. For more information, see . - Reserved. Set to . - The media type to set. - HRESULT - - - - Sets the media type for a stream. - This media type defines the format that the produces as output. It can differ from the native format provided by the media source. See Remarks for more information. - - The stream to configure. For more information, see . - The media type to set. - - - - Seeks to a new position in the media source. - - A GUID that specifies the time format. The time format defines the units for the varPosition parameter. Pass for "100-nanosecond units". Some media sources might support additional values. - The position from which playback will be started. The units are specified by the parameter. If the parameter is , set the variant type to . - HRESULT - - - - Seeks to a new position in the media source. - - A GUID that specifies the time format. The time format defines the units for the varPosition parameter. Pass for "100-nanosecond units". Some media sources might support additional values. - The position from which playback will be started. The units are specified by the parameter. If the parameter is , set the variant type to . - - - - Reads the next sample from the media source. - - Index of the stream.The stream to pull data from. For more information, see . - A bitwise OR of zero or more flags from the enumeration. - Receives the zero-based index of the stream. - Receives a bitwise OR of zero or more flags from the enumeration. - Receives the time stamp of the sample, or the time of the stream event indicated in . The time is given in 100-nanosecond units. - Receives the instance or null. If this parameter receives a non-null value, the caller must release the received . - - HRESULT - - - - - Reads the next sample from the media source. - - Index of the stream.The stream to pull data from. For more information, see . - A bitwise OR of zero or more flags from the enumeration. - Receives the zero-based index of the stream. - Receives a bitwise OR of zero or more flags from the enumeration. - Receives the time stamp of the sample, or the time of the stream event indicated in . The time is given in 100-nanosecond units. - The instance or null. If this parameter receives a non-null value, the caller must release the received . - - - - Flushes one or more streams. - - The stream to flush. For more information, see . - HRESULT - - - - Flushes one or more streams. - - The stream to flush. For more information, see . - - - - Queries the underlying media source or decoder for an interface. - - The stream or object to query. For more information, see . - A service identifier . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls the IMFGetService::GetService method. For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - Receives a pointer to the requested interface. The caller must release the interface. - - HRESULT - - - - - Queries the underlying media source or decoder for an interface. - - The stream or object to query. For more information, see . - A service identifier . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls the IMFGetService::GetService method. For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - A pointer to the requested interface. The caller must release the interface. - - - - Gets an attribute from the underlying media source. - - The stream or object to query. For more information, see . - A that identifies the attribute to retrieve. For more information, see . - Receives a that receives the value of the attribute. Call the method to free the . - HRESULT - - - - Gets an attribute from the underlying media source. - - The stream or object to query. For more information, see . - A that identifies the attribute to retrieve. For more information, see . - A that receives the value of the attribute. Call the method to free the . - - - - Defines flags that specify how to convert an audio media type. - - - - - Convert the media type to a class if possible, or a class otherwise. - - - - - Convert the media type to a class.. - - - - - Defines multi media error codes. - - - - - No error. - - - - - Unspecified error. - - - - - Invalid device id. - - - - - Driver failed enable. - - - - - Device already allocated. - - - - - Device handle is invalid. - - - - - No device driver present. - - - - - Memory allocation error. - - - - - Function isn't supported. - - - - - Error value out of range. - - - - - Invalid flag passed. - - - - - Invalid parameter passed. - - - - - Handle being used simultaneously on another thread (eg callback). - - - - - Specified alias not found. - - - - - Bad registry database. - - - - - Registry key not found. - - - - - Registry read error. - - - - - Registry write error. - - - - - Registry delete error. - - - - - Registry value not found. - - - - - Driver does not call DriverCallback. - - - - - More data to be returned. - - - - - Unsupported wave format. - - - - - Still something playing. - - - - - Header not prepared. - - - - - Device is synchronous. - - - - - Defines the states of a . - - - - - The is currently recording. - - - - - The is currently stopped. - - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Captures audio data from a audio device (through Wasapi Apis). To capture audio from an output device, use the class. - Minimum supported OS: Windows Vista (see property). - - - - - Gets a value indicating whether the class is supported on the current platform. - If true, it is supported; otherwise false. - - - - - Reference time units per millisecond. - - - - - Reference time units per second. - - - - - Occurs when new data got captured and is available. - - - - - Occurs when stopped capturing audio. - - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - Latency = 100ms. - EventSync = true. - SharedMode = Shared. - - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - Latency = 100ms. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - - - - Initializes a new instance of the class. SynchronizationContext = null. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - ThreadPriority of the capturethread which runs in background and provides the audiocapture itself. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - - - - Initializes a new instance of the class. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - ThreadPriority of the capturethread which runs in background and provides the audiocapture itself. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - The to use to fire events on. - The current platform does not support Wasapi. For more details see: . - The parameter is set to true while the is set to . - - - - Initializes WasapiCapture and prepares all resources for recording. - Note that properties like Device, etc. won't affect WasapiCapture after calling Initialize. - - - - - Start recording. - - - - - Stop recording. - - - - - Gets the RecordingState. - - - - - Gets or sets the capture device to use. - Set this property before calling Initialize. - - - - - Gets the OutputFormat. - - - - - Random ID based on internal audioclients memory address for debugging purposes. - - - - - Returns the default device. - - The default device. - - - - Returns the stream flags to use for the audioclient initialization. - - The stream flags to use for the audioclient initialization. - - - - Stops the capture and frees all resources. - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Provides audio loopback capture through Wasapi. That enables a client to capture the audio stream that is being played by a rendering endpoint device (e.g. speakers, headset, etc.). - Minimum supported OS: Windows Vista (see property). - Read more about loopback recording here: http://msdn.microsoft.com/en-us/library/windows/desktop/dd316551(v=vs.85).aspx. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified in milliseconds. - - The latency specified in milliseconds. The default value is 100ms. - - - - Initializes a new instance of the class with the specified in milliseconds - and the to use. - - The latency specified in milliseconds. The default value is 100ms. - The default to use. - Note: The is just a suggestion. If the driver does not support this format, - any other format will be picked. After calling , the - property will return the actually picked . - - - - Initializes a new instance of the class with the specified in milliseconds, - the to use and the of the internal capture thread. - - The latency specified in milliseconds. The default value is 100ms. - The default to use. - Note: The is just a suggestion. If the driver does not support this format, - any other format will be picked. After calling , the - property will return the actually picked . - The , the internal capture thread will run on. - - - - Returns the default rendering device. - - Default rendering device. - - - - Returns the stream flags to use for the audioclient initialization. - - - The stream flags to use for the audioclient initialization. - - - - - Captures audio from a audio device (through WaveIn Apis). - - - - - Gets or sets the which should be used for capturing audio. - The property has to be set before initializing. The systems default recording device is used - as default value - of the property. - - The value must not be null. - - - - Gets or sets the latency of the wavein specified in milliseconds. - The property has to be set before initializing. - - - - - Initializes a new instance of the class using the a default format (44.1kHz, 16 bit, 2 channels, pcm). - - - - - Initializes a new instance of the class. - - The default format to use. The final format must not equal the specified . - waveFormat - - - - Occurs when new data got captured and is available. - - - - - Occurs when the recording stopped. - - - - - Gets the format of the captured audio data. - - - - - Initializes the instance. - - has to be . Call to stop. - - - - Starts recording. - - - - - Stops recording. - - - - - Gets the current . - - - - - Creates and returns the WaveOut handle. - - The waveformat to use. - A valid WaveOut handle. - - - - Disposes and stops the instance. - - - - - Disposes and stops the instance. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Represents a -device. - - - - - Enumerates the WaveIn devices installed on the system. - - A an iterator to iterate through all enumerated WaveIn devices. - - - - Gets the default WaveOut device. - - - - - Initializes a new instance of the class. - - The device identifier. - - - - Gets the device identifier. - - - - - Gets the name of the device. - - - - - Gets the version of the driver. - - - - - Gets the standard formats that are supported. - - - - - Gets the supported formats. - - - - - Provides data for the event. - - - - - Gets the available data. - - - - - Gets the number of available bytes. - - - - - Gets the zero-based offset inside of the array at which the available data starts. - - - - - Gets the format of the available . - - - - - Initializes a new instance of the class. - - A byte array which contains the data. - The offset inside of the array at which the available data starts. - The number of available bytes. - The format of the . - - data - or - format - - - offset must not be less than zero. - bytecount must not be or equal to zero. - - - - - Defines a interface for capturing audio. - - - - - Occurs when new data got captured and is available. - - - - - Occurs when the recording stopped. - - - - - Gets the format of the captured audio data. - - - - - Initializes the instance. - - - - - Starts capturing. - - - - - Stops capturing. - - - - - Gets the current . - - - - - Provides audioplayback through DirectSound. - - - - - Initializes an new instance of class. - Latency = 100. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - Latency of the playback specified in milliseconds. - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - - - Initializes an new instance of class. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - The synchronizationcontext which is used to raise any events like the "Stopped"-event. - If the passed value is not null, the events will be called async through the SynchronizationContext.Post() method. - - - - - Random ID based on the internal directsounds memory address for debugging purposes. - - - - - Latency of the playback specified in milliseconds. - - - - - Gets or sets the device to use for the playing the waveform-audio data. Note that the - method has to get called - - - - - Occurs when the playback gets stopped. - - - - - Initializes and prepares all resources for playback. - Note that all properties like , ,... won't affect - after calling . - - The source to prepare for playback. - - - - Starts the playback. - Note: has to get called before calling Play. - If PlaybackState is Paused, Resume() will be called automatically. - - - - - Stops the playback and frees all allocated resources. - After calling the caller has to call again before another playback - can be started. - - - - - Resumes the paused playback. - - - - - Pauses the playback. - - - - - Gets the current of the playback. - - - - - The volume of the playback. Valid values are from 0.0 (0%) to 1.0 (100%). - - - Note that the if you for example set a volume of 33% => 0.33, the actual volume will be something like 0.33039999. - - - - - The currently initialized source. - To change the WaveSource property, call . - - - - - Disposes the instance and stops the playbacks. - - - - - Disposes and stops the instance. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - http: //msdn.microsoft.com/en-us/library/dd743869%28VS.85%29.aspx - - - - - WaveHeaderFlags: http://msdn.microsoft.com/en-us/library/aa909814.aspx#1 - - - - - pointer to locked data buffer (lpData) - - - - - length of data buffer (dwBufferLength) - - - - - used for input only (dwBytesRecorded) - - - - - for client's use (dwUser) - - - - - assorted flags (dwFlags) - - - - - loop control counter (dwLoops) - - - - - PWaveHdr, reserved for driver (lpNext) - - - - - reserved for driver - - - - - uMsg - http: //msdn.microsoft.com/en-us/library/dd743869%28VS.85%29.aspx - - - - - Defines standard formats for MmDevices. - - - - - 11.025 kHz, Mono, 8-bit - - - - - 11.025 kHz, Stereo, 8-bit - - - - - 11.025 kHz, Mono, 16-bit - - - - - 11.025 kHz, Stereo, 16-bit - - - - - 22.05 kHz, Mono, 8-bit - - - - - 22.05 kHz, Stereo, 8-bit - - - - - 22.05 kHz, Mono, 16-bit - - - - - 22.05 kHz, Stereo, 16-bit - - - - - 44.1 kHz, Mono, 8-bit - - - - - 44.1 kHz, Stereo, 8-bit - - - - - 44.1 kHz, Mono, 16-bit - - - - - 44.1 kHz, Stereo, 16-bit - - - - - 44.1 kHz, Mono, 8-bit - - - - - 44.1 kHz, Stereo, 8-bit - - - - - 44.1 kHz, Mono, 16-bit - - - - - 44.1 kHz, Stereo, 16-bit - - - - - 48 kHz, Mono, 8-bit - - - - - 48 kHz, Stereo, 8-bit - - - - - 48 kHz, Mono, 16-bit - - - - - 48 kHz, Stereo, 16-bit - - - - - 96 kHz, Mono, 8-bit - - - - - 96 kHz, Stereo, 8-bit - - - - - 96 kHz, Mono, 16-bit - - - - - 96 kHz, Stereo, 16-bit - - - - - Defines functionalities supported by a device. - - - - - None - - - - - Supports pitch control. - - - - - Supports playback rate control. - - - - - Supports volume control. - - - - - Supports separate left and right volume control. - - - - - The driver is synchronous and will block while playing a buffer. - - - - - Returns sample-accurate position information. - - - - - DirectSound - - Not documented on msdn. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Provides audioplayback through Wasapi. - Minimum supported OS: Windows Vista (see property). - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - Latency = 100ms. - EventSync = False. - ShareMode = Shared. - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - - - Initializes an new instance of class. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - of the playbackthread which runs in background and feeds the device - with data. - - - The which is used to raise any events like the -event. - If the passed value is not null, the events will be called async through the method. - - - - - Gets a value which indicates whether Wasapi is supported on the current Platform. True means that the current - platform supports ; False means that the current platform does not support - . - - - - - Sets a value indicating whether the Desktop Window Manager (DWM) has to opt in to or out of Multimedia Class Schedule Service (MMCSS) - scheduling while the current process is alive. - - - True to instruct the Desktop Window Manager to participate in MMCSS scheduling; False to opt out or end participation in MMCSS scheduling. - - DWM will be scheduled by the MMCSS as long as any process that called DwmEnableMMCSS to enable MMCSS is active and has not previously called DwmEnableMMCSS to disable MMCSS. - - - - Gets or sets the stream routing options. - - - The stream routing options. - - - The flag can only be used - if the is the default device. - That behavior can be changed by overriding the method. - - - - - Gets or sets the which should be used for playback. - The property has to be set before initializing. The systems default playback device is used - as default value - of the property. - - - Make sure to set only activated render devices. - - - - - Gets a random ID based on internal audioclients memory address for debugging purposes. - - - - - Gets or sets the latency of the playback specified in milliseconds. - The property has to be set before initializing. - - - - - Occurs when the playback stops. - - - - - Initializes WasapiOut instance and prepares all resources for playback. - Note that properties like , ,... won't affect WasapiOut after calling - . - - The source to prepare for playback. - - - - Starts the playback. - Note: has to get called before calling Play. - If is , will be - called automatically. - - - - - Stops the playback and frees most of allocated resources. - - - - - Resumes the paused playback. - - - - - Pauses the playback. - - - - - Gets the current of the playback. - - - - - Gets or sets the volume of the playback. - Valid values are in the range from 0.0 (0%) to 1.0 (100%). - - - - - The currently initialized source. - To change the WaveSource property, call . - - - The value of the WaveSource might not be the value which was passed to the method, because - WasapiOut (depending on the waveformat of the source) has to use a DmoResampler. - - - - - Gets or sets a value indicating whether should try to use all available channels. - - - - - Stops the playback (if playing) and cleans up all used resources. - - - - - Updates the stream routing options. - - - If the current is not the default device, - the flag will be removed. - - - - - Disposes and stops the instance. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Defines options for wasapi-streamrouting. - - - - - Disable stream routing. - - - - - Use stream routing when the device format has changed. - - - - - Use stream routing when the default device has changed. - - - - - Use stream routing when the current device was disconnected. - - - - - Combination of , and . - - - - - Provides audioplayback through the WaveOut api. - - - - - Initializes a new instance of the class with a latency of 100 ms. - - - - - Initializes a new instance of the class. - - Latency of the playback specified in milliseconds. - latency must not be less or equal to zero. - - - - Gets or sets the which should be used for playback. - The property has to be set before initializing. The systems default playback device is used - as default value - of the property. - - The value must not be null. - - - - Gets or sets the latency of the playback specified in milliseconds. - The property has to be set before initializing. - - - - - Starts the playback. - Note: has to get called before calling Play. - If is , will be - called automatically. - - - - - Pauses the playback. - - - - - Resumes the paused playback. - - - - - Stops the playback and frees most of allocated resources. - - - - - Initializes WaveOut instance and prepares all resources for playback. - Note that properties like , ,... won't affect WaveOut after calling - . - - The source to prepare for playback. - - - - Gets or sets the volume of the playback. - Valid values are in the range from 0.0 (0%) to 1.0 (100%). - - - - - The currently initialized source. - To change the WaveSource property, call . - - - The value of the WaveSource might not be the value which was passed to the method, - because - WaveOut uses the class to control the volume of the playback. - - - - - Gets the current of the playback. - - - - - Occurs when the playback stops. - - - - - Stops the playback (if playing) and cleans up all used resources. - - - - - Gets or sets a value indicating whether should try to use all available channels. - - - - - Creates and returns the WaveOut handle. - - The waveformat to use. - A valid WaveOut handle. - - - - Disposes and stops the instance. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - Represents a -device. - - - - - Enumerates the WaveOut devices installed on the system. - - A an iterator to iterate through all enumerated WaveOut devices. - - - - Gets the default WaveOut device. - - - - - Initializes a new instance of the class. - - The device identifier. - - - - Gets the device identifier. - - - - - Gets the name of the device. - - - - - Gets the supported functionalities of the device. - - - - - Gets the version of the driver. - - - - - Gets the standard formats that are supported. - - - - - Gets the supported formats. - - - - - Defines a interface for audio playbacks. - - - - - Starts the audio playback. - - - - - Pauses the audio playback. - - - - - Resumes the audio playback. - - - - - Stops the audio playback. - - - - - Initializes the for playing a . - - which provides waveform-audio data to play. - - - - Gets or sets the volume of the playback. The value of this property must be within the range from 0.0 to 1.0 where 0.0 equals 0% (muted) and 1.0 equals 100%. - - - - - Gets the which provides the waveform-audio data and was used to the . - - - - - Gets the of the . The playback state indicates whether the playback is currently playing, paused or stopped. - - - - - Occurs when the playback stops. - - - - - Defines playback states. - - - - - Playback is stopped. - - - - - Playback is playing. - - - - - Playback is paused. - - - - - Provides data for any stopped operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Gets a value which indicates whether the operation stopped due to an error. True means that that the operation - stopped due to an error. False means that the operation did not stop due to an error. - - - - - Gets the associated which caused the operation to stop. - - Can be null. - - - - Cached wave source. - - - - - Initializes a new instance of the class. - - Source which will be copied to a cache. - - - - Creates a stream to buffer data in. - - An empty stream to use as buffer. - - - - Reads a sequence of bytes from the cache and advances the position within the cache by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the cache. - - - The zero-based byte offset in the at which to begin storing the data - read from the cache. - - The maximum number of bytes to read from the cache. - The total number of bytes read into the . - - - - Gets the Waveformat of the data stored in the cache. - - - - - Gets or sets the position. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the amount of bytes stored in the cache. - - - - - Disposes the cache. - - - - - Disposes the internal used cache. - - - - - - Finalizes an instance of the class. - - - - - NOT RELEASED YET! Provides conversion between a set of input and output channels using a . - - - - - Initializes a new instance of the class. - - The which provides input data. - The which defines the mapping of the input channels to the output channels. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the output format. - - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Defines possible values for the property. - Default value is . - - - - - 180° Phase. - - - - - 90° Phase. - Default value for . - - - - - 0° Phase. - - - - - -90° Phase. - - - - - -180° Phase. - - - - - Defines possible values for the property. - Default value is WaveformSin (used for ). - - - - - Sine - Default value for . - - - - - Trinagle - - - - - Represents the dmo chorus effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the number of milliseconds the input is delayed before it is played back, in the range from 0 to 20. The default value is 16 ms. - - - - - Gets or sets the percentage by which the delay time is modulated by the low-frequency oscillator, in hundredths of a percentage point. Must be in the range from 0 through 100. The default value is 10. - - - - - Gets or sets the percentage of output signal to feed back into the effect's input, in the range from -99 to 99. The default value is 25. - - - - - Gets or sets the frequency of the LFO, in the range from 0 to 10. The default value is 1.1. - - - - - Gets or sets the waveform shape of the LFO. By default, the waveform is a sine. - - - - - Gets or sets the phase differential between left and right LFOs. The default value is Phase90. - - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0 through 100 (all wet). The default value is 50. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - 180° Phase - - - - - 90° Phase - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - -180° Phase - - - - - -90° Phase - - - - - 0° Phase - - - - - Default value for the property. - - - - - Sine waveform - - - - - Triangle waveform - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo compressor effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the time before compression reaches its full value, in the range from 0.01 ms to 500 ms. The default value is 10 ms. - - - - - Gets or sets the output gain of signal after compression, in the range from -60 dB to 60 dB. The default value is 0 dB. - - - - - Gets or sets the time after is reached before attack phase is started, in milliseconds, in the range from 0 ms to 4 ms. The default value is 4 ms. - - - - - Gets or sets the compression ratio, in the range from 1 to 100. The default value is 3, which means 3:1 compression. - - - - - Gets or sets the speed at which compression is stopped after input drops below fThreshold, in the range from 50 ms to 3000 ms. The default value is 200 ms. - - - - - Gets or sets the point at which compression begins, in decibels, in the range from -60 dB to 0 dB. The default value is -20 dB. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo distortion effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the amount of signal change after distortion, in the range from -60 dB through 0 dB. The default value is -18 dB. - - - - - Gets or sets the percentage of distortion intensity, in the range in the range from 0 % through 100 %. The default value is 15 percent. - - - - - Gets or sets the center frequency of harmonic content addition, in the range from 100 Hz through 8000 Hz. The default value is 2400 Hz. - - - - - Gets or sets the width of frequency band that determines range of harmonic content addition, in the range from 100 Hz through 8000 Hz. The default value is 2400 Hz. - - - - - Gets or sets the filter cutoff for high-frequency harmonics attenuation, in the range from 100 Hz through 8000 Hz. The default value is 8000 Hz. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo echo effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from - 0 through 100 (all wet). The default value is 50. - - - - - Gets or sets the percentage of output fed back into input, in the range from 0 - through 100. The default value is 50. - - - - - Gets or sets the delay for left channel, in milliseconds, in the range from 1 - through 2000. The default value is 500 ms. - - - - - Gets or sets the delay for right channel, in milliseconds, in the range from 1 - through 2000. The default value is 500 ms. - - - - - Gets or sets the value that specifies whether to swap left and right delays with each successive echo. - The default value is false, meaning no swap. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Base class for all DMO effects. - - DMO effect itself. - Parameter struct of the DMO effect. - - - - Creates a new instance of class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Creates an MediaObject from the effect DMO. - - The input format of the to create. - The output format of the to create. - - The created to use for processing audio data. - - - - - Gets the output format of the effect. - - The output format of the effect. - - - - Gets the underlying effect. - - - - - Gets or sets whether the effect is enabled. - - - - - Sets the value for one of the effects parameter and updates the effect. - - Type of the . - Name of the field to set the value for. - Value to set. - - - - Reads a sequence of bytes from the stream and applies the Dmo effect to them (only if the property is set to true). - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Represents the dmo flanger effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0 through 100 (all wet). The default value is 50. - - - - - Gets or sets the percentage by which the delay time is modulated by the low-frequency oscillator (LFO), in hundredths of a percentage point. Must be in the range from 0 through 100. The default value is 100. - - - - - Gets or sets the percentage of output signal to feed back into the effect's input, in the range from -99 to 99. The default value is -50. - - - - - Gets or sets the frequency of the LFO, in the range from 0 to 10. The default value is 0.25. - - - - - Gets or sets the waveform shape of the LFO. By default, the waveform is a sine. - - - - - Gets or sets the number of milliseconds the input is delayed before it is played back, in the range from 0ms to 4ms. The default value is 2 ms. - - - - - Gets or sets the phase differential between left and right LFOs. The default value is . - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo gargle effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the rate of modulation, in Hertz. Must be in the range from 20Hz through 1000Hz. The default value is 20Hz. - - - - - Gets or sets the shape of the modulation waveform. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - Use the enumeration instead. - - - - Square Waveform. - - Use the enumeration instead. - - - - Triangle Waveform - - Use the enumeration instead. - - - - Represents the dmo waves reverb effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the input gain of signal, in decibels (dB), in the range from -96 dB through 0 dB. The default value is 0 dB. - - - - - Gets or sets the reverb mix, in dB, in the range from -96 dB through 0 dB. The default value is 0 dB. - - - - - Gets or sets the reverb time, in milliseconds, in the range from 0.001 through 3000. The default value is 1000. - - - - - Gets or sets the high-frequency reverb time ratio, in the range from 0.001 through 0.999. The default value is 0.001. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents an equalizer which can be dynamically modified by adding, removing or modifying - . - - - - - Initializes a new instance of the class based on an underlying wave stream. - - The underlying wave stream. - - - - Gets a list which contains all used by the equalizer. - - - None of the - - - - - Returns a new instance of the class with 10 preset . - - The underlying sample source which provides the data for the equalizer. - A new instance of the class with 10 preset . - - - - Returns a new instance of the class with 10 preset . - - The underlying sample source which provides the data for the equalizer. - The bandwidth to use for the 10 . The default value is 18. - - The default gain to use for the 10 . The default value is zero - which means that the data, passed through the equalizer won't be affected by the . - - A new instance of the class with 10 preset . - - - - Reads a sequence of samples from the underlying , applies the equalizer - effect and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Represents an EqualizerFilter for a single channel. - - - - - Initializes a new instance of the class. - - The sampleRate of the audio data to process. - The center frequency to adjust. - The bandWidth. - The gain value in dB. - - - - Gets or sets the gain value in dB. - - - - - Gets or sets the bandwidth. - - - - - Gets the frequency. - - - - - Gets the samplerate. - - - - - Returns a copy of the . - - A copy of the - - - - Processes an array of input samples. - - The input samples to process. - The zero-based offset in the buffer to start at. - The number of samples to process. - Specifies the channel to process as a zero-based index. - The total number of channels. - - - - Represents an EqualizerFilter which holds an for each channel. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The number of channels to use. - The channel filter which should be used for all channels. - - - - Gets all underlying as a dictionary where the key represents the channel - index and the value to itself. - - - - - Gets the average frequency of all . - - - - - Gets or sets the average gain value of all . - - - When using the setter of the property, the new gain value will be applied to all - . - - - - - Returns an enumerator that iterates through the . - - - A that can be used to iterate through the . - - - - - Returns an enumerator that iterates through a . - - - An object that can be used to iterate through the . - - - - - Returns a new instance of the class. - - The number of channels to use. - The samplerate of the data to process. - The frequency of the filter. - The bandwidth. - The gain value. - A new instance of the class. - - - - Defines possible values for the property. - The default value is . - - - - - 180° Phase. - - - - - 90° Phase. - Default value for . - - - - - 0° Phase. - - - - - -90° Phase. - - - - - -180° Phase. - - - - - Defines possible values for the property. - The default value is . - - - - - Triangle. - - - - - Sine. Default value. - - - - - Defines possible values for the property. - The default value is . - - - - - Triangle - Default value. - - - - - Square - - - - - A pitch shifting effect. - - - The internal pitch shifting code is based on the implementation of - Stephan M. Bernsee smb@dspdimension.com (see http://www.dspdimension.com) and - Michael Knight madmik3@gmail.com (http://sites.google.com/site/mikescoderama/) who - translated Stephan's code to C#. - - Both gave the explicit permission to republish the code as part of CSCore under the MS-PL. - Big thanks! - - - - - Gets or sets the pitch shift factor. - - - A pitch shift factor value which is between 0.5 - (one octave down) and 2. (one octave up). A value of exactly 1 does not change - the pitch. - - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - - - - Reads a sequence of samples from the , applies the pitch shifting to them - and advances the position within the stream by the number of samples read. - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source including the applied pitch shift. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides the ability use an implementation of the interface fade waveform-audio data. - - - - - Initializes a new instance of the class. - - The underlying source to use. - - - - Gets or sets the fade strategy to use. - - - - - Reads a sequence of samples from the class and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Compared to the , the property of the accepts any value. - - - - - Initializes a new instance of the class. - - The underlying base source. - - - - Gets or sets the volume. A value of 1.0 will set the volume to 100%. A value of 0.0 will set the volume to 0%. - - Since there is no validation of the value, this property can be used to set the gain value to any value. - - - - Gets or sets a value indicating whether the method should clip overflows. The default value is true. - - - true if the method should clip overflows; otherwise, false. - - Clipping the overflows means, that all samples which are not in the range from -1 to 1, will be clipped to that range. - For example if a sample has a value of 1.3, it will be clipped to a value of 1.0. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. After reading the samples, the specified gain value will get applied and the overflows will be clipped (optionally). - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides a mechanism for fading in/out audio. - - - The - and the -property must be set before the - can be used. - - - - - Gets a value which indicates whether the current volume equals the target volume. If not, the - property returns false. - - - - - Gets or sets the sample rate to use. - - - - - Gets or sets the number of channels. - - - - - Occurs when the fading process has reached its target volume. - - - - - Applies the fading algorithm to the waveform-audio data. - - Float-array which contains IEEE-Float samples. - Zero-based offset of the . - The number of samples, the fading algorithm has to be applied on. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration in milliseconds. - - - - Stops the fading. - - - - - Provides a linear fading algorithm. - - - - - Gets the current volume. - - - - - Gets the target volume. - - - - - Occurs when the fading process has reached its target volume. - - - - - Gets a value which indicates whether the class is fading. - True means that the class is fading audio data. - False means that the equals the . - - - - - Gets or sets the sample rate to use. - - - - - Gets or sets the number of channels. - - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration in milliseconds. - - - - Stops the fading. - - - - - Applies the fading algorithm to the . - - Float-array which contains IEEE-Float samples. - Zero-based offset of the . - The number of samples, the fading algorithm has to be applied on. - - - - Provides data for the event. - - - - - Gets the individual peak value for each channel. - - - - - Gets the master peak value. - - - - - Initializes a new instance of the class. - - The channel peak values. - The master peak value. - is null or empty. - - - - Represents a peak meter. - - - - - Gets the average value of all . - - - - - Gets the peak values for all channels. - - - - - Obsolete - - - - - Gets or sets the interval at which to raise the event. - The interval is specified in milliseconds. - - - - - Event which gets raised when a new peak value is available. - - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Sets all ChannelPeakValues to zero and resets the amount of processed blocks. - - - - - Converts a 32-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 32-bit POCM instance which has to get converted to a . - is null. - The format of the is not 32-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a 32-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 32-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 32-bit IeeeFloat . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 32-bit IeeeFloat . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 24-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 24-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 8-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 8-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a 32-bit IeeeFloat to a . - - - - - Initializes a new instance of the class. - - The underlying 32-bit IeeeFloat instance which has to get converted to a . - is null. - The format of the is not 32-bit IeeeFloat. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a 16-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 16-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a . - - - - - The underlying source which provides samples. - - - - - The buffer to use for reading from the . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a . - The of the Output-. - The of the Output-. - The is null. - Invalid number of bits per sample specified by the argument. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the of the output waveform-audio data. - - - - - Gets or sets the current position. - - - - - Gets the length of the waveform-audio data. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the instance. - - - - - Disposes the underlying . - - Not used. - - - - Calls . - - - - - Converts a 16-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 16-bit POCM instance which has to get converted to a . - is null. - The format of the is not 16-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a 24-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 24-bit POCM instance which has to get converted to a . - is null. - The format of the is not 24-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a 8-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 8-bit POCM instance which has to get converted to a . - is null. - The format of the is not 8-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a . - - - - - The underlying source which provides the raw data. - - - - - The buffer to use for reading from the . - - - - - Initializes a new instance of the class. - - The underlying instance which has to get converted to a . - The argument is null. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position in samples. - - - - - Gets the length of the waveform-audio data in samples. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the . - - - - - Disposes the . - - Not used. - - - - Finalizes an instance of the class. - - - - - Returns an implementation of the interface which converts the specified to a . - - The instance to convert. - Returns an implementation of the interface which converts the specified to a . - is null. - The of the is not supported. - - - - A thread-safe (synchronized) wrapper around the specified a . - - The type of the underlying . - The type of the data read by the method. - - - - Initializes a new instance of the class. - - The underlying source to synchronize. - - - - Gets the output of the . - - - - - Gets or sets the position of the . - - - - - Gets the length of the . - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets the . - - - - - Reads a sequence of elements from the and advances its position by the - number of elements read. - - - An array of elements. When this method returns, the contains the specified - array of elements with the values between and ( + - - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - The total number of elements read into the buffer. - - - - Defines an explicit conversation of a to its - . - - Instance of the . - The of the . - - - - Disposes the and releases all allocated resources. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Disposes the and releases all allocated resources. - - - - - Finalizes an instance of the class. - - - - - Buffered WaveSource which overrides the allocated memory after the internal buffer got full. - - - - - Gets or sets a value which specifies whether the method should clear the specified buffer with zeros before reading any data. - - - - - Gets the maximum size of the buffer in bytes. - - - The maximum size of the buffer in bytes. - - - - - Initializes a new instance of the class with a default buffersize of 5 seconds. - - The WaveFormat of the source. - - - - Initializes a new instance of the class. - - The WaveFormat of the source. - Buffersize in bytes. - - - - Adds new data to the internal buffer. - - A byte-array which contains the data. - Zero-based offset in the (specified in bytes). - Number of bytes to add to the internal buffer. - Number of added bytes. - - - - Reads a sequence of bytes from the internal buffer of the and advances the position within the internal buffer by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the internal buffer. - - - The zero-based byte offset in the at which to begin storing the data - read from the internal buffer. - - The maximum number of bytes to read from the internal buffer. - The total number of bytes read into the . - - - - Gets the of the waveform-audio data. - - - - - Not supported. - - - - - Gets the number of stored bytes inside of the internal buffer. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the and its internal buffer. - - - - - Disposes the and its internal buffer. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Default destructor which calls . - - - - - Reads data from the and stores the read data in a buffer. - - - - - Initializes a new instance of the class. - - The to buffer. - Size of the buffer. - is out of range. - - - - Reads a sequence of bytes from internal buffer and advances the position by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the . - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the . - The total number of bytes read into the buffer. - BufferSource - - - - Resets/Clears the buffer. - - BufferSource - - - - Gets or sets the position of the source. - - - BufferSource - - - - - Gets the length of the source. - - - - - Disposes the and releases all allocated resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Fire the event after every block read. - - - - - Occurs when the method reads a block. - - If the method reads n during a single call, the event will get fired n times. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. Fires the event for each block it reads (one block = (number of channels) samples). - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides data for the event. - - - - - Gets the sample of the left channel. - - - - - Gets the sample of the right channel. - - - - - Gets the samples of all channels if the number of is greater or equal to three. - - If the number of is less than three, the value of the property is null. - - - - Gets the number of channels. - - - - - Initializes a new instance of the class. - - The samples. - The index inside of the -array. - The number of channels. - - - - Provides data for the event. - - Type of the array. - - - - Gets the number of read elements. - - - - - Gets the array which contains the read data. - - - - - Initializes a new instance of the class. - - The read data. - The number of read elements. - - - - Converts a mono source to a stereo source. - - - - - Initializes a new instance of the class. - - The underlying mono source. - The has more or less than one channel. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets the of the waveform-audio data. - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Notifies the client when a certain amount of data got read. - - Can be used as some kind of a timer for playbacks,... - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source is null. - - - - Gets or sets the interval in blocks. One block equals one sample for each channel. - - - - - Gets or sets the interval in milliseconds. - - - - - Occurs when a specified amount of data got read. - - - The - or the -property specifies how many samples have to get - read to trigger the event. - - - - - Reads a sequence of samples from the and advances the position within the - stream by - the number of samples read. When the [(number of total samples read) / (number of channels)] % - = 0, the event gets triggered. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides control over the balance between the left and the right channel of an audio source. - - - - - Gets or sets the balance. The valid range is from -1 to 1. -1 will mute the right channel, 1 will mute left channel. - - The value is not within the specified range. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - Source has to be stereo. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - Read samples has to be a multiple of two. - - - - Notifies the client when a specific number of samples got read and when the method got called. - - Compared to the , none of both events won't provide the read data. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Gets or sets the interval (in which to fire the event) in blocks. One block equals one - sample for each channel. - - - - - Gets or sets the interval (in which to fire the event) in milliseconds. - - - - - Occurs when the method got called. - - - - - Occurs when a specified amount of data got read. - - - The - or the -property specifies how many samples have to get - read to trigger the event. - - - - - Reads a sequence of samples from the and advances the position within the - stream by - the number of samples read. Triggers the event and if the [(number of total samples read) / - (number of channels)] % - = 0, the event gets triggered. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides the ability to adjust the volume of an audio stream. - - - - - The epsilon which is used to compare for almost-equality of the volume in . - - - - - Gets or sets the volume specified by a value in the range from 0.0 to 1.0. - - - - - Initializes a new instance of the class. - - The underlying base source. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. After reading the samples, the volume of the read samples gets manipulated. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Represents an implementation of the interface which provides the data provided by a specified object. - - - - - Occurs when new data is available. - - - - - Gets the underlying instance. - - - - - Initializes a new instance of the class with a default bufferSize of 5 seconds. - - The soundIn which provides recorded data. - - Note that soundIn has to be already initialized. - Note that old data ("old" gets specified by the bufferSize) gets overridden. - For example, if the bufferSize is about 5 seconds big, data which got recorded 6 seconds ago, won't be available anymore. - - - - - Initializes a new instance of the class. - - The soundIn which provides recorded data. - Size of the internal buffer in bytes. - - Note that soundIn has to be already initialized. - Note that old data ("old" gets specified by the bufferSize) gets overridden. - For example, if the bufferSize is about 5 seconds big, data which got recorded 6 seconds ago, won't be available anymore. - - - - - Reads a sequence of bytes from the internal stream which holds recorded data and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the of the recorded data. - - - - - Gets or sets the current position in bytes. This property is currently not supported. - - - - - Gets the length in bytes. This property is currently not supported. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets a value which indicates whether the method should always provide the requested amount of data. - For the case that the internal buffer can't offer the requested amount of data, the rest of the requested bytes will be filled up with zeros. - - - - - Disposes the . - - - - - Disposes the . - - Not used. - - - - Destructor of the class which calls the method. - - - - - Converts a stereo source to a mono source. - - - - - Initializes a new instance of the class. - - The underlying stereo source. - The has more or less than two channels. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets the of the waveform-audio data. - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - A Stream which can be used for endless looping. - - - - - Initializes a new instance of the class. - - The underlying . - - - - Gets or sets whether looping is enabled. - - - - - Occurs when the underlying reaches its end. - If the property is set to true, the Position of the - will be reseted to zero. - - - - - Reads from the underlying . If the - does not provide any more data, its position gets reseted to zero. - - Buffer which receives the read data. - Zero-based offset offset in the at which to begin storing data. - The maximum number of bytes to read. - Actual number of read bytes. - - - - Generates a sine wave. - - - - - Gets or sets the frequency of the sine wave. - - - - - Gets or sets the amplitude of the sine wave. - - - - - Gets or sets the phase of the sine wave. - - - - - 1000Hz, 0.5 amplitude, 0.0 phase - - - - - Initializes a new instance of the class. - - Specifies the frequency of the sine wave in Hz. - Specifies the amplitude of the sine wave. Use a value between 0 and 1. - Specifies the initial phase. Use a value between 0 and 1. - - - - Reads a sequence of samples from the . - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Not supported. - - - - - Not supported. - - - - - Gets a value indicating whether the supports seeking. - - - - - Not used. - - - - - Defines all known encoding types. Primary used in the class. See - . - - - - WAVE_FORMAT_UNKNOWN, Microsoft Corporation - - - WAVE_FORMAT_PCM Microsoft Corporation - - - WAVE_FORMAT_ADPCM Microsoft Corporation - - - WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation - - - WAVE_FORMAT_VSELP Compaq Computer Corp. - - - WAVE_FORMAT_IBM_CVSD IBM Corporation - - - WAVE_FORMAT_ALAW Microsoft Corporation - - - WAVE_FORMAT_MULAW Microsoft Corporation - - - WAVE_FORMAT_DTS Microsoft Corporation - - - WAVE_FORMAT_DRM Microsoft Corporation - - - WAVE_FORMAT_WMAVOICE9 - - - WAVE_FORMAT_OKI_ADPCM OKI - - - WAVE_FORMAT_DVI_ADPCM Intel Corporation - - - WAVE_FORMAT_IMA_ADPCM Intel Corporation - - - WAVE_FORMAT_MEDIASPACE_ADPCM Videologic - - - WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp - - - WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation - - - WAVE_FORMAT_DIGISTD DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. - - - WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation - - - WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. - - - WAVE_FORMAT_CU_CODEC Hewlett-Packard Company - - - WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America - - - WAVE_FORMAT_SONARC Speech Compression - - - WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc - - - WAVE_FORMAT_ECHOSC1 Echo Speech Corporation - - - WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. - - - WAVE_FORMAT_APTX Audio Processing Technology - - - WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. - - - WAVE_FORMAT_PROSODY_1612, Aculab plc - - - WAVE_FORMAT_LRC, Merging Technologies S.A. - - - WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories - - - WAVE_FORMAT_GSM610, Microsoft Corporation - - - WAVE_FORMAT_MSNAUDIO, Microsoft Corporation - - - WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation - - - WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited - - - WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. - - - WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited - - - WAVE_FORMAT_NMS_VBXADPCM - - - WAVE_FORMAT_CS_IMAADPCM - - - WAVE_FORMAT_ECHOSC3 - - - WAVE_FORMAT_ROCKWELL_ADPCM - - - WAVE_FORMAT_ROCKWELL_DIGITALK - - - WAVE_FORMAT_XEBEC - - - WAVE_FORMAT_G721_ADPCM - - - WAVE_FORMAT_G728_CELP - - - WAVE_FORMAT_MSG723 - - - WAVE_FORMAT_MPEG, Microsoft Corporation - - - WAVE_FORMAT_RT24 - - - WAVE_FORMAT_PAC - - - WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag - - - WAVE_FORMAT_LUCENT_G723 - - - WAVE_FORMAT_CIRRUS - - - WAVE_FORMAT_ESPCM - - - WAVE_FORMAT_VOXWARE - - - WAVE_FORMAT_CANOPUS_ATRAC - - - WAVE_FORMAT_G726_ADPCM - - - WAVE_FORMAT_G722_ADPCM - - - WAVE_FORMAT_DSAT_DISPLAY - - - WAVE_FORMAT_VOXWARE_BYTE_ALIGNED - - - WAVE_FORMAT_VOXWARE_AC8 - - - WAVE_FORMAT_VOXWARE_AC10 - - - WAVE_FORMAT_VOXWARE_AC16 - - - WAVE_FORMAT_VOXWARE_AC20 - - - WAVE_FORMAT_VOXWARE_RT24 - - - WAVE_FORMAT_VOXWARE_RT29 - - - WAVE_FORMAT_VOXWARE_RT29HW - - - WAVE_FORMAT_VOXWARE_VR12 - - - WAVE_FORMAT_VOXWARE_VR18 - - - WAVE_FORMAT_VOXWARE_TQ40 - - - WAVE_FORMAT_SOFTSOUND - - - WAVE_FORMAT_VOXWARE_TQ60 - - - WAVE_FORMAT_MSRT24 - - - WAVE_FORMAT_G729A - - - WAVE_FORMAT_MVI_MVI2 - - - WAVE_FORMAT_DF_G726 - - - WAVE_FORMAT_DF_GSM610 - - - WAVE_FORMAT_ISIAUDIO - - - WAVE_FORMAT_ONLIVE - - - WAVE_FORMAT_SBC24 - - - WAVE_FORMAT_DOLBY_AC3_SPDIF - - - WAVE_FORMAT_MEDIASONIC_G723 - - - WAVE_FORMAT_PROSODY_8KBPS - - - WAVE_FORMAT_ZYXEL_ADPCM - - - WAVE_FORMAT_PHILIPS_LPCBB - - - WAVE_FORMAT_PACKED - - - WAVE_FORMAT_MALDEN_PHONYTALK - - - WAVE_FORMAT_GSM - - - WAVE_FORMAT_G729 - - - WAVE_FORMAT_G723 - - - WAVE_FORMAT_ACELP - - - - WAVE_FORMAT_RAW_AAC1 - - - - WAVE_FORMAT_RHETOREX_ADPCM - - - WAVE_FORMAT_IRAT - - - WAVE_FORMAT_VIVO_G723 - - - WAVE_FORMAT_VIVO_SIREN - - - WAVE_FORMAT_DIGITAL_G723 - - - WAVE_FORMAT_SANYO_LD_ADPCM - - - WAVE_FORMAT_SIPROLAB_ACEPLNET - - - WAVE_FORMAT_SIPROLAB_ACELP4800 - - - WAVE_FORMAT_SIPROLAB_ACELP8V3 - - - WAVE_FORMAT_SIPROLAB_G729 - - - WAVE_FORMAT_SIPROLAB_G729A - - - WAVE_FORMAT_SIPROLAB_KELVIN - - - WAVE_FORMAT_G726ADPCM - - - WAVE_FORMAT_QUALCOMM_PUREVOICE - - - WAVE_FORMAT_QUALCOMM_HALFRATE - - - WAVE_FORMAT_TUBGSM - - - WAVE_FORMAT_MSAUDIO1 - - - - Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation - - - - - Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation - - - - - Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS - - - - - Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) - - - - WAVE_FORMAT_UNISYS_NAP_ADPCM - - - WAVE_FORMAT_UNISYS_NAP_ULAW - - - WAVE_FORMAT_UNISYS_NAP_ALAW - - - WAVE_FORMAT_UNISYS_NAP_16K - - - WAVE_FORMAT_CREATIVE_ADPCM - - - WAVE_FORMAT_CREATIVE_FASTSPEECH8 - - - WAVE_FORMAT_CREATIVE_FASTSPEECH10 - - - WAVE_FORMAT_UHER_ADPCM - - - WAVE_FORMAT_QUARTERDECK - - - WAVE_FORMAT_ILINK_VC - - - WAVE_FORMAT_RAW_SPORT - - - WAVE_FORMAT_ESST_AC3 - - - WAVE_FORMAT_IPI_HSX - - - WAVE_FORMAT_IPI_RPELP - - - WAVE_FORMAT_CS2 - - - WAVE_FORMAT_SONY_SCX - - - WAVE_FORMAT_FM_TOWNS_SND - - - WAVE_FORMAT_BTV_DIGITAL - - - WAVE_FORMAT_QDESIGN_MUSIC - - - WAVE_FORMAT_VME_VMPCM - - - WAVE_FORMAT_TPC - - - WAVE_FORMAT_OLIGSM - - - WAVE_FORMAT_OLIADPCM - - - WAVE_FORMAT_OLICELP - - - WAVE_FORMAT_OLISBC - - - WAVE_FORMAT_OLIOPR - - - WAVE_FORMAT_LH_CODEC - - - WAVE_FORMAT_NORRIS - - - WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS - - - - Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx - - - MPEG_RAW_AAC - Source wmCodec.h - - - - MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. - See . - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral SBR or PS tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - - - NOKIA_MPEG_ADTS_AAC - Source wmCodec.h - - - NOKIA_MPEG_RAW_AAC - Source wmCodec.h - - - VODAFONE_MPEG_ADTS_AAC - Source wmCodec.h - - - VODAFONE_MPEG_RAW_AAC - Source wmCodec.h - - - - High-Efficiency Advanced Audio Coding (HE-AAC) stream. - The format block is an HEAACWAVEFORMAT structure. See . - - - - WAVE_FORMAT_DVM - - - WAVE_FORMAT_VORBIS1 "Og" Original stream compatible - - - WAVE_FORMAT_VORBIS2 "Pg" Have independent header - - - WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header - - - WAVE_FORMAT_VORBIS1P "og" Original stream compatible - - - WAVE_FORMAT_VORBIS2P "pg" Have independent headere - - - WAVE_FORMAT_VORBIS3P "qg" Have no codebook header - - - - Raw AAC1 - - - - - Windows Media Audio Voice (WMA Voice) - - - - Extensible - - - WAVE_FORMAT_DEVELOPMENT - - - - FLAC - - - - - WARNING: If MimeType equals "-->" the picture will be downloaded from the web. - Use GetURL() the get the url to the picture. If not, data, contained by the frame will - be used. - - - - - Range from 1(worst) to 255(best). Zero -> Rating disabled. - - - - - - 1 -> ommit the counter. Default length is 4 byte. If 4 byte is not enough to hold the - number, a byte will be added(up to 8 bytes total). - - - - - Gets the formatstring of the timestamp - - length of the string which has to be parsed - - - - - Exception class for all ID3-Tag related Exceptions. - - - - - encoded with ISO-8859-1 [ISO-8859-1] or UTF-8 [UTF-8] - - - - - Defines a base class for all time converts. A time converter can be used to convert raw positions (depending on the implementation i.e. bytes or samples) to a human - readable . - - - - - A for objects. - - - - - A for objects. - - - - - Converts a back to raw elements, a source works with. The unit of these raw elements depends on the implementation. For more information, see . - - The of the source which gets used to convert the . - The to convert to raw elements. - The converted in raw elements. - - - - Converts raw elements to a value. The unit of these raw elements depends on the implementation. For more information, see . - - The of the source which gets used to convert the . - The raw elements to convert to a . - The . - - - - Specifies which to use. - - - - - Gets the type of the to use. - - - - - Gets or sets the arguments to pass to the constructor of the . For more information, see . - - - - - Gets or sets a value indicating whether a new instance of the specified should be created each time the queries the . - The default value is false. - - - - - Initializes a new instance of the class based on the type of the to use. - - Type of the to use. - timeConverterType - Specified type is no time converter.;timeConverterType - - - - Provides s for converting raw time values (e.g. bytes, samples,...) to a and back. - - - - - Gets the default instance of the factory. - - - - - Registers a new for a specific source type. - - The to register. - The source type. - timeConverter is null. - There is already a registered for the specified . - The class uses the source type to find choose the best for an . For more information, see . - - - - Unregisters a previously registered . - - The source type, that got passed to the method previously. - The specified source type could not be found. - - - - Gets the for the specified . - - The object to get the for. - The type of the . - The best for the specified . - The specified is null. - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified . - If there is no applied to the object (the ), it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Gets the for the specified source type. - - The type of the source. - The best for the specified source type. - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified source type. - If there is no applied to the object, it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Gets the for the specified . - - The to get the associated for. - The best for the specified . - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified . - If there is no applied to the object (the ), it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Clears the internal cache. - - - - - Defines a 3D vector. - - - - - Retrieves or sets the x component of the 3D vector. - - - - - Retrieves or sets the y component of the 3D vector. - - - - - Retrieves or sets the z component of the 3D vector. - - - - - Initializes a new instance of the structure. - - The value to use for the x, y and z component of the 3D vector. - - - - Initializes a new instance of the structure. - - The x component of the 3D vector. - The y component of the 3D vector.. - The z component of the 3D vector. - - - - Returns a string that represents the 3D vector. - - A string that represents the 3D vector. - - - - This class is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Represents a read- and writeable buffer which can hold a specified number of elements. - - Specifies the type of the elements to store. - - - - Initializes a new instance of the class. - - Size of the buffer. - - - - Adds new data to the internal buffer. - - Array which contains the data. - Zero-based offset in the (specified in "elements"). - Number of elements to add to the internal buffer. - Number of added elements. - - - - Reads a sequence of elements from the internal buffer of the . - - - An array of elements. When this method returns, the contains the specified - array with the values between and ( + - - 1) replaced by the elements read from the internal buffer. - - - The zero-based offset in the at which to begin storing the data - read from the internal buffer. - - The maximum number of elements to read from the internal buffer. - The total number of elements read into the . - - - - Gets the size of the internal buffer. - - - - - Gets the number of buffered elements. - - - - - Clears the internal buffer. - - - - - Disposes the and releases the internal used buffer. - - - - - Disposes the and releases the internal used buffer. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Default destructor which calls the method. - - - - - Represents a complex number. - - - - - A complex number with a total length of zero. - - - - - Imaginary component of the complex number. - - - - - Real component of the complex number. - - - - - Initializes a new instance of the structure. - - The real component of the complex number. - The imaginary component of the complex number will be set to zero. - - - - Initializes a new instance of the structure. - - The real component of the complex number. - The imaginary component of the complex number. - - - - Gets the absolute value of the complex number. - - - - - Defines an implicit conversion of a complex number to a single-precision floating-point number. - - Complex number. - The absolute value of the . - - - - Defines an implicit conversion of a complex number to a double-precision floating-point number. - - Complex number. - The absolute value of the . - - - - Implements the operator ==. - - The complex1. - The complex2. - - The result of the operator. - - - - - Implements the operator !=. - - The complex1. - The complex2. - - The result of the operator. - - - - - Indicates whether the current complex value is equal to another complex value. - - A complex value to compare with this complex value. - - true if the current complex value is equal to the complex value; otherwise, false. - - - - - Determines whether the specified , is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Values that are used in activation calls to indicate the execution contexts in which an object is to be run. - - - - - The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context. - - - - - Indicates a handler dll, which runs on the same process as the caller. - - - - - Indicates a server executable, which runs on the same machine but on a different process than the caller. - - - - - Obsolete. - - - - - Indicates a server executable, which runs on a different machine than the caller. - - - - - Obsolete. - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - Indicates that code should not be allowed to be downloaded from the Directory Service (if any) or the Internet. - - - - - Reserved. - - - - - Specify if you want the activation to fail if it uses custom marshalling. - - - - - Enables the downloading of code from the directory service or the Internet. - - - - - Indicates that no log messages about activation failure should be written to the Event Log. - - - - - Indicates that activate-as-activator capability is disabled for this activation only. - - - - - Indicates that activate-as-activator capability is enabled for this activation only. - - - - - Indicates that activation should begin from the default context of the current apartment. - - - - - Activate or connect to a 32-bit version of the server; fail if one is not registered. - - - - - Activate or connect to a 64 bit version of the server; fail if one is not registered. - - - - - When this flag is specified, COM uses the impersonation token of the thread, if one is present, for the activation request made by the thread. When this flag is not specified or if the thread does not have an impersonation token, COM uses the process token of the thread's process for the activation request made by the thread. - - - - - Indicates activation is for an app container. Reserved for internal use. - - - - - Specify this flag for Interactive User activation behavior for As-Activator servers. - - - - - Used for loading Proxy/Stub DLLs. - - - - - Bitwise combination of the and the constants. - - - - - Bitwise combination of the , the and the constants. - - - - - Bitwise combination of the and the constants. - - - - - Managed implementation of the interface. See . - - - - - Initializes a new instance of the class. - - Underlying . - - - - Initializes a new instance of the class. - - Underlying . - Indicates whether the underlying stream should be disposed on . - - - - Creates a new stream object with its own seek pointer that references the same bytes as the original stream. - - When this method returns, contains the new stream object. This parameter is passed uninitialized. - HRESULT - - - - Ensures that any changes made to a stream object that is open in transacted mode are reflected in the parent storage. - - A value that controls how the changes for the stream object are committed. - HRESULT - - - - Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream. - - A reference to the destination stream. - The number of bytes to copy from the source stream. - On successful return, contains the actual number of bytes read from the source. - On successful return, contains the actual number of bytes written to the destination. - HRESULT - - - - Restricts access to a specified range of bytes in the stream. - - The byte offset for the beginning of the range. - The length of the range, in bytes, to restrict. - The requested restrictions on accessing the range. - HRESULT - - - - Reads a specified number of bytes from the stream object into memory starting at the current seek pointer. - - When this method returns, contains the data read from the stream. This parameter is passed uninitialized. - The number of bytes to read from the stream object. - A pointer to a ULONG variable that receives the actual number of bytes read from the stream object. - HRESULT - - - - Discards all changes that have been made to a transacted stream since the last Commit call. - - HRESULT - - - - Changes the seek pointer to a new location relative to the beginning of the stream, to the end of the stream, or to the current seek pointer. - - The displacement to add to dwOrigin. - The origin of the seek. The origin can be the beginning of the file, the current seek pointer, or the end of the file. - On successful return, contains the offset of the seek pointer from the beginning of the stream. - HRESULT - - - - Changes the size of the stream object. - - The new size of the stream as a number of bytes. - HRESULT - - - - Retrieves the STATSTG structure for this stream. - - When this method returns, contains a STATSTG structure that describes this stream object. This parameter is passed uninitialized. - Members in the STATSTG structure that this method does not return, thus saving some memory allocation operations. - HRESULT - - - - Removes the access restriction on a range of bytes previously restricted with the LockRegion method. - - The byte offset for the beginning of the range. - The length, in bytes, of the range to restrict. - The access restrictions previously placed on the range. - HRESULT - - - - Writes a specified number of bytes into the stream object starting at the current seek pointer. - - The buffer to write this stream to. - he number of bytes to write to the stream. - On successful return, contains the actual number of bytes written to the stream object. If the caller sets this pointer to Zero, this method does not provide the actual number of bytes written. - HRESULT - - - - Gets a value indicating whether the current stream supports reading. - - - - - Gets a value indicating whether the current stream supports seeking. - - - - - Gets a value indicating whether the current stream supports writing. - - - - - Clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - - - - Gets the length in bytes of the stream. - - - - - Gets or sets the position within the current stream. - - - - - Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. - The zero-based byte offset in buffer at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - - - Sets the position within the current stream. - - A byte offset relative to the origin parameter. - A value of type indicating the reference point used to obtain the new position. - The new position within the current stream. - - - - Sets the length of the current stream. - - The desired length of the current stream in bytes. - - - - Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - An array of bytes. This method copies count bytes from buffer to the current stream. - The zero-based byte offset in buffer at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - - - - Releases the unmanaged resources used by the Stream and optionally releases the managed resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. - - - - - Provides the managed definition of the IStream interface. - - - - - Reads a specified number of bytes from the stream object into memory starting at the current seek pointer. - - When this method returns, contains the data read from the stream. This parameter is passed uninitialized. - The number of bytes to read from the stream object. - A pointer to a ULONG variable that receives the actual number of bytes read from the stream object. - HRESULT - - - - Writes a specified number of bytes into the stream object starting at the current seek pointer. - - The buffer to write this stream to. - he number of bytes to write to the stream. - On successful return, contains the actual number of bytes written to the stream object. If the caller sets this pointer to Zero, this method does not provide the actual number of bytes written. - HRESULT - - - - Changes the seek pointer to a new location relative to the beginning of the stream, to the end of the stream, or to the current seek pointer. - - The displacement to add to dwOrigin. - The origin of the seek. The origin can be the beginning of the file, the current seek pointer, or the end of the file. - On successful return, contains the offset of the seek pointer from the beginning of the stream. - HRESULT - - - - Changes the size of the stream object. - - The new size of the stream as a number of bytes. - HRESULT - - - - Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream. - - A reference to the destination stream. - The number of bytes to copy from the source stream. - On successful return, contains the actual number of bytes read from the source. - On successful return, contains the actual number of bytes written to the destination. - HRESULT - - - - Ensures that any changes made to a stream object that is open in transacted mode are reflected in the parent storage. - - A value that controls how the changes for the stream object are committed. - HRESULT - - - - Discards all changes that have been made to a transacted stream since the last Commit call. - - HRESULT - - - - Restricts access to a specified range of bytes in the stream. - - The byte offset for the beginning of the range. - The length of the range, in bytes, to restrict. - The requested restrictions on accessing the range. - HRESULT - - - - Removes the access restriction on a range of bytes previously restricted with the LockRegion method. - - The byte offset for the beginning of the range. - The length, in bytes, of the range to restrict. - The access restrictions previously placed on the range. - HRESULT - - - - Retrieves the STATSTG structure for this stream. - - When this method returns, contains a STATSTG structure that describes this stream object. This parameter is passed uninitialized. - Members in the STATSTG structure that this method does not return, thus saving some memory allocation operations. - HRESULT - - - - Creates a new stream object with its own seek pointer that references the same bytes as the original stream. - - When this method returns, contains the new stream object. This parameter is passed uninitialized. - HRESULT - - - - Exception for Com Exceptions. - - - - - Throws an if the is not . - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Name of the Cominterface which caused the error. - - - - - Name of the member of the Cominterface which caused the error. - - - - - Initializes a new instance of the class. - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - The StreamingContext object that supplies the contextual information about the source or destination. - - - - Populates a with the data needed to serialize the target object. - - The to populate with data. - The destination (see StreamingContext) for this serialization. - - - - Exposes methods for enumerating, getting, and setting property values. - - - For more information, - . - - - - - Device description - key - - - - - Device interface enabled - key - - - - - Device interface CLSID - key - - - - - Device friendly name - key - - - - - Audio Endpoint Path - key - - - - - Audio Engine Device Format - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the number of properties available. - - - - - Gets or sets the at the specified index. - - - The . - - The index. - The at the specified index. - - - - Gets or sets the for the specified . - - The key. - - - - Returns an enumerator that iterates through the . - - - A that can be used to iterate through the . - - - - - Returns an enumerator that iterates through the . - - - An object that can be used to iterate through the . - - - - - Gets data for a specific property. - - The zero-based index of the property. - The data of the specified property. - The is bigger or equal to . - - - - Gets data for a specific property. - - The of the property. The key can be obtained by calling the method. - The data of the specified property. - - - - Gets a property key from an item's array of properties. - - The zero-based index of the property key in the array of structures. - The . - - - - Sets a new property value, or replaces or removes an existing value. - - The index of the property. - The new property data. - The is bigger or equal to . - - - - Sets a new property value, or replaces or removes an existing value. - - The of the property. The key can be obtained by calling the method. - The new property data. - - - - Saves a property change. - - - For more information see - . - - - - - Represents a native 4 byte boolean value. - - - - - Represents the boolean value true as a . - - - - - Represents the boolean value false as a . - - - - - Initializes a new instance of the structure based on a boolean value. - - The boolean value. - - - - Returns a value indicating whether this instance is equal to a object. - - A value to compare to this instance. - true if obj has the same value as this instance; otherwise, false. - - - - Returns a value indicating whether this instance is equal to a specified object. - - An object to compare to this instance. - true if obj is a and has the same value as this instance; otherwise, false. - - - - Returns the hash code for this instance. - - A hash code for the current . - - - - Implements the operator ==. - - The left. - The right. - - The result of the operator. - - - - - Implements the operator !=. - - The left. - The right. - - The result of the operator. - - - - - Performs an implicit conversion from to . - - The value. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - if set to true [value]. - - The result of the conversion. - - - - - Converts the value of this instance to its equivalent string representation (either "True" or "False"). - - The string representation of this instance. - - - - Defines common HRESULT error codes. - - - - - S_OK - - - - - S_FALSE - - - - - E_ABORT - - - - - E_ACCESSDENIED - - - - - E_NOINTERFACE - - - - - E_FAIL - - - - - E_INVALIDARG - - - - - E_POINTER - - - - - E_NOTIMPL - - - - - E_NOTFOUND - - - - - MF_E_ATTRIBUTENOTFOUND - - - - - MF_E_SHUTDOWN - - - - - AUDCLNT_E_UNSUPPORTED_FORMAT - - - - - AUDCLNT_E_DEVICE_INVALIDATED - - - - - AUDCLNT_S_BUFFER_EMPTY - - - - - Blob - - - - - Number of bytes stored in the blob. - - - - - Pointer to a byte array which stores the data. - - - - - Returns the data stored in the . - - The data stored in the - - - - Converts the data stored in the based on an to a string and returns the string. - - Encoding used to convert the data to a string. - String of the stored data. - - - - Returns a that represents the data stored in the as hex string. - - - A that represents the data stored in the as hex string. - - - - - Specifies the FMTID/PID identifier that programmatically identifies a property. - - - For more information, see - . - - - - - A unique GUID for the property. - - - - - A property identifier (PID). - - - - - Initializes a new instance of the struct. - - The unique GUID for the property. - The property identifier (PID). - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The structure is used to store data. - - For more information, see . - - - - Value type tag. - - - - - Reserved for future use. - - - - - Reserved for future use. - - - - - Reserved for future use. - - - - - VT_I1, Version 1 - - - - - VT_UI1 - - - - - VT_I2 - - - - - VT_UI2 - - - - - VT_I4 - - - - - VT_UI4 - - - - - VT_INT, Version 1 - - - - - VT_UINT, Version 1 - - - - - VT_I8 - - - - - VT_UI8 - - - - - VT_R4 - - - - - VT_R8 - - - - - VT_BOOL - - - - - VT_ERROR - - - - - VT_DATE - - - - - VT_FILETIME - - - - - VT_BLOB - - - - - VT_PTR - - - - - Gets or sets the datatype of the . - - - - - Returns the associated value of the . The type of the returned value is defined through the property. - - The associated value of the . If the datatype is not supported, the method will return null. - Not all datatypes are supported. - - - - Releases the associated memory by calling the PropVariantClear function. - - - - - Returns a that represents the value of this instance. - - - A that represents the value of this instance. - - - - - Represents a native COM object. - - - - - Unsafe native pointer to the COM object. - - - - - Gets a value which indicates whether the got already disposed. - - - - - Native pointer to the COM object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Queries supported interfaces/objects on a . - - The being requested. - The queried com interface/object. - - - - Retrieves a pointer to the supported interface on an object. - - Type of the requested . - A pointer to the requested interface. - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Releases the COM object. - - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Enables clients to get pointers to other interfaces on a given object through the method, and manage the existence of the object through the and methods. - - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Specifies the category of an audio stream. - - - - - Other audio stream. - - - - - Media that will only stream when the app is in the foreground. - - - - - Media that can be streamed when the app is in the background. - - - - - Real-time communications, such as VOIP or chat. - - - - - Alert sounds. - - - - - Sound effects. - - - - - Game sound effects. - - - - - Background audio for games. - - - - - Contains the new global debug configuration for XAudio2. Used with the - function. - - - - - Bitmask of enabled debug message types. For a list of possible values take look at: - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_debug_configuration(v=vs.85).aspx. - - - - - Message types that will cause an immediate break. For a list of possible values take look at: - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_debug_configuration(v=vs.85).aspx. - - - - - Indicates whether to log the thread ID with each message. - - - - - Indicates whether to log source files and line numbers. - - - - - Indicates whether to log function names. - - - - - Indicates whether to log message timestamps. - - - - - Provides information about an audio device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Defines an effect chain. - - - - - Number of effects in the effect chain for the voice. - - - - - Pointer to an array of structures containing pointers to XAPO instances. - - - - - Contains information about an XAPO for use in an effect chain. - - - - - Pointer to the IUnknown interface of the XAPO object. - - - - - TRUE if the effect should begin in the enabled state. Otherwise, FALSE. - - - - - Number of output channels the effect should produce. - - - - - Defines filter parameters for a source voice. - - - - - The . - - - - - Filter radian frequency calculated as (2 * sin(pi * (desired filter cutoff frequency) / sampleRate)). - The frequency must be greater than or equal to 0 and less than or equal to 1.0f. - The maximum frequency allowable is equal to the source sound's sample rate divided by - six which corresponds to the maximum filter radian frequency of 1. - For example, if a sound's sample rate is 48000 and the desired cutoff frequency is the maximum - allowable value for that sample rate, 8000, the value for Frequency will be 1. - - - - - Reciprocal of Q factor. Controls how quickly frequencies beyond Frequency are dampened. Larger values - result in quicker dampening while smaller values cause dampening to occur more gradually. - Must be greater than 0 and less than or equal to 1.5f. - - - - - Indicates the filter type. - - - Note Note that the DirectX SDK versions of XAUDIO2 do not support the LowPassOnePoleFilter or the - HighPassOnePoleFilter. - - - - - Attenuates (reduces) frequencies above the cutoff frequency. - - - - - Attenuates frequencies outside a given range. - - - - - Attenuates frequencies below the cutoff frequency. - - - - - Attenuates frequencies inside a given range. - - - - - XAudio2.8 only: Attenuates frequencies above the cutoff frequency. This is a one-pole filter, and - has no effect. - - - - - XAudio2.8 only: Attenuates frequencies below the cutoff frequency. This is a one-pole filter, and - has no effect. - - - - - Flags controlling which voice state data should be returned. - - - - - Calculate all values. - - - - - Calculate all values except . - - - - - Internal used IXAudio2EngineCallback-wrapper. The default implementation of this interface is - . - - - - - OnProcessingPassStart - - - - - OnProcessingPassEnd - - - - - OnCriticalError - - Errorcode - - - - The IXAudio2VoiceCallback interface contains methods that notify the client when certain events happen in a given - . - - - - - Called during each processing pass for each voice, just before XAudio2 reads data from the voice's buffer queue. - - - The number of bytes that must be submitted immediately to avoid starvation. This allows the implementation of - just-in-time streaming scenarios; the client can keep the absolute minimum data queued on the voice at all times, - and pass it fresh data just before the data is required. This model provides the lowest possible latency attainable - with XAudio2. For xWMA and XMA data BytesRequired will always be zero, since the concept of a frame of xWMA or XMA - data is meaningless. - Note: In a situation where there is always plenty of data available on the source voice, BytesRequired should - always report zero, because it doesn't need any samples immediately to avoid glitching. - - - - - Called just after the processing pass for the voice ends. - - - - - Called when the voice has just finished playing a contiguous audio stream. - - - - - Called when the voice is about to start processing a new audio buffer. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice finishes processing a buffer. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice reaches the end position of a loop. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when a critical error occurs during voice processing. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - The HRESULT code of the error encountered. - - - - Specifies values for the and - . - - - - - Log nothing. - - - - - Log error messages. - - - - - Log warning messages. Note: Enabling also enables . - - - - - Log informational messages. - - - - - Log detailed informational messages. Note: Enabling also enables . - - - - - Log public API function entries and exits. - - - - - Log internal function entries and exits. Note: Enabling also enables - . - - - - - Log delays detected and other timing data. - - - - - Log usage of critical sections and mutexes. - - - - - Log memory heap usage information. - - - - - Log audio streaming information. - - - - - All - - - - - Contains performance information. Used by . - - - - - CPU cycles spent on audio processing since the last call to the or - function. - - - - - Total CPU cycles elapsed since the last call. Note: This only counts cycles on the CPU on which XAudio2 is running. - - - - - Fewest CPU cycles spent on processing any single audio quantum since the last call. - - - - - Most CPU cycles spent on processing any single audio quantum since the last call. - - - - - Total memory currently in use. - - - - - Minimum delay that occurs between the time a sample is read from a source buffer and the time it reaches the - speakers. - - - - - Total audio dropouts since the engine started. - - - - - Number of source voices currently playing. - - - - - Total number of source voices currently in existence. - - - - - Number of submix voices currently playing. - - - - - Number of resampler xAPOs currently active. - - - - - Number of matrix mix xAPOs currently active. - - - - - Not supported on Windows. Xbox 360. Number of source voices decoding XMA data. - - - - - Not supported on Windows. A voice can use more than one XMA stream. - - - - - Flags that specify how a is stopped. - - - - - None - - - - - Continue emitting effect output after the voice is stopped. - - - - - Extends the the to enable real-time audio streaming. - - - - - Initializes a new instance of the class with a default buffer size of 100ms. - - Instance of the class, used to create the . - The instance which provides audio data to play. - - - - Initializes a new instance of the class. - - Instance of the class, used to create the . - The instance which provides audio data to play. - - Buffersize of the internal buffers, in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - - - - Initializes a new instance of the class. - - Pointer to a object. - - instance which receives notifications from the - which got passed as a pointer (see the argument). - - which provides the audio data to stream. - - Buffersize of the internal used buffers in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - It is recommended to use the method instead of the this constructor. - - - - Creates an instance of the class. - - Instance of the class. - which provides the audio data to stream. - - Buffersize of the internal used buffers in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - Configured instance. - - - - Occurs when the playback stops and no more data is available. - - This event occurs whenever the event occurs. - - - - Notifies the class that new data got requested. If there are any buffers which - are currently not queued and the underlying holds any more data, this data refills the - internal used buffers and provides audio data to play. - - - - - Stops and disposes the , closes the internal used waithandle and frees the - allocated memory of all used buffers. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Provides a mechanism for playing instances. - - - - - Maximum amount of instances a can - contain. - - Limited by the method. - - - - Gets the default singleton instance. - - - - - Gets the number of items which got added to the . - - - - - Disposes the . - - - - - Adds a to the . - - - The instance to add to the - . - - - - - Removes a from the . - - - The instance to remove from the - . - - - - - Disposes the and stops the internal playback thread. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Default implementation of the interface. - - - - - Called during each processing pass for each voice, just before XAudio2 reads data from the voice's buffer queue. - The only argument passed to the eventhandler is the number of required bytes: - The number of bytes that must be submitted immediately to avoid starvation. This allows the implementation of - just-in-time streaming scenarios; the client can keep the absolute minimum data queued on the voice at all times, - and pass it fresh data just before the data is required. This model provides the lowest possible latency attainable - with XAudio2. For xWMA and XMA data BytesRequired will always be zero, since the concept of a frame of xWMA or XMA - data is meaningless. - Note: In a situation where there is always plenty of data available on the source voice, BytesRequired should - always report zero, because it doesn't need any samples immediately to avoid glitching. - - - - - Called just after the processing pass for the voice ends. - - - - - Called when the voice has just finished playing a contiguous audio stream. - - - - - Called when the voice is about to start processing a new audio buffer. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice finishes processing a buffer. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice reaches the end position of a loop. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when a critical error occurs during voice processing. - The first argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - The second argument passed to the eventhandler is the HRESULT error code of the critical error. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Contains information about the creation flags, input channels, and sample rate of a voice. - - - - - Flags used to create the voice; see the individual voice interfaces for more information. - - - - - Flags that are currently set on the voice. - - - - - The number of input channels the voice expects. - - - - - The input sample rate the voice expects. - - - - - VoiceFlags - - - - - None - - - - - No pitch control is available on the voice. - - - - - No sample rate conversion is available on the voice. The voice's outputs must have the same sample rate. - - - - - The filter effect should be available on this voice. - - - - - XAudio2.8 only: Not supported on Windows. - - - - - XAudio2.7 only: Indicates that no samples were played. - - - - - Defines a destination voice that is the target of a send from another voice and specifies whether a filter should - be used. - - - - - Either or . - - - - - The destination voice. - - - - - Creates a new instance of the structure. - - The . Must be either or . - The destination voice. Must not be null. - - - - Creates a new instance of the structure. - - The . Must be either or . - Pointer to the destination voice. Must not be . - - - - VoiceSendFlags - - - - - None. - - - - - Indicates a filter should be used on a voice send. - - - - - Defines a set of voices to receive data from a single output voice. - - - - - Number of voices to receive the output of the voice. An OutputCount value of 0 indicates the voice should not send - output to any voices. - - - - - Array of s. - - - - - Returns the voice's current state and cursor position data. - - - - - Pointer to a buffer context provided in the that is processed currently, or, - if the voice is stopped currently, to the next buffer due to be processed. - is NULL if there are no buffers in the queue. - - - - - Number of audio buffers currently queued on the voice, including the one that is processed currently. - - - - - Total number of samples processed by this voice since it last started, or since the last audio stream ended (as - marked with the flag). - This total includes samples played multiple times due to looping. - Theoretically, if all audio emitted by the voice up to this time is captured, this parameter would be the length of - the audio stream in samples. - If you specify when you call - , - this member won't be calculated, and its value is unspecified on return from - . - takes about one-third as much time to - complete when you specify . - - - - - Flags which define calculate flags for calculating the 3D audio parameters. - - - - - Enables matrix coefficient table calculation. - - - - - Enables delay time array calculation (stereo only). - - - - - Enables low pass filter (LPF) direct-path coefficient calculation. - - - - - Enables LPF reverb-path coefficient calculation. - - - - - Enables reverb send level calculation. - - - - - Enables Doppler shift factor calculation. - - - - - Enables emitter-to-listener interior angle calculation. - - - - - Fills the center channel with silence. This flag allows you to keep a 6-channel matrix so you do not have to remap the channels, but the center channel will be silent. This flag is only valid if you also set . - - - - - Applies an equal mix of all source channels to a low frequency effect (LFE) destination channel. It only applies to matrix calculations with a source that does not have an LFE channel and a destination that does have an LFE channel. This flag is only valid if you also set . - - - - - Specifies directionality for a single-channel non-Low-Frequency-Effect emitter by scaling DSP behavior with respect to the emitter's orientation. - - - For a detailed explanation of sound cones see . - - - - - X3DAUDIO_2PI - - - - - Inner cone angle in radians. This value must be within 0.0f to . - - - - - Outer cone angle in radians. This value must be within InnerAngle to . - - - - - Volume scaler on/within inner cone. This value must be within 0.0f to 2.0f. - - - - - Volume scaler on/beyond outer cone. This value must be within 0.0f to 2.0f. - - - - - LPF direct-path or reverb-path coefficient scaler on/within inner cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. - - - - - LPF direct-path or reverb-path coefficient scaler on or beyond outer cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. - - - - - Reverb send level scaler on or within inner cone. This must be within 0.0f to 2.0f. - - - - - Reverb send level scaler on/beyond outer cone. This must be within 0.0f to 2.0f. - - - - - Defines a DSP setting at a given normalized distance. - - - - - Normalized distance. This must be within 0.0f to 1.0f. - - - - - DSP control setting. - - - - - Receives the results from a call to . - See http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.x3daudio.x3daudio_dsp_settings%28v=vs.85%29.aspx for more details. - - - - - Caller provided array that will be initialized with the volume level of each source channel present in each - destination channel. The array must have at least ( × ) - elements. The array is arranged with the source channels as the column index of the array and the destination - channels as the row index of the array. - - - - - Caller provided delay time array, which receives delays for each destination channel in milliseconds. This array - must have at least elements. X3DAudio doesn't actually perform the delay. It simply - returns the - coefficients that may be used to adjust a delay DSP effect placed in the effect chain. The - member can - be NULL if the flag is not specified when calling - . - Note This member is only returned when X3DAudio is initialized for stereo output. For typical Xbox 360 usage, it - will not return any data at all. - - - - - Number of source channels. This must be initialized to the number of emitter channels before calling - . - - - - - Number of source channels. This must be initialized to the number of emitter channels before calling - . - - - - - LPF direct-path coefficient. Only calculated if the flag is specified when - calling . - When using X3DAudio with XAudio2 the value returned in the LPFDirectCoefficient member would be applied to a low - pass filter on a source voice with . - - - - - LPF reverb-path coefficient. Only calculated if the flag is specified when - calling . - - - - - Reverb send level. Only calculated if the flag is specified when calling - . - - - - - Doppler shift factor. Scales the resampler ratio for Doppler shift effect, where: - effective_frequency = DopplerFactor × original_frequency. - Only calculated if the flag is specified when calling - . - When using X3DAudio with XAudio2 the value returned in the DopplerFactor would be applied to a source voice with - . - - - - - Emitter-to-listener interior angle, expressed in radians with respect to the emitter's front orientation. - Only calculated if the flag is specified when calling - . - - - - - Distance in user-defined world units from the listener to the emitter base position. - - - - - Component of emitter velocity vector projected onto emitter-to-listener vector in user-defined world units per - second. - Only calculated if the flag is specified when calling - . - - - - - Component of listener velocity vector projected onto the emitter->listener vector in user-defined world units per - second. Only calculated if the flag is specified when calling - . - - - - - Gets the caller provided array that will be initialized with the volume level of each source channel present in each - destination channel. The array must have at least ( × ) - elements. The array is arranged with the source channels as the column index of the array and the destination - channels as the row index of the array. - - - - - Gets the caller provided delay time array, which receives delays for each destination channel in milliseconds. This array - must have at least elements. X3DAudio doesn't actually perform the delay. It simply - returns the - coefficients that may be used to adjust a delay DSP effect placed in the effect chain. This won't be calculated if the flag is not specified when calling - . - - - - - Gets the number of source channels. - - - - - Gets the number of source channels. - - - - - Gets the LPF direct-path coefficient. Only calculated if the flag is specified when - calling . - When using X3DAudio with XAudio2 the value returned in the LPFDirectCoefficient member would be applied to a low - pass filter on a source voice with . - - - - - Gets the LPF reverb-path coefficient. Only calculated if the flag is specified when - calling . - - - - - Gets the reverb send level. Only calculated if the flag is specified when calling - . - - - - - Gets the doppler shift factor. Scales the resampler ratio for Doppler shift effect, where: - effective_frequency = DopplerFactor × original_frequency. - Only calculated if the flag is specified when calling - . - When using X3DAudio with XAudio2 the value returned in the DopplerFactor would be applied to a source voice with - . - - - - - Gets the emitter-to-listener interior angle, expressed in radians with respect to the emitter's front orientation. - Only calculated if the flag is specified when calling - . - - - - - Gets the distance in user-defined world units from the listener to the emitter base position. - - - - - Gets the component of emitter velocity vector projected onto emitter-to-listener vector in user-defined world units per - second. - Only calculated if the flag is specified when calling - . - - - - - Gets the component of listener velocity vector projected onto the emitter->listener vector in user-defined world units per - second. Only calculated if the flag is specified when calling - . - - - - - Initializes a new instance of the class. - - The number of source channels. - The number of destination channels. - - - - Defines a single-point or multiple-point 3D audio source that is used with an arbitrary number of sound channels. - - - - - Gets or sets the sound cone. Used only with single-channel emitters for matrix, LPF (both direct and reverb paths), and reverb calculations. NULL specifies the emitter is omnidirectional. - - - - - Gets or sets the orientation of the front direction. This value must be orthonormal with . must be normalized when used. For single-channel emitters without cones is only used for emitter angle calculations. For multi channel emitters or single-channel with cones is used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Gets or sets the orientation of the top direction. This value must be orthonormal with . is only used with multi-channel emitters for matrix calculations. - - - - - Gets or sets the position in user-defined world units. This value does not affect . - - - - - Gets or sets the velocity vector in user-defined world units/second. This value is used only for doppler calculations. It does not affect . - - - - - Gets or sets the value to be used for the inner radius calculations. If is 0, then no inner radius is used, but may still be used. This value must be between 0.0f and FLT_MAX. - - - - - Gets or sets the value to be used for the inner radius angle calculations. This value must be between 0.0f and /4.0 (which equals 45°). - - - - - Gets or sets the number of emitters defined by the class. Must be greater than 0. - - - - - Gets or sets the distance from that channels will be placed if is greater than 1. is only used with multi-channel emitters for matrix calculations. Must be greater than or equal to 0.0f. - - - - - Gets or sets the table of channel positions, expressed as an azimuth in radians along the channel radius with respect to the front orientation vector in the plane orthogonal to the top orientation vector. An azimuth of 2* specifies a channel is a low-frequency effects (LFE) channel. LFE channels are positioned at the emitter base and are calculated with respect to only, never . must have at least elements, but can be NULL if = 1. The table values must be within 0.0f to 2*. is used with multi-channel emitters for matrix calculations. - - - - - Gets or sets the volume-level distance curve, which is used only for matrix calculations. NULL specifies a specialized default curve that conforms to the inverse square law, such that when distance is between 0.0f and × 1.0f, no attenuation is applied. When distance is greater than × 1.0f, the amplification factor is (× 1.0f)/distance. At a distance of × 2.0f, the sound will be at half volume or -6 dB, at a distance of × 4.0f, the sound will be at one quarter volume or -12 dB, and so on. and are independent of each other. does not affect LFE channel volume. - - - - - Gets or sets the LFE roll-off distance curve, or NULL to use default curve: [0.0f, ×1.0f], [ ×1.0f, 0.0f]. A NULL value for specifies a default curve that conforms to the inverse square law with distances <= clamped to no attenuation. and are independent of each other. does not affect non LFE channel volume. - - - - - Gets or sets the low-pass filter (LPF) direct-path coefficient distance curve, or NULL to use the default curve: [0.0f, 1.0f], [1.0f, 0.75f]. is only used for LPF direct-path calculations. - - - - - Gets or sets the LPF reverb-path coefficient distance curve, or NULL to use default curve: [0.0f, 0.75f], [1.0f, 0.75f]. is only used for LPF reverb path calculations. - - - - - Gets or sets the reverb send level distance curve, or NULL to use default curve: [0.0f, 1.0f], [1.0f, 0.0f]. - - - - - Gets or sets the curve distance scaler that is used to scale normalized distance curves to user-defined world units, and/or to exaggerate their effect. This does not affect any other calculations. The value must be within the range FLT_MIN to FLT_MAX. is only used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Doppler shift scaler that is used to exaggerate Doppler shift effect. is only used for Doppler calculations and does not affect any other calculations. The value must be within the range 0.0f to FLT_MAX. - - - - - Defines a point of 3D audio reception. - - - A listener's front and top vectors must be orthonormal. To be considered orthonormal, a pair of vectors must - have a magnitude of 1 +- 1x10-5 and a dot product of 0 +- 1x10-5. - - - - - Gets or sets the orientation of front direction. When is NULL OrientFront is used only for - matrix and delay calculations. When is not NULL OrientFront is used for matrix, LPF (both - direct and reverb paths), and reverb calculations. This value must be orthonormal with - when used. - - - - - Gets or sets the orientation of top direction, used only for matrix and delay calculations. This value must be - orthonormal with when used. - - - - - Gets or sets the position in user-defined world units. This value does not affect . - - - - - Gets or sets the velocity vector in user-defined world units per second, used only for doppler calculations. This - value does not affect . - - - - - Gets or sets the to use. Providing a listener cone will specify that additional calculations - are performed when determining the volume and filter DSP parameters for individual sound sources. A NULL - value specifies an omnidirectional sound and no cone processing is applied. - is only used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Provides access to the X3DAudio functions. - - - - - Initializes a new instance of the class. - - Assignment of channels to speaker positions. This value must not be zero. - - - - Initializes a new instance of class. - - - Speed of sound, in user-defined world units per second. Use this value only for doppler - calculations. It must be greater than or equal to zero. - - Assignment of channels to speaker positions. This value must not be zero. - - - - Calculates DSP settings with respect to 3D parameters. - - Represents the point of reception. - Represents the sound source. - Bitwise combination of specifying which 3D parameters to calculate. - - Instance of the class that receives the calculation results. - - - - - Disposes the instance. - - - - - Destructor which calls . - - - - - X3DAUDIO_HANDLE is an opaque data structure. Because the operating system doesn't allocate any additional storage - for the 3D audio instance handle, you don't need to free or close it. - - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all - changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Fired by XAudio2 just before an audio processing pass begins. - - - - - Fired by XAudio2 just after an audio processing pass ends. - - - - - Fired if a critical system error occurs that requires XAudio2 to be closed down and restarted. - - - - - Internal default ctor. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The XAudio2 subversion to use. - - - - Gets current resource usage details, such as available memory or CPU usage. - - - - - Gets the default device which can be used to create a mastering voice. - - Using XAudio2.7 the default device is 0 (as an integer). Using XAudio2.8 the default device is null. - - - - Gets the of the XAudio2 object. - - - - - Creates a new instance of the class. - If no supported XAudio2 version is available, the CreateXAudio2 method throws an - . - - A new instance. - - - - Creates a new instance of the class. - If no supported XAudio2 version is available, the CreateXAudio2 method throws an - . - - The to use. - A new instance. - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - If successful, returns a pointer to the new object. -
- - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - If successful, returns a new object. -
- - - Creates and configures a source voice. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - If successful, returns a new object. -
- - - Creates and configures a source voice. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - If successful, returns a new object. -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - On success, returns a pointer to the new object. - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - On success, returns a new object. - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - On success, returns a new object. - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - HRESULT - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - If successful, returns a pointer to the new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - XAudio2.8 only: The audio stream category to use for this mastering voice. - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - If successful, returns a new object. - - - - Starts the audio processing thread. - - HRESULT - - - - Starts the audio processing thread. - - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - - - - Returns the default device. - - The default device. - - - - Initializes the engine callback. - - - - - Represents an audio data buffer. - - - - - Maximum non-infinite LoopCount. - - - - - Infinite Loop. - - - - - MaxBufferBytes. See . - - - - - Flags that provide additional information about the audio buffer. - May be or . - - - - - Size of the audio data, in bytes. Must be no larger than for PCM data. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx. - - - - - Pointer to the audio data. - - - - - First sample in the buffer that should be played. - For XMA buffers this value must be a multiple of 128 samples. - - - - - Length of the region to be played, in samples. - A value of zero means to play the entire buffer, and, in this case, must be zero as well. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx. - - - - - First sample of the region to be looped. The value of must be less than - + . - can be less than . must be 0 if - is 0. - - - - - Length of the loop region, in samples. - The value of + must be greater than and - less than + . - must be zero if is 0. - If is not 0 then a loop length of zero indicates the entire sample should be looped. - - - - - Number of times to loop through the loop region. - This value can be between 0 and . - If LoopCount is zero no looping is performed and and must be 0. - To loop forever, set to . - - - - - Context value to be passed back in callbacks to the client. This may be . - - - - - Initializes a new instance of the structure. - - - - - - Returns a instance for the underlying . - - Call - - - - - - - Frees the allocated memory. - - - - - Frees the allocated memory. - - - - - Provides data for the , the and the - event. - - - - - Initializes a new instance of the class. - - - The context pointer that was assigned to the member - of the structure when the buffer was submitted. - - - - - Gets the context pointer that was assigned to the member of the - structure when the buffer was submitted. - - - - - Flags that provide additional information about the audio buffer. - - - - - None - - - - - Indicates that there cannot be any buffers in the queue after this buffer. The only effect of this flag is to - suppress debug output warnings caused by starvation of the buffer queue. - - - - - XAudio2CriticalErrorEventArgs - - - - - Initializes a new instance of the class. - - Errorcode - - - - Errorcode - - - - - Describes device roles of an XAudio2 Device. Used in . - - - - - Device is not used as the default device for any applications. - - - - - Device is used in audio console applications. - - - - - Device is used to play multimedia. - - - - - Device is used for voice communication. - - - - - Device is used in for games. - - - - - Devices is the default device for all applications. - - - - - The role of the device is not valid. - - - - - XAudio2EngineCallback - - - - - Fired by XAudio2 just before an audio processing pass begins. - - - - - Fired by XAudio2 just after an audio processing pass ends. - - - - - Fired if a critical system error occurs that requires XAudio2 to be closed down and restarted. - - - - - XAudio2-COMException. - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - A mastering voice is used to represent the audio output device. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - XAudio2.8 only: Gets the channel mask for this voice. - - - - - XAudio2.8 only: Returns the channel mask for this voice. - - - Returns the channel mask for this voice. This corresponds to the - member of the class. - - HRESULT - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - The number of bytes that must be submitted immediately to avoid starvation. - - - - Gets the number of bytes that must be submitted immediately to avoid starvation. - - - - - Defines values to use with XAudio2Create to specify available processors. - - - - - Processor 1 - - - - - Processor 2 - - - - - Processor 3 - - - - - Processor 4 - - - - - Processor 5 - - - - - Processor 6 - - - - - Processor 7 - - - - - Processor 8 - - - - - Processor 9 - - - - - Processor 10 - - - - - Processor 11 - - - - - Processor 12 - - - - - Processor 13 - - - - - Processor 14 - - - - - Processor 15 - - - - - Processor 16 - - - - - Processor 17 - - - - - Processor 18 - - - - - Processor 19 - - - - - Processor 20 - - - - - Processor 21 - - - - - Processor 22 - - - - - Processor 23 - - - - - Processor 24 - - - - - Processor 25 - - - - - Processor 26 - - - - - Processor 27 - - - - - Processor 28 - - - - - Processor 29 - - - - - Processor 30 - - - - - Processor 31 - - - - - Processor 32 - - - - - Any processor - - - - - Default processor for XAudio2.7, which is defined as . - - - - - Default processor for XAudio2.8, which is defined as . - - - - - Use a source voice to submit audio data to the XAudio2 processing pipeline.You must send voice data to a mastering - voice to be heard, either directly or through intermediate submix voices. - - - - - Gets the of the source voice. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - Flags that control how the voice is started. Must be 0. - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - Flags that control how the voice is started. Must be 0. - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - - - - Stops consumption of audio by the current voice. - - - Flags that control how the voice is stopped. Can be or - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Stops consumption of audio by the current voice. - - - - - Stops consumption of audio by the current voice. - - - Flags that control how the voice is stopped. Can be or - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Adds a new audio buffer to the voice queue. - - Pointer to an structure to queue. - Pointer to an additional XAudio2BufferWma structure used when submitting WMA data. - HRESULT - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.submitsourcebuffer(v=vs.85).aspx. - - - - - Adds a new audio buffer to the voice queue. - - structure to queue. - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.submitsourcebuffer(v=vs.85).aspx. - - - - - Removes all pending audio buffers from the voice queue. If the voice is started, the buffer that is currently - playing is not removed from the queue. - - HRESULT - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.flushsourcebuffers(v=vs.85).aspx. - - - - - Removes all pending audio buffers from the voice queue. If the voice is started, the buffer that is currently - playing is not removed from the queue. - - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.flushsourcebuffers(v=vs.85).aspx. - - - - - Notifies an XAudio2 voice that no more buffers are coming after the last one that is currently in its queue. - - HRESULT - - - - Notifies an XAudio2 voice that no more buffers are coming after the last one that is currently in its queue. - - - - - Stops looping the voice when it reaches the end of the current loop region. - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Stops looping the voice when it reaches the end of the current loop region. - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Stops looping the voice when it reaches the end of the current loop region. - - - - - Returns the voice's current cursor position data. - - structure containing the state of the voice. - - - - Returns the voice's current cursor position data. - - - XAudio2.8 only: Flags controlling which voice state data should be returned. - Valid values are or . - The default value is . If you specify - , GetState - returns only the buffer state, not the sampler state. - GetState takes roughly one-third as much time to complete when you specify - . - - structure containing the state of the voice. - If the is not the parameter will be ignored. - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - - - Returns the frequency adjustment ratio of the voi - - Current frequency adjustment ratio if successful. - - - - Reconfigures the voice to consume source data at a different sample rate than the rate specified when the voice was - created. - - - The new sample rate the voice should process submitted data at. Valid sample rates - are 1kHz to 200kHz. - - HRESULT - - - - Reconfigures the voice to consume source data at a different sample rate than the rate specified when the voice was - created. - - - The new sample rate the voice should process submitted data at. Valid sample rates - are 1kHz to 200kHz. - - - - - A submix voice is used primarily for performance improvements and effects processing. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Defines supported XAudio2 subversions. - - - - - XAudio2.7 - - - - - XAudio2.8 - - - - - Represents the base class from which , and - are derived. - - - - - Gets the XAudio2 Version. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Gets the of the . - These details include information about the number of input channels, the sample rate and the - . - - - - - Gets or sets the of the . - - - - - Gets or sets the volume of the . The default value is 1.0. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns information about the creation flags, input channels, and sample rate of a voice. - - object containing information about the voice. - HRESULT - - - - Designates a new set of submix or mastering voices to receive the output of the voice. - - - VoiceSends structure which contains Output voices. If is null, the voice will send - its output to the current mastering voice. All of the voices in a send list must have the same input sample rate. - - HRESULT - - - - Designates a new set of submix or mastering voices to receive the output of the voice. - - - Array of s. if is null, the voice will send - its output to the current mastering voice. - All voices in the must have the same input sample rate. - - - - - Replaces the effect chain of the voice. - - - Describes the new effect chain to use. - If null is passed, the current effect chain is removed. - - HRESULT - - - - Replaces the effect chain of the voice. - - - Describes the new effect chain to use. - If null is passed, the current effect chain is removed. - - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - - - Returns the running state of the effect at a specified position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - Returns true if the effect is enabled. If the effect is disabled, returns false. - - - - Returns whether the effect at the specified position in the effect chain is enabled. - - Zero-based index of an effect in the effect chain of the voice. - Returns true if the effect is enabled. If the effect is disabled, returns false. - - - - Sets parameters for a given effect in the voice's effect chain. - - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - Size of the array in bytes. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets parameters for a given effect in the voice's effect chain. - - Effect parameter. - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - - - - Sets parameters for a given effect in the voice's effect chain. - - Effect parameter. - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Returns the current effect-specific parameters of a given effect in the voice's effect chain. - - Zero-based index of an effect within the voice's effect chain. - Returns the current values of the effect-specific parameters. - Size of the array in bytes. - HRESULT - - - - Returns the current effect-specific parameters of a given effect in the voice's effect chain. - - Effect parameters. - Zero-based index of an effect within the voice's effect chain. - Effect parameters value. - - - - Sets the voice's filter parameters. - - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the voice's filter parameters. - - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Gets the voice's filter parameters. - - - structure containing the filter - information. - - HRESULT - - - - Gets the voice's filter parameters. - - structure containing the filter information. - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - - - Returns the filter parameters from one of this voice's sends. - - The destination voice of the send whose filter parameters will be read. - - structure containing the filter - information. - - HRESULT - - - - Returns the filter parameters from one of this voice's sends. - - The destination voice of the send whose filter parameters will be read. - structure containing the filter information. - - - - Sets the overall volume level for the voice. - - Overall volume level to use. See Remarks for more information on volume levels. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the overall volume level for the voice. - - Overall volume level to use. See Remarks for more information on volume levels. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Gets the current overall volume level of the voice. - - - Returns the current overall volume level of the voice. See Remarks for more information on volume - levels. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Gets the current overall volume level of the voice. - - The current overall volume level of the voice. See Remarks for more information on volume levels. - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns the volume levels for the voice, per channel. - These settings are applied after the effect chain is applied. - This method is valid only for source and submix voices, because mastering voices do not specify volume per channel. - - Confirms the channel count of the voice. - - Returns the current volume level of each channel in the voice. The array must have at least - elements. - See remarks for more information on volume levels. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns the volume levels for the voice, per channel. - These settings are applied after the effect chain is applied. - This method is valid only for source and submix voices, because mastering voices do not specify volume per channel. - - Confirms the channel count of the voice. - - Returns the current volume level of each channel in the voice. The has at least - elements. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - - - Gets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - The destination to retrieve the output matrix for. - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.getoutputmatrix(v=vs.85).aspx. - - HRESULT - - - - Gets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - The destination to retrieve the output matrix for. - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.getoutputmatrix(v=vs.85).aspx. - - - - - Destroys the voice. If necessary, stops the voice and removes it from the XAudio2 graph. - - - - - Disposes the and calls the method.. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - The context pointer that was assigned to the member - of the structure when the buffer was submitted. - - The HRESULT code of the error encountered - - - - Gets the HRESULT code of the error encountered. - - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - This constructor already calls . Don't call it a second time. - - - - Initializes a new instance of the class. - - - Specifies whether the XAudio2 engine should be created in debug mode. Pass true to enable the debug - mode. - - - Specifies which CPU to use. Use as - default value. - - This constructor already calls . Don't call it a second time. - - - - Returns the number of available audio output devices. - - Number of available audio output devices. - HRESULT - - - - Returns the number of available audio output devices. - - Number of available audio output devices. - - - - Returns information about an audio output device. - - - Index of the device to be queried. This value must be less than the count returned by - . - - structure. - HRESULT - - - - Returns information about an audio output device. - - - Index of the device to be queried. This value must be less than the count returned by - . - - structure. - - - - Sets XAudio2 parameters and prepares XAudio2 for use. - - Flags that specify the behavior of the XAudio2 object. This value must be 0. - - Specifies which CPU to use. Use as default value. - - HRESULT - - - - Sets XAudio2 parameters and prepares XAudio2 for use. - - Flags that specify the behavior of the XAudio2 object. This value must be 0. - - Specifies which CPU to use. Use as default value. - - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. Specifying the default value of 0 (zero) - causes XAudio2 to select the global default audio device. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - Not valid for XAudio 2.7. - HRESULT - - - - Starts the audio processing thread. - - HRESULT - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Returns the default device. - - The default device. - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - Specifies which CPU to use. Use as - default value. - - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. Specifying the default value of NULL - causes XAudio2 to select the global default audio device. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - HRESULT - - - - Starts the audio processing thread. - - HRESULT - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Returns the default device. - - The default device. - - - - Defines the format of waveform-audio data for formats having more than two channels or higher sample resolutions - than allowed by . - Can be used to define any format that can be defined by . - For more information see and - . - - - - - Returns the SubType-Guid of a . If the specified does - not contain a SubType-Guid, the gets converted to the equal SubType-Guid - using the method. - - which gets used to determine the SubType-Guid. - SubType-Guid of the specified . - - - - Gets the number of bits of precision in the signal. - Usually equal to . However, is the - container size and must be a multiple of 8, whereas can be any value not - exceeding the container size. For example, if the format uses 20-bit samples, - must be at least 24, but is 20. - - - - - Gets the number of samples contained in one compressed block of audio data. This value is used in buffer - estimation. This value is used with compressed formats that have a fixed number of samples within each block. This - value can be set to 0 if a variable number of samples is contained in each block of compressed audio data. In this - case, buffer estimation and position information needs to be obtained in other ways. - - - - - Gets a bitmask specifying the assignment of channels in the stream to speaker positions. - - - - - Subformat of the data, such as . The subformat information is similar to - that provided by the tag in the class's member. - - - - - Initializes a new instance of the class. - - - Samplerate of the waveform-audio. This value will get applied to the - property. - - - Bits per sample of the waveform-audio. This value will get applied to the - property and the property. - - - Number of channels of the waveform-audio. This value will get applied to the - property. - - Subformat of the data. This value will get applied to the property. - - - - Initializes a new instance of the class. - - - Samplerate of the waveform-audio. This value will get applied to the - property. - - - Bits per sample of the waveform-audio. This value will get applied to the - property and the property. - - - Number of channels of the waveform-audio. This value will get applied to the - property. - - Subformat of the data. This value will get applied to the property. - - Bitmask specifying the assignment of channels in the stream to speaker positions. Thie value - will get applied to the property. - - - - - Converts the instance to a raw instance by converting - the to the equal . - - A simple instance. - - - - Creates a new object that is a copy of the current instance. - - - A copy of the current instance. - - - - - Returns a string which describes the . - - A string which describes the . - - - - Defines the base for all audio streams which provide samples instead of raw byte data. - - - Compared to the , the provides samples instead of raw bytes. - That means that the and the properties - are expressed in samples. - Also the method provides samples instead of raw bytes. - - - - - Defines the base for all aggregators. - - - - - Defines the base for all aggregators. - - - - - Defines the base for all aggregators. - - The type of data, the aggregator provides. - The type of the aggreator type. - - - - Gets the underlying . - - - The underlying . - - - - - Defines the base for all audio streams which provide raw byte data. - - - Compared to the , the provides raw bytes instead of samples. - That means that the and the properties are - expressed in bytes. - Also the method provides samples instead of raw bytes. - - - - - Defines the base for all audio streams. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position. The unit of this property depends on the implementation of this interface. Some - implementations may not support this property. - - - - - Gets the length of the waveform-audio data. The unit of this property depends on the implementation of this - interface. Some implementations may not support this property. - - - - - Exception class for all MM-APIs like waveOut or ACM. - - - - - Throws an if the is not - . - - Errorcode. - Name of the function which returned the specified . - - - - Gets the which describes the error. - - - - - Gets the name of the function which caused the error. - - - - - Gets the name of the function which caused the error. - - - - - Initializes a new instance of the class. - - Errorcode. - Name of the function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - The StreamingContext object that supplies the contextual information about the source or destination. - - - - Populates a with the data needed to serialize the target object. - - The to populate with data. - The destination (see StreamingContext) for this serialization. - - - - Base class for most of the sample sources. - - - - - Creates a new instance of the class. - - Underlying base source which provides audio data. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets the underlying sample source. - - - - - Gets or sets a value which indicates whether to dispose the - on calling . - - - - - Disposes the and the underlying . - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls . - - - - - Provides a few basic extensions. - - - - - Gets the length of a as a . - - The source to get the length for. - The length of the specified as a value. - - - - Gets the position of a as a value. - - The source to get the position of. - The position of the specified as a value. - The source must support seeking to get or set the position. - Use the property to determine whether the stream supports seeking. - Otherwise a call to this method may result in an exception. - - - - Sets the position of a as a value. - - The source to set the new position for. - The new position as a value. - - The source must support seeking to get or set the position. - Use the property to determine whether the stream supports seeking. - Otherwise a call to this method may result in an exception. - - - - - Converts a duration in raw elements to a value. For more information about "raw elements" see remarks. - - The instance which provides the used - to convert the duration in "raw elements" to a value. - The duration in "raw elements" to convert to a value. - The duration as a value. - - source - or - elementCount - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration in raw elements to a duration in milliseconds. For more information about "raw elements" see remarks. - - The instance which provides the used - to convert the duration in "raw elements" to a duration in milliseconds. - The duration in "raw elements" to convert to duration in milliseconds. - The duration in milliseconds. - - source - or - elementCount - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration as a to a duration in "raw elements". For more information about "raw elements" see remarks. - - - instance which provides the used to convert - the duration as a to a duration in "raw elements". - - Duration as a to convert to a duration in "raw elements". - Duration in "raw elements". - source - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration in milliseconds to a duration in "raw elements". For more information about "raw elements" see remarks. - - instance which provides the used to convert - the duration in milliseconds to a duration in "raw elements". - Duration in milliseconds to convert to a duration in "raw elements". - - Duration in "raw elements". - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - source - milliseconds is less than zero. - - - - Creates a new file, writes all audio data of the to the file, and then closes the file. If the target file already exists, it is overwritten. - - Source which provides the audio data to write to the file. - The file to write to. - source - - - - Writes all audio data of the to a wavestream (including a wav header). - - Source which provides the audio data to write to the . - to store the audio data in. - - source - or - stream - - Stream is not writeable.;stream - - - - Writes all audio data of the to a stream. In comparison to the method, - the method won't encode the provided audio to any particular format. No wav, aiff,... header won't be included. - - The waveSource which provides the audio data to write to the . - The to store the audio data in. - - waveSource - or - stream - - Stream is not writeable.;stream - - - - Checks the length of an array. - - Type of the array. - The array to check. This parameter can be null. - The target length of the array. - A value which indicates whether the length of the array has to fit exactly the specified . - Array which fits the specified requirements. Note that if a new array got created, the content of the old array won't get copied to the return value. - - - - Blocks the current thread until the playback of the specified instance stops or the specified timeout expires. - - The instance to wait for its playback to stop. - The number of milliseconds to wait. Pass to wait indefinitely. - true if the got stopped; false if the specified expired. - - - - Blocks the current thread until the playback of the specified instance stops. - - The instance to wait for its playback to stop. - - - - Base class for all wave aggregators. - - - - - Creates a new instance of class. - - - - - Creates a new instance of class. - - Underlying base stream. - - - - Gets or sets a value which indicates whether to dispose the - on calling . - - - - - Gets or sets the underlying base stream of the WaveAggregator. - - - - - Gets the output WaveFormat. - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets or sets the position of the source. - - - - - Gets the length of the source. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the source and releases all allocated resources. - - - - - Disposes the and releases all allocated resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Destructor which calls . - - - - - Defines the format of waveform-audio data. - - - - - Gets the number of channels in the waveform-audio data. Mono data uses one channel and stereo data uses two - channels. - - - - - Gets the sample rate, in samples per second (hertz). - - - - - Gets the required average data transfer rate, in bytes per second. For example, 16-bit stereo at 44.1 kHz has an - average data rate of 176,400 bytes per second (2 channels — 2 bytes per sample per channel — 44,100 samples per - second). - - - - - Gets the block alignment, in bytes. The block alignment is the minimum atomic unit of data. For PCM data, the block - alignment is the number of bytes used by a single sample, including data for both channels if the data is stereo. - For example, the block alignment for 16-bit stereo PCM is 4 bytes (2 channels x 2 bytes per sample). - - - - - Gets the number of bits, used to store one sample. - - - - - Gets the size (in bytes) of extra information. This value is mainly used for marshalling. - - - - - Gets the number of bytes, used to store one sample. - - - - - Gets the number of bytes, used to store one block. This value equals multiplied with - . - - - - - Gets the waveform-audio format type. - - - - - Initializes a new instance of the class with a sample rate of 44100 Hz, bits per sample - of 16 bit, 2 channels and PCM as the format type. - - - - - Initializes a new instance of the class with PCM as the format type. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - - - - Initializes a new instance of the class. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - Format type or encoding of the wave format. - - - - Initializes a new instance of the class. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - Format type or encoding of the wave format. - Size (in bytes) of extra information. This value is mainly used for marshalling. - - - - Converts a duration in milliseconds to a duration in bytes. - - Duration in millisecond to convert to a duration in bytes. - Duration in bytes. - - - - Converts a duration in bytes to a duration in milliseconds. - - Duration in bytes to convert to a duration in milliseconds. - Duration in milliseconds. - - - - Indicates whether the current object is equal to another object of the same type. - - The to compare with this . - true if the current object is equal to the other parameter; otherwise, false. - - - - Returns a string which describes the . - - A string which describes the . - - - - Creates a new object that is a copy of the current instance. - - A copy of the current instance. - - - - Updates the - and the -property. - - -
-
diff --git a/parseManager/bin/Debug/NAudio.xml b/parseManager/bin/Debug/NAudio.xml new file mode 100644 index 0000000..dcc9342 --- /dev/null +++ b/parseManager/bin/Debug/NAudio.xml @@ -0,0 +1,22583 @@ + + + + NAudio + + + + + a-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts an a-law encoded byte to a 16 bit linear sample + + a-law encoded byte + Linear sample + + + + A-law encoder + + + + + Encodes a single 16 bit sample to a-law + + 16 bit PCM sample + a-law encoded byte + + + + SpanDSP - a series of DSP components for telephony + + g722_decode.c - The ITU G.722 codec, decode part. + + Written by Steve Underwood <steveu@coppice.org> + + Copyright (C) 2005 Steve Underwood + Ported to C# by Mark Heath 2011 + + Despite my general liking of the GPL, I place my own contributions + to this code in the public domain for the benefit of all mankind - + even the slimy ones who might try to proprietize my work and use it + to my detriment. + + Based in part on a single channel G.722 codec which is: + Copyright (c) CMU 1993 + Computer Science, Speech Group + Chengxiang Lu and Alex Hauptmann + + + + + hard limits to 16 bit samples + + + + + Decodes a buffer of G722 + + Codec state + Output buffer (to contain decompressed PCM samples) + + Number of bytes in input G722 data to decode + Number of samples written into output buffer + + + + Encodes a buffer of G722 + + Codec state + Output buffer (to contain encoded G722) + PCM 16 bit samples to encode + Number of samples in the input buffer to encode + Number of encoded bytes written into output buffer + + + + Stores state to be used between calls to Encode or Decode + + + + + ITU Test Mode + TRUE if the operating in the special ITU test mode, with the band split filters disabled. + + + + + TRUE if the G.722 data is packed + + + + + 8kHz Sampling + TRUE if encode from 8k samples/second + + + + + Bits Per Sample + 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. + + + + + Signal history for the QMF (x) + + + + + Band + + + + + In bit buffer + + + + + Number of bits in InBuffer + + + + + Out bit buffer + + + + + Number of bits in OutBuffer + + + + + Creates a new instance of G722 Codec State for a + new encode or decode session + + Bitrate (typically 64000) + Special options + + + + Band data for G722 Codec + + + + s + + + sp + + + sz + + + r + + + a + + + ap + + + p + + + d + + + b + + + bp + + + sg + + + nb + + + det + + + + G722 Flags + + + + + None + + + + + Using a G722 sample rate of 8000 + + + + + Packed + + + + + mu-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts a mu-law encoded byte to a 16 bit linear sample + + mu-law encoded byte + Linear sample + + + + mu-law encoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + Encodes a single 16 bit sample to mu-law + + 16 bit PCM sample + mu-law encoded byte + + + + Audio Capture Client + + + + + Gets a pointer to the buffer + + Pointer to the buffer + + + + Gets a pointer to the buffer + + Number of frames to read + Buffer flags + Pointer to the buffer + + + + Gets the size of the next packet + + + + + Release buffer + + Number of frames written + + + + Release the COM object + + + + + Windows CoreAudio AudioClient + + + + + Retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams. + Can be called before initialize + + + + + Initializes the Audio Client + + Share Mode + Stream Flags + Buffer Duration + Periodicity + Wave Format + Audio Session GUID (can be null) + + + + Retrieves the size (maximum capacity) of the audio buffer associated with the endpoint. (must initialize first) + + + + + Retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized. + + + + + Retrieves the number of frames of padding in the endpoint buffer (must initialize first) + + + + + Retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer. + (can be called before initialize) + + + + + Gets the minimum device period + (can be called before initialize) + + + + + Returns the AudioStreamVolume service for this AudioClient. + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Gets the AudioClockClient service + + + + + Gets the AudioRenderClient service + + + + + Gets the AudioCaptureClient service + + + + + Determines whether if the specified output format is supported + + The share mode. + The desired format. + True if the format is supported + + + + Determines if the specified output format is supported in shared mode + + Share Mode + Desired Format + Output The closest match format. + True if the format is supported + + + + Starts the audio stream + + + + + Stops the audio stream. + + + + + Set the Event Handle for buffer synchro. + + The Wait Handle to setup + + + + Resets the audio stream + Reset is a control method that the client calls to reset a stopped audio stream. + Resetting the stream flushes all pending data and resets the audio clock stream + position to 0. This method fails if it is called on a stream that is not stopped + + + + + Dispose + + + + + Audio Client Buffer Flags + + + + + None + + + + + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY + + + + + AUDCLNT_BUFFERFLAGS_SILENT + + + + + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR + + + + + The AudioClientProperties structure is used to set the parameters that describe the properties of the client's audio stream. + + http://msdn.microsoft.com/en-us/library/windows/desktop/hh968105(v=vs.85).aspx + + + + The size of the buffer for the audio stream. + + + + + Boolean value to indicate whether or not the audio stream is hardware-offloaded + + + + + An enumeration that is used to specify the category of the audio stream. + + + + + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + + AUDCLNT_SHAREMODE + + + + + AUDCLNT_SHAREMODE_SHARED, + + + + + AUDCLNT_SHAREMODE_EXCLUSIVE + + + + + AUDCLNT_STREAMFLAGS + + + + + None + + + + + AUDCLNT_STREAMFLAGS_CROSSPROCESS + + + + + AUDCLNT_STREAMFLAGS_LOOPBACK + + + + + AUDCLNT_STREAMFLAGS_EVENTCALLBACK + + + + + AUDCLNT_STREAMFLAGS_NOPERSIST + + + + + Defines values that describe the characteristics of an audio stream. + + + + + No stream options. + + + + + The audio stream is a 'raw' stream that bypasses all signal processing except for endpoint specific, always-on processing in the APO, driver, and hardware. + + + + + Audio Clock Client + + + + + Characteristics + + + + + Frequency + + + + + Get Position + + + + + Adjusted Position + + + + + Can Adjust Position + + + + + Dispose + + + + + Audio Endpoint Volume Channel + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + Volume Level + + + + + Volume Level Scalar + + + + + Audio Endpoint Volume Channels + + + + + Channel Count + + + + + Indexer - get a specific channel + + + + + Audio Endpoint Volume Notifiaction Delegate + + Audio Volume Notification Data + + + + Audio Endpoint Volume Step Information + + + + + Step + + + + + StepCount + + + + + Audio Endpoint Volume Volume Range + + + + + Minimum Decibels + + + + + Maximum Decibels + + + + + Increment Decibels + + + + + Audio Meter Information Channels + + + + + Metering Channel Count + + + + + Get Peak value + + Channel index + Peak value + + + + Audio Render Client + + + + + Gets a pointer to the buffer + + Number of frames requested + Pointer to the buffer + + + + Release buffer + + Number of frames written + Buffer flags + + + + Release the COM object + + + + + AudioSessionControl object for information + regarding an audio session + + + + + Constructor. + + + + + + Dispose + + + + + Finalizer + + + + + Audio meter information of the audio session. + + + + + Simple audio volume of the audio session (for volume and mute status). + + + + + The current state of the audio session. + + + + + The name of the audio session. + + + + + the path to the icon shown in the mixer. + + + + + The session identifier of the audio session. + + + + + The session instance identifier of the audio session. + + + + + The process identifier of the audio session. + + + + + Is the session a system sounds session. + + + + + the grouping param for an audio session grouping + + + + + + For chanigng the grouping param and supplying the context of said change + + + + + + + Registers an even client for callbacks + + + + + + Unregisters an event client from receiving callbacks + + + + + + AudioSessionEvents callback implementation + + + + + Constructor. + + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + AudioSessionManager + + Designed to manage audio sessions and in particuar the + SimpleAudioVolume interface to adjust a session volume + + + + + Session created delegate + + + + + Occurs when audio session has been added (for example run another program that use audio playback). + + + + + SimpleAudioVolume object + for adjusting the volume for the user session + + + + + AudioSessionControl object + for registring for callbacks and other session information + + + + + Refresh session of current device. + + + + + Returns list of sessions of current device. + + + + + Dispose. + + + + + Finalizer. + + + + + Specifies the category of an audio stream. + + + + + Other audio stream. + + + + + Media that will only stream when the app is in the foreground. + + + + + Media that can be streamed when the app is in the background. + + + + + Real-time communications, such as VOIP or chat. + + + + + Alert sounds. + + + + + Sound effects. + + + + + Game sound effects. + + + + + Background audio for games. + + + + + Manages the AudioStreamVolume for the . + + + + + Verify that the channel index is valid. + + + + + + + Return the current stream volumes for all channels + + An array of volume levels between 0.0 and 1.0 for each channel in the audio stream. + + + + Returns the current number of channels in this audio stream. + + + + + Return the current volume for the requested channel. + + The 0 based index into the channels. + The volume level for the channel between 0.0 and 1.0. + + + + Set the volume level for each channel of the audio stream. + + An array of volume levels (between 0.0 and 1.0) one for each channel. + + A volume level MUST be supplied for reach channel in the audio stream. + + + Thrown when does not contain elements. + + + + + Sets the volume level for one channel in the audio stream. + + The 0-based index into the channels to adjust the volume of. + The volume level between 0.0 and 1.0 for this channel of the audio stream. + + + + Dispose + + + + + Release/cleanup objects during Dispose/finalization. + + True if disposing and false if being finalized. + + + + Audio Volume Notification Data + + + + + Event Context + + + + + Muted + + + + + Guid that raised the event + + + + + Master Volume + + + + + Channels + + + + + Channel Volume + + + + + Audio Volume Notification Data + + + + + + + + + + Audio Client WASAPI Error Codes (HResult) + + + + + AUDCLNT_E_NOT_INITIALIZED + + + + + AUDCLNT_E_UNSUPPORTED_FORMAT + + + + + AUDCLNT_E_DEVICE_IN_USE + + + + + AUDCLNT_E_RESOURCES_INVALIDATED + + + + + Defined in AudioClient.h + + + + + Defined in AudioClient.h + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier for the audio session. + + Receives the session identifier. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier of the audio session instance. + + Receives the identifier of a particular instance. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the process identifier of the audio session. + + Receives the process identifier of the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Indicates whether the session is a system sounds session. + + An HRESULT code indicating whether the operation succeeded of failed. + + + + Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. + + A variable that enables or disables system auto-ducking. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Defines constants that indicate the current state of an audio session. + + + MSDN Reference: http://msdn.microsoft.com/en-us/library/dd370792.aspx + + + + + The audio session is inactive. + + + + + The audio session is active. + + + + + The audio session has expired. + + + + + Defines constants that indicate a reason for an audio session being disconnected. + + + MSDN Reference: Unknown + + + + + The user removed the audio endpoint device. + + + + + The Windows audio service has stopped. + + + + + The stream format changed for the device that the audio session is connected to. + + + + + The user logged off the WTS session that the audio session was running in. + + + + + The WTS session that the audio session was running in was disconnected. + + + + + The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + interface to receive session related events + + + + + notification of volume changes including muting of audio session + + the current volume + the current mute state, true muted, false otherwise + + + + notification of display name changed + + the current display name + + + + notification of icon path changed + + the current icon path + + + + notification of the client that the volume level of an audio channel in the session submix has changed + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + + + + notification of the client that the grouping parameter for the session has changed + + >The new grouping parameter for the session. + + + + notification of the client that the stream-activity state of the session has changed + + The new session state. + + + + notification of the client that the session has been disconnected + + The reason that the audio session was disconnected. + + + + Windows CoreAudio IAudioSessionManager interface + Defined in AudioPolicy.h + + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionNotification interface + Defined in AudioPolicy.h + + + + + + + session being added + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio ISimpleAudioVolume interface + Defined in AudioClient.h + + + + + Sets the master volume level for the audio session. + + The new volume level expressed as a normalized value between 0.0 and 1.0. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the client volume level for the audio session. + + Receives the volume level expressed as a normalized value between 0.0 and 1.0. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Sets the muting state for the audio session. + + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the current muting state for the audio session. + + Receives the muting state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + is defined in WTypes.h + + + + + Windows CoreAudio IAudioClient interface + Defined in AudioClient.h + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + + defined in MMDeviceAPI.h + + + + + IMMNotificationClient + + + + + Device State Changed + + + + + Device Added + + + + + Device Removed + + + + + Default Device Changed + + + + + Property Value Changed + + + + + + + is defined in propsys.h + + + + + implements IMMDeviceEnumerator + + + + + MMDevice STGM enumeration + + + + + from Propidl.h. + http://msdn.microsoft.com/en-us/library/aa380072(VS.85).aspx + contains a union so we have to do an explicit layout + + + + + Creates a new PropVariant containing a long value + + + + + Helper method to gets blob data + + + + + Interprets a blob as an array of structs + + + + + Gets the type of data in this PropVariant + + + + + Property value + + + + + allows freeing up memory, might turn this into a Dispose method? + + + + + Clears with a known pointer + + + + + Multimedia Device Collection + + + + + Device count + + + + + Get device by index + + Device index + Device at the specified index + + + + Get Enumerator + + Device enumerator + + + + Property Keys + + + + + PKEY_DeviceInterface_FriendlyName + + + + + PKEY_AudioEndpoint_FormFactor + + + + + PKEY_AudioEndpoint_ControlPanelPageProvider + + + + + PKEY_AudioEndpoint_Association + + + + + PKEY_AudioEndpoint_PhysicalSpeakers + + + + + PKEY_AudioEndpoint_GUID + + + + + PKEY_AudioEndpoint_Disable_SysFx + + + + + PKEY_AudioEndpoint_FullRangeSpeakers + + + + + PKEY_AudioEndpoint_Supports_EventDriven_Mode + + + + + PKEY_AudioEndpoint_JackSubType + + + + + PKEY_AudioEngine_DeviceFormat + + + + + PKEY_AudioEngine_OEMFormat + + + + + PKEY _Devie_FriendlyName + + + + + PKEY _Device_IconPath + + + + + Collection of sessions. + + + + + Returns session at index. + + + + + + + Number of current sessions. + + + + + Windows CoreAudio SimpleAudioVolume + + + + + Creates a new Audio endpoint volume + + ISimpleAudioVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Allows the user to adjust the volume from + 0.0 to 1.0 + + + + + Mute + + + + + Represents state of a capture device + + + + + Not recording + + + + + Beginning to record + + + + + Recording in progress + + + + + Requesting stop + + + + + Audio Capture using Wasapi + See http://msdn.microsoft.com/en-us/library/dd370800%28VS.85%29.aspx + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + Length of the audio buffer in milliseconds. A lower value means lower latency but increased CPU usage. + + + + Share Mode - set before calling StartRecording + + + + + Current Capturing State + + + + + Capturing wave format + + + + + Gets the default audio capture device + + The default audio capture device + + + + To allow overrides to specify different flags (e.g. loopback) + + + + + Start Capturing + + + + + Stop Capturing (requests a stop, wait for RecordingStopped event to know it has finished) + + + + + Dispose + + + + + Audio Endpoint Volume + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + On Volume Notification + + + + + Volume Range + + + + + Hardware Support + + + + + Step Information + + + + + Channels + + + + + Master Volume Level + + + + + Master Volume Level Scalar + + + + + Mute + + + + + Volume Step Up + + + + + Volume Step Down + + + + + Creates a new Audio endpoint volume + + IAudioEndpointVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Audio Meter Information + + + + + Peak Values + + + + + Hardware Support + + + + + Master Peak Value + + + + + Device State + + + + + DEVICE_STATE_ACTIVE + + + + + DEVICE_STATE_DISABLED + + + + + DEVICE_STATE_NOTPRESENT + + + + + DEVICE_STATE_UNPLUGGED + + + + + DEVICE_STATEMASK_ALL + + + + + Endpoint Hardware Support + + + + + Volume + + + + + Mute + + + + + Meter + + + + + The EDataFlow enumeration defines constants that indicate the direction + in which audio data flows between an audio endpoint device and an application + + + + + Audio rendering stream. + Audio data flows from the application to the audio endpoint device, which renders the stream. + + + + + Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, + to the application + + + + + Audio rendering or capture stream. Audio data can flow either from the application to the audio + endpoint device, or from the audio endpoint device to the application. + + + + + PROPERTYKEY is defined in wtypes.h + + + + + Format ID + + + + + Property ID + + + + + + + + + + + The ERole enumeration defines constants that indicate the role + that the system has assigned to an audio endpoint device + + + + + Games, system notification sounds, and voice commands. + + + + + Music, movies, narration, and live music recording + + + + + Voice communications (talking to another person). + + + + + MM Device + + + + + Audio Client + + + + + Audio Meter Information + + + + + Audio Endpoint Volume + + + + + AudioSessionManager instance + + + + + Properties + + + + + Friendly name for the endpoint + + + + + Friendly name of device + + + + + Icon path of device + + + + + Device ID + + + + + Data Flow + + + + + Device State + + + + + To string + + + + + Dispose + + + + + Finalizer + + + + + MM Device Enumerator + + + + + Creates a new MM Device Enumerator + + + + + Enumerate Audio Endpoints + + Desired DataFlow + State Mask + Device Collection + + + + Get Default Endpoint + + Data Flow + Role + Device + + + + Check to see if a default audio end point exists without needing an exception. + + Data Flow + Role + True if one exists, and false if one does not exist. + + + + Get device by ID + + Device ID + Device + + + + Registers a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + Unregisters a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + + + + Called to dispose/finalize contained objects. + + True if disposing, false if called from a finalizer. + + + + Property Store class, only supports reading properties at the moment. + + + + + Property Count + + + + + Gets property by index + + Property index + The property + + + + Contains property guid + + Looks for a specific key + True if found + + + + Indexer by guid + + Property Key + Property or null if not found + + + + Gets property key at sepecified index + + Index + Property key + + + + Gets property value at specified index + + Index + Property value + + + + Creates a new property store + + IPropertyStore COM interface + + + + Property Store Property + + + + + Property Key + + + + + Property Value + + + + + Envelope generator (ADSR) + + + + + Envelope State + + + + + Idle + + + + + Attack + + + + + Decay + + + + + Sustain + + + + + Release + + + + + Creates and Initializes an Envelope Generator + + + + + Attack Rate (seconds * SamplesPerSecond) + + + + + Decay Rate (seconds * SamplesPerSecond) + + + + + Release Rate (seconds * SamplesPerSecond) + + + + + Sustain Level (1 = 100%) + + + + + Sets the attack curve + + + + + Sets the decay release curve + + + + + Read the next volume multiplier from the envelope generator + + A volume multiplier + + + + Trigger the gate + + If true, enter attack phase, if false enter release phase (unless already idle) + + + + Current envelope state + + + + + Reset to idle state + + + + + Get the current output level + + + + + Fully managed resampler, based on Cockos WDL Resampler + + + + + Creates a new Resampler + + + + + sets the mode + if sinc set, it overrides interp or filtercnt + + + + + Sets the filter parameters + used for filtercnt>0 but not sinc + + + + + Set feed mode + + if true, that means the first parameter to ResamplePrepare will specify however much input you have, not how much you want + + + + Reset + + + + + Prepare + note that it is safe to call ResamplePrepare without calling ResampleOut (the next call of ResamplePrepare will function as normal) + nb inbuffer was WDL_ResampleSample **, returning a place to put the in buffer, so we return a buffer and offset + + req_samples is output samples desired if !wantInputDriven, or if wantInputDriven is input samples that we have + + + + returns number of samples desired (put these into *inbuffer) + + + + SMB Pitch Shifter + + + + + Pitch Shift + + + + + Pitch Shift + + + + + Short Time Fourier Transform + + + + + BiQuad filter + + + + + Passes a single sample through the filter + + Input sample + Output sample + + + + Set this up as a low pass filter + + Sample Rate + Cut-off Frequency + Bandwidth + + + + Set this up as a peaking EQ + + Sample Rate + Centre Frequency + Bandwidth (Q) + Gain in decibels + + + + Set this as a high pass filter + + + + + Create a low pass filter + + + + + Create a High pass filter + + + + + Create a bandpass filter with constant skirt gain + + + + + Create a bandpass filter with constant peak gain + + + + + Creates a notch filter + + + + + Creaes an all pass filter + + + + + Create a Peaking EQ + + + + + H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) + + + + a "shelf slope" parameter (for shelving EQ only). + When S = 1, the shelf slope is as steep as it can be and remain monotonically + increasing or decreasing gain with frequency. The shelf slope, in dB/octave, + remains proportional to S for all other values for a fixed f0/Fs and dBgain. + Gain in decibels + + + + H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) + + + + + + + + + + Type to represent complex number + + + + + Real Part + + + + + Imaginary Part + + + + + Summary description for FastFourierTransform. + + + + + This computes an in-place complex-to-complex FFT + x and y are the real and imaginary arrays of 2^m points. + + + + + Applies a Hamming Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hamming window + + + + Applies a Hann Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hann window + + + + Applies a Blackman-Harris Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Blackmann-Harris window + + + + Summary description for ImpulseResponseConvolution. + + + + + A very simple mono convolution algorithm + + + This will be very slow + + + + + This is actually a downwards normalize for data that will clip + + + + + http://tech.ebu.ch/docs/tech/tech3306-2009.pdf + + + + + WaveFormat + + + + + Data Chunk Position + + + + + Data Chunk Length + + + + + Riff Chunks + + + + + Represents an entry in a Cakewalk drum map + + + + + User customisable note name + + + + + Input MIDI note number + + + + + Output MIDI note number + + + + + Output port + + + + + Output MIDI Channel + + + + + Velocity adjustment + + + + + Velocity scaling - in percent + + + + + Describes this drum map entry + + + + + Represents a Cakewalk Drum Map file (.map) + + + + + Parses a Cakewalk Drum Map file + + Path of the .map file + + + + The drum mappings in this drum map + + + + + Describes this drum map + + + + + MP3 Frame decompressor using the Windows Media MP3 Decoder DMO object + + + + + Initializes a new instance of the DMO MP3 Frame decompressor + + + + + + Converted PCM WaveFormat + + + + + Decompress a single frame of MP3 + + + + + Alerts us that a reposition has occured so the MP3 decoder needs to reset its state + + + + + Dispose of this obejct and clean up resources + + + + + Audio Subtype GUIDs + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372553%28v=vs.85%29.aspx + + + + + Advanced Audio Coding (AAC). + + + + + Not used + + + + + Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). + + + + + Encrypted audio data used with secure audio path. + + + + + Digital Theater Systems (DTS) audio. + + + + + Uncompressed IEEE floating-point audio. + + + + + MPEG Audio Layer-3 (MP3). + + + + + MPEG-1 audio payload. + + + + + Windows Media Audio 9 Voice codec. + + + + + Uncompressed PCM audio. + + + + + Windows Media Audio 9 Professional codec over S/PDIF. + + + + + Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. + + + + + Dolby Digital (AC-3). + + + + + MPEG-4 and AAC Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + μ-law coding + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Adaptive delta pulse code modulation (ADPCM) + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Dolby Digital Plus formatted for HDMI output. + http://msdn.microsoft.com/en-us/library/windows/hardware/ff538392(v=vs.85).aspx + Reference : internet + + + + + MSAudio1 - unknown meaning + Reference : wmcodecdsp.h + + + + + IMA ADPCM ACM Wrapper + + + + + WMSP2 - unknown meaning + Reference: wmsdkidl.h + + + + + Creates an instance of either the sink writer or the source reader. + + + + + Creates an instance of the sink writer or source reader, given a URL. + + + + + Creates an instance of the sink writer or source reader, given an IUnknown pointer. + + + + + CLSID_MFReadWriteClassFactory + + + + + Media Foundation Errors + + + + RANGES + 14000 - 14999 = General Media Foundation errors + 15000 - 15999 = ASF parsing errors + 16000 - 16999 = Media Source errors + 17000 - 17999 = MEDIAFOUNDATION Network Error Events + 18000 - 18999 = MEDIAFOUNDATION WMContainer Error Events + 19000 - 19999 = MEDIAFOUNDATION Media Sink Error Events + 20000 - 20999 = Renderer errors + 21000 - 21999 = Topology Errors + 25000 - 25999 = Timeline Errors + 26000 - 26999 = Unused + 28000 - 28999 = Transform errors + 29000 - 29999 = Content Protection errors + 40000 - 40999 = Clock errors + 41000 - 41999 = MF Quality Management Errors + 42000 - 42999 = MF Transcode API Errors + + + + + MessageId: MF_E_PLATFORM_NOT_INITIALIZED + + MessageText: + + Platform not initialized. Please call MFStartup().%0 + + + + + MessageId: MF_E_BUFFERTOOSMALL + + MessageText: + + The buffer was too small to carry out the requested action.%0 + + + + + MessageId: MF_E_INVALIDREQUEST + + MessageText: + + The request is invalid in the current state.%0 + + + + + MessageId: MF_E_INVALIDSTREAMNUMBER + + MessageText: + + The stream number provided was invalid.%0 + + + + + MessageId: MF_E_INVALIDMEDIATYPE + + MessageText: + + The data specified for the media type is invalid, inconsistent, or not supported by this object.%0 + + + + + MessageId: MF_E_NOTACCEPTING + + MessageText: + + The callee is currently not accepting further input.%0 + + + + + MessageId: MF_E_NOT_INITIALIZED + + MessageText: + + This object needs to be initialized before the requested operation can be carried out.%0 + + + + + MessageId: MF_E_UNSUPPORTED_REPRESENTATION + + MessageText: + + The requested representation is not supported by this object.%0 + + + + + MessageId: MF_E_NO_MORE_TYPES + + MessageText: + + An object ran out of media types to suggest therefore the requested chain of streaming objects cannot be completed.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SERVICE + + MessageText: + + The object does not support the specified service.%0 + + + + + MessageId: MF_E_UNEXPECTED + + MessageText: + + An unexpected error has occurred in the operation requested.%0 + + + + + MessageId: MF_E_INVALIDNAME + + MessageText: + + Invalid name.%0 + + + + + MessageId: MF_E_INVALIDTYPE + + MessageText: + + Invalid type.%0 + + + + + MessageId: MF_E_INVALID_FILE_FORMAT + + MessageText: + + The file does not conform to the relevant file format specification. + + + + + MessageId: MF_E_INVALIDINDEX + + MessageText: + + Invalid index.%0 + + + + + MessageId: MF_E_INVALID_TIMESTAMP + + MessageText: + + An invalid timestamp was given.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SCHEME + + MessageText: + + The scheme of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_BYTESTREAM_TYPE + + MessageText: + + The byte stream type of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_TIME_FORMAT + + MessageText: + + The given time format is unsupported.%0 + + + + + MessageId: MF_E_NO_SAMPLE_TIMESTAMP + + MessageText: + + The Media Sample does not have a timestamp.%0 + + + + + MessageId: MF_E_NO_SAMPLE_DURATION + + MessageText: + + The Media Sample does not have a duration.%0 + + + + + MessageId: MF_E_INVALID_STREAM_DATA + + MessageText: + + The request failed because the data in the stream is corrupt.%0\n. + + + + + MessageId: MF_E_RT_UNAVAILABLE + + MessageText: + + Real time services are not available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE + + MessageText: + + The specified rate is not supported.%0 + + + + + MessageId: MF_E_THINNING_UNSUPPORTED + + MessageText: + + This component does not support stream-thinning.%0 + + + + + MessageId: MF_E_REVERSE_UNSUPPORTED + + MessageText: + + The call failed because no reverse playback rates are available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE_TRANSITION + + MessageText: + + The requested rate transition cannot occur in the current state.%0 + + + + + MessageId: MF_E_RATE_CHANGE_PREEMPTED + + MessageText: + + The requested rate change has been pre-empted and will not occur.%0 + + + + + MessageId: MF_E_NOT_FOUND + + MessageText: + + The specified object or value does not exist.%0 + + + + + MessageId: MF_E_NOT_AVAILABLE + + MessageText: + + The requested value is not available.%0 + + + + + MessageId: MF_E_NO_CLOCK + + MessageText: + + The specified operation requires a clock and no clock is available.%0 + + + + + MessageId: MF_S_MULTIPLE_BEGIN + + MessageText: + + This callback and state had already been passed in to this event generator earlier.%0 + + + + + MessageId: MF_E_MULTIPLE_BEGIN + + MessageText: + + This callback has already been passed in to this event generator.%0 + + + + + MessageId: MF_E_MULTIPLE_SUBSCRIBERS + + MessageText: + + Some component is already listening to events on this event generator.%0 + + + + + MessageId: MF_E_TIMER_ORPHANED + + MessageText: + + This timer was orphaned before its callback time arrived.%0 + + + + + MessageId: MF_E_STATE_TRANSITION_PENDING + + MessageText: + + A state transition is already pending.%0 + + + + + MessageId: MF_E_UNSUPPORTED_STATE_TRANSITION + + MessageText: + + The requested state transition is unsupported.%0 + + + + + MessageId: MF_E_UNRECOVERABLE_ERROR_OCCURRED + + MessageText: + + An unrecoverable error has occurred.%0 + + + + + MessageId: MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS + + MessageText: + + The provided sample has too many buffers.%0 + + + + + MessageId: MF_E_SAMPLE_NOT_WRITABLE + + MessageText: + + The provided sample is not writable.%0 + + + + + MessageId: MF_E_INVALID_KEY + + MessageText: + + The specified key is not valid. + + + + + MessageId: MF_E_BAD_STARTUP_VERSION + + MessageText: + + You are calling MFStartup with the wrong MF_VERSION. Mismatched bits? + + + + + MessageId: MF_E_UNSUPPORTED_CAPTION + + MessageText: + + The caption of the given URL is unsupported.%0 + + + + + MessageId: MF_E_INVALID_POSITION + + MessageText: + + The operation on the current offset is not permitted.%0 + + + + + MessageId: MF_E_ATTRIBUTENOTFOUND + + MessageText: + + The requested attribute was not found.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_ALLOWED + + MessageText: + + The specified property type is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_SUPPORTED + + MessageText: + + The specified property type is not supported.%0 + + + + + MessageId: MF_E_PROPERTY_EMPTY + + MessageText: + + The specified property is empty.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_EMPTY + + MessageText: + + The specified property is not empty.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_NOT_ALLOWED + + MessageText: + + The vector property specified is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_REQUIRED + + MessageText: + + A vector property is required in this context.%0 + + + + + MessageId: MF_E_OPERATION_CANCELLED + + MessageText: + + The operation is cancelled.%0 + + + + + MessageId: MF_E_BYTESTREAM_NOT_SEEKABLE + + MessageText: + + The provided bytestream was expected to be seekable and it is not.%0 + + + + + MessageId: MF_E_DISABLED_IN_SAFEMODE + + MessageText: + + The Media Foundation platform is disabled when the system is running in Safe Mode.%0 + + + + + MessageId: MF_E_CANNOT_PARSE_BYTESTREAM + + MessageText: + + The Media Source could not parse the byte stream.%0 + + + + + MessageId: MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS + + MessageText: + + Mutually exclusive flags have been specified to source resolver. This flag combination is invalid.%0 + + + + + MessageId: MF_E_MEDIAPROC_WRONGSTATE + + MessageText: + + MediaProc is in the wrong state%0 + + + + + MessageId: MF_E_RT_THROUGHPUT_NOT_AVAILABLE + + MessageText: + + Real time I/O service can not provide requested throughput.%0 + + + + + MessageId: MF_E_RT_TOO_MANY_CLASSES + + MessageText: + + The workqueue cannot be registered with more classes.%0 + + + + + MessageId: MF_E_RT_WOULDBLOCK + + MessageText: + + This operation cannot succeed because another thread owns this object.%0 + + + + + MessageId: MF_E_NO_BITPUMP + + MessageText: + + Internal. Bitpump not found.%0 + + + + + MessageId: MF_E_RT_OUTOFMEMORY + + MessageText: + + No more RT memory available.%0 + + + + + MessageId: MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED + + MessageText: + + An MMCSS class has not been set for this work queue.%0 + + + + + MessageId: MF_E_INSUFFICIENT_BUFFER + + MessageText: + + Insufficient memory for response.%0 + + + + + MessageId: MF_E_CANNOT_CREATE_SINK + + MessageText: + + Activate failed to create mediasink. Call OutputNode::GetUINT32(MF_TOPONODE_MAJORTYPE) for more information. %0 + + + + + MessageId: MF_E_BYTESTREAM_UNKNOWN_LENGTH + + MessageText: + + The length of the provided bytestream is unknown.%0 + + + + + MessageId: MF_E_SESSION_PAUSEWHILESTOPPED + + MessageText: + + The media session cannot pause from a stopped state.%0 + + + + + MessageId: MF_S_ACTIVATE_REPLACED + + MessageText: + + The activate could not be created in the remote process for some reason it was replaced with empty one.%0 + + + + + MessageId: MF_E_FORMAT_CHANGE_NOT_SUPPORTED + + MessageText: + + The data specified for the media type is supported, but would require a format change, which is not supported by this object.%0 + + + + + MessageId: MF_E_INVALID_WORKQUEUE + + MessageText: + + The operation failed because an invalid combination of workqueue ID and flags was specified.%0 + + + + + MessageId: MF_E_DRM_UNSUPPORTED + + MessageText: + + No DRM support is available.%0 + + + + + MessageId: MF_E_UNAUTHORIZED + + MessageText: + + This operation is not authorized.%0 + + + + + MessageId: MF_E_OUT_OF_RANGE + + MessageText: + + The value is not in the specified or valid range.%0 + + + + + MessageId: MF_E_INVALID_CODEC_MERIT + + MessageText: + + The registered codec merit is not valid.%0 + + + + + MessageId: MF_E_HW_MFT_FAILED_START_STREAMING + + MessageText: + + Hardware MFT failed to start streaming due to lack of hardware resources.%0 + + + + + MessageId: MF_S_ASF_PARSEINPROGRESS + + MessageText: + + Parsing is still in progress and is not yet complete.%0 + + + + + MessageId: MF_E_ASF_PARSINGINCOMPLETE + + MessageText: + + Not enough data have been parsed to carry out the requested action.%0 + + + + + MessageId: MF_E_ASF_MISSINGDATA + + MessageText: + + There is a gap in the ASF data provided.%0 + + + + + MessageId: MF_E_ASF_INVALIDDATA + + MessageText: + + The data provided are not valid ASF.%0 + + + + + MessageId: MF_E_ASF_OPAQUEPACKET + + MessageText: + + The packet is opaque, so the requested information cannot be returned.%0 + + + + + MessageId: MF_E_ASF_NOINDEX + + MessageText: + + The requested operation failed since there is no appropriate ASF index.%0 + + + + + MessageId: MF_E_ASF_OUTOFRANGE + + MessageText: + + The value supplied is out of range for this operation.%0 + + + + + MessageId: MF_E_ASF_INDEXNOTLOADED + + MessageText: + + The index entry requested needs to be loaded before it can be available.%0 + + + + + MessageId: MF_E_ASF_TOO_MANY_PAYLOADS + + MessageText: + + The packet has reached the maximum number of payloads.%0 + + + + + MessageId: MF_E_ASF_UNSUPPORTED_STREAM_TYPE + + MessageText: + + Stream type is not supported.%0 + + + + + MessageId: MF_E_ASF_DROPPED_PACKET + + MessageText: + + One or more ASF packets were dropped.%0 + + + + + MessageId: MF_E_NO_EVENTS_AVAILABLE + + MessageText: + + There are no events available in the queue.%0 + + + + + MessageId: MF_E_INVALID_STATE_TRANSITION + + MessageText: + + A media source cannot go from the stopped state to the paused state.%0 + + + + + MessageId: MF_E_END_OF_STREAM + + MessageText: + + The media stream cannot process any more samples because there are no more samples in the stream.%0 + + + + + MessageId: MF_E_SHUTDOWN + + MessageText: + + The request is invalid because Shutdown() has been called.%0 + + + + + MessageId: MF_E_MP3_NOTFOUND + + MessageText: + + The MP3 object was not found.%0 + + + + + MessageId: MF_E_MP3_OUTOFDATA + + MessageText: + + The MP3 parser ran out of data before finding the MP3 object.%0 + + + + + MessageId: MF_E_MP3_NOTMP3 + + MessageText: + + The file is not really a MP3 file.%0 + + + + + MessageId: MF_E_MP3_NOTSUPPORTED + + MessageText: + + The MP3 file is not supported.%0 + + + + + MessageId: MF_E_NO_DURATION + + MessageText: + + The Media stream has no duration.%0 + + + + + MessageId: MF_E_INVALID_FORMAT + + MessageText: + + The Media format is recognized but is invalid.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_FOUND + + MessageText: + + The property requested was not found.%0 + + + + + MessageId: MF_E_PROPERTY_READ_ONLY + + MessageText: + + The property is read only.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_ALLOWED + + MessageText: + + The specified property is not allowed in this context.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NOT_STARTED + + MessageText: + + The media source is not started.%0 + + + + + MessageId: MF_E_UNSUPPORTED_FORMAT + + MessageText: + + The Media format is recognized but not supported.%0 + + + + + MessageId: MF_E_MP3_BAD_CRC + + MessageText: + + The MPEG frame has bad CRC.%0 + + + + + MessageId: MF_E_NOT_PROTECTED + + MessageText: + + The file is not protected.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_WRONGSTATE + + MessageText: + + The media source is in the wrong state%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED + + MessageText: + + No streams are selected in source presentation descriptor.%0 + + + + + MessageId: MF_E_CANNOT_FIND_KEYFRAME_SAMPLE + + MessageText: + + No key frame sample was found.%0 + + + + + MessageId: MF_E_NETWORK_RESOURCE_FAILURE + + MessageText: + + An attempt to acquire a network resource failed.%0 + + + + + MessageId: MF_E_NET_WRITE + + MessageText: + + Error writing to the network.%0 + + + + + MessageId: MF_E_NET_READ + + MessageText: + + Error reading from the network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_NETWORK + + MessageText: + + Internal. Entry cannot complete operation without network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_ASYNC + + MessageText: + + Internal. Async op is required.%0 + + + + + MessageId: MF_E_NET_BWLEVEL_NOT_SUPPORTED + + MessageText: + + Internal. Bandwidth levels are not supported.%0 + + + + + MessageId: MF_E_NET_STREAMGROUPS_NOT_SUPPORTED + + MessageText: + + Internal. Stream groups are not supported.%0 + + + + + MessageId: MF_E_NET_MANUALSS_NOT_SUPPORTED + + MessageText: + + Manual stream selection is not supported.%0 + + + + + MessageId: MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR + + MessageText: + + Invalid presentation descriptor.%0 + + + + + MessageId: MF_E_NET_CACHESTREAM_NOT_FOUND + + MessageText: + + Cannot find cache stream.%0 + + + + + MessageId: MF_I_MANUAL_PROXY + + MessageText: + + The proxy setting is manual.%0 + + + + duplicate removed + MessageId=17011 Severity=Informational Facility=MEDIAFOUNDATION SymbolicName=MF_E_INVALID_REQUEST + Language=English + The request is invalid in the current state.%0 + . + + MessageId: MF_E_NET_REQUIRE_INPUT + + MessageText: + + Internal. Entry cannot complete operation without input.%0 + + + + + MessageId: MF_E_NET_REDIRECT + + MessageText: + + The client redirected to another server.%0 + + + + + MessageId: MF_E_NET_REDIRECT_TO_PROXY + + MessageText: + + The client is redirected to a proxy server.%0 + + + + + MessageId: MF_E_NET_TOO_MANY_REDIRECTS + + MessageText: + + The client reached maximum redirection limit.%0 + + + + + MessageId: MF_E_NET_TIMEOUT + + MessageText: + + The server, a computer set up to offer multimedia content to other computers, could not handle your request for multimedia content in a timely manner. Please try again later.%0 + + + + + MessageId: MF_E_NET_CLIENT_CLOSE + + MessageText: + + The control socket is closed by the client.%0 + + + + + MessageId: MF_E_NET_BAD_CONTROL_DATA + + MessageText: + + The server received invalid data from the client on the control connection.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_SERVER + + MessageText: + + The server is not a compatible streaming media server.%0 + + + + + MessageId: MF_E_NET_UNSAFE_URL + + MessageText: + + Url.%0 + + + + + MessageId: MF_E_NET_CACHE_NO_DATA + + MessageText: + + Data is not available.%0 + + + + + MessageId: MF_E_NET_EOL + + MessageText: + + End of line.%0 + + + + + MessageId: MF_E_NET_BAD_REQUEST + + MessageText: + + The request could not be understood by the server.%0 + + + + + MessageId: MF_E_NET_INTERNAL_SERVER_ERROR + + MessageText: + + The server encountered an unexpected condition which prevented it from fulfilling the request.%0 + + + + + MessageId: MF_E_NET_SESSION_NOT_FOUND + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_NET_NOCONNECTION + + MessageText: + + There is no connection established with the Windows Media server. The operation failed.%0 + + + + + MessageId: MF_E_NET_CONNECTION_FAILURE + + MessageText: + + The network connection has failed.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_PUSHSERVER + + MessageText: + + The Server service that received the HTTP push request is not a compatible version of Windows Media Services (WMS). This error may indicate the push request was received by IIS instead of WMS. Ensure WMS is started and has the HTTP Server control protocol properly enabled and try again.%0 + + + + + MessageId: MF_E_NET_SERVER_ACCESSDENIED + + MessageText: + + The Windows Media server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_PROXY_ACCESSDENIED + + MessageText: + + The proxy server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_CANNOTCONNECT + + MessageText: + + Unable to establish a connection to the server.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_TEMPLATE + + MessageText: + + The specified push template is invalid.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_PUBLISHING_POINT + + MessageText: + + The specified push publishing point is invalid.%0 + + + + + MessageId: MF_E_NET_BUSY + + MessageText: + + The requested resource is in use.%0 + + + + + MessageId: MF_E_NET_RESOURCE_GONE + + MessageText: + + The Publishing Point or file on the Windows Media Server is no longer available.%0 + + + + + MessageId: MF_E_NET_ERROR_FROM_PROXY + + MessageText: + + The proxy experienced an error while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_PROXY_TIMEOUT + + MessageText: + + The proxy did not receive a timely response while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_SERVER_UNAVAILABLE + + MessageText: + + The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.%0 + + + + + MessageId: MF_E_NET_TOO_MUCH_DATA + + MessageText: + + The encoding process was unable to keep up with the amount of supplied data.%0 + + + + + MessageId: MF_E_NET_SESSION_INVALID + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_OFFLINE_MODE + + MessageText: + + The requested URL is not available in offline mode.%0 + + + + + MessageId: MF_E_NET_UDP_BLOCKED + + MessageText: + + A device in the network is blocking UDP traffic.%0 + + + + + MessageId: MF_E_NET_UNSUPPORTED_CONFIGURATION + + MessageText: + + The specified configuration value is not supported.%0 + + + + + MessageId: MF_E_NET_PROTOCOL_DISABLED + + MessageText: + + The networking protocol is disabled.%0 + + + + + MessageId: MF_E_ALREADY_INITIALIZED + + MessageText: + + This object has already been initialized and cannot be re-initialized at this time.%0 + + + + + MessageId: MF_E_BANDWIDTH_OVERRUN + + MessageText: + + The amount of data passed in exceeds the given bitrate and buffer window.%0 + + + + + MessageId: MF_E_LATE_SAMPLE + + MessageText: + + The sample was passed in too late to be correctly processed.%0 + + + + + MessageId: MF_E_FLUSH_NEEDED + + MessageText: + + The requested action cannot be carried out until the object is flushed and the queue is emptied.%0 + + + + + MessageId: MF_E_INVALID_PROFILE + + MessageText: + + The profile is invalid.%0 + + + + + MessageId: MF_E_INDEX_NOT_COMMITTED + + MessageText: + + The index that is being generated needs to be committed before the requested action can be carried out.%0 + + + + + MessageId: MF_E_NO_INDEX + + MessageText: + + The index that is necessary for the requested action is not found.%0 + + + + + MessageId: MF_E_CANNOT_INDEX_IN_PLACE + + MessageText: + + The requested index cannot be added in-place to the specified ASF content.%0 + + + + + MessageId: MF_E_MISSING_ASF_LEAKYBUCKET + + MessageText: + + The ASF leaky bucket parameters must be specified in order to carry out this request.%0 + + + + + MessageId: MF_E_INVALID_ASF_STREAMID + + MessageText: + + The stream id is invalid. The valid range for ASF stream id is from 1 to 127.%0 + + + + + MessageId: MF_E_STREAMSINK_REMOVED + + MessageText: + + The requested Stream Sink has been removed and cannot be used.%0 + + + + + MessageId: MF_E_STREAMSINKS_OUT_OF_SYNC + + MessageText: + + The various Stream Sinks in this Media Sink are too far out of sync for the requested action to take place.%0 + + + + + MessageId: MF_E_STREAMSINKS_FIXED + + MessageText: + + Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.%0 + + + + + MessageId: MF_E_STREAMSINK_EXISTS + + MessageText: + + The given Stream Sink already exists.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_CANCELED + + MessageText: + + Sample allocations have been canceled.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_EMPTY + + MessageText: + + The sample allocator is currently empty, due to outstanding requests.%0 + + + + + MessageId: MF_E_SINK_ALREADYSTOPPED + + MessageText: + + When we try to sopt a stream sink, it is already stopped %0 + + + + + MessageId: MF_E_ASF_FILESINK_BITRATE_UNKNOWN + + MessageText: + + The ASF file sink could not reserve AVIO because the bitrate is unknown.%0 + + + + + MessageId: MF_E_SINK_NO_STREAMS + + MessageText: + + No streams are selected in sink presentation descriptor.%0 + + + + + MessageId: MF_S_SINK_NOT_FINALIZED + + MessageText: + + The sink has not been finalized before shut down. This may cause sink generate a corrupted content.%0 + + + + + MessageId: MF_E_METADATA_TOO_LONG + + MessageText: + + A metadata item was too long to write to the output container.%0 + + + + + MessageId: MF_E_SINK_NO_SAMPLES_PROCESSED + + MessageText: + + The operation failed because no samples were processed by the sink.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_PROCAMP_HW + + MessageText: + + There is no available procamp hardware with which to perform color correction.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_DEINTERLACE_HW + + MessageText: + + There is no available deinterlacing hardware with which to deinterlace the video stream.%0 + + + + + MessageId: MF_E_VIDEO_REN_COPYPROT_FAILED + + MessageText: + + A video stream requires copy protection to be enabled, but there was a failure in attempting to enable copy protection.%0 + + + + + MessageId: MF_E_VIDEO_REN_SURFACE_NOT_SHARED + + MessageText: + + A component is attempting to access a surface for sharing that is not shared.%0 + + + + + MessageId: MF_E_VIDEO_DEVICE_LOCKED + + MessageText: + + A component is attempting to access a shared device that is already locked by another component.%0 + + + + + MessageId: MF_E_NEW_VIDEO_DEVICE + + MessageText: + + The device is no longer available. The handle should be closed and a new one opened.%0 + + + + + MessageId: MF_E_NO_VIDEO_SAMPLE_AVAILABLE + + MessageText: + + A video sample is not currently queued on a stream that is required for mixing.%0 + + + + + MessageId: MF_E_NO_AUDIO_PLAYBACK_DEVICE + + MessageText: + + No audio playback device was found.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE + + MessageText: + + The requested audio playback device is currently in use.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED + + MessageText: + + The audio playback device is no longer present.%0 + + + + + MessageId: MF_E_AUDIO_SERVICE_NOT_RUNNING + + MessageText: + + The audio service is not running.%0 + + + + + MessageId: MF_E_TOPO_INVALID_OPTIONAL_NODE + + MessageText: + + The topology contains an invalid optional node. Possible reasons are incorrect number of outputs and inputs or optional node is at the beginning or end of a segment. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_FIND_DECRYPTOR + + MessageText: + + No suitable transform was found to decrypt the content. %0 + + + + + MessageId: MF_E_TOPO_CODEC_NOT_FOUND + + MessageText: + + No suitable transform was found to encode or decode the content. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_CONNECT + + MessageText: + + Unable to find a way to connect nodes%0 + + + + + MessageId: MF_E_TOPO_UNSUPPORTED + + MessageText: + + Unsupported operations in topoloader%0 + + + + + MessageId: MF_E_TOPO_INVALID_TIME_ATTRIBUTES + + MessageText: + + The topology or its nodes contain incorrectly set time attributes%0 + + + + + MessageId: MF_E_TOPO_LOOPS_IN_TOPOLOGY + + MessageText: + + The topology contains loops, which are unsupported in media foundation topologies%0 + + + + + MessageId: MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_STREAM_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a stream descriptor%0 + + + + + MessageId: MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED + + MessageText: + + A stream descriptor was set on a source stream node but it was not selected on the presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_SOURCE + + MessageText: + + A source stream node in the topology does not have a source%0 + + + + + MessageId: MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED + + MessageText: + + The topology loader does not support sink activates on output nodes.%0 + + + + + MessageId: MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID + + MessageText: + + The sequencer cannot find a segment with the given ID.%0\n. + + + + + MessageId: MF_S_SEQUENCER_CONTEXT_CANCELED + + MessageText: + + The context was canceled.%0\n. + + + + + MessageId: MF_E_NO_SOURCE_IN_CACHE + + MessageText: + + Cannot find source in source cache.%0\n. + + + + + MessageId: MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM + + MessageText: + + Cannot update topology flags.%0\n. + + + + + MessageId: MF_E_TRANSFORM_TYPE_NOT_SET + + MessageText: + + A valid type has not been set for this stream or a stream that it depends on.%0 + + + + + MessageId: MF_E_TRANSFORM_STREAM_CHANGE + + MessageText: + + A stream change has occurred. Output cannot be produced until the streams have been renegotiated.%0 + + + + + MessageId: MF_E_TRANSFORM_INPUT_REMAINING + + MessageText: + + The transform cannot take the requested action until all of the input data it currently holds is processed or flushed.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_MISSING + + MessageText: + + The transform requires a profile but no profile was supplied or found.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT + + MessageText: + + The transform requires a profile but the supplied profile was invalid or corrupt.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_TRUNCATED + + MessageText: + + The transform requires a profile but the supplied profile ended unexpectedly while parsing.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED + + MessageText: + + The property ID does not match any property supported by the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG + + MessageText: + + The variant does not have the type expected for this property ID.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE + + MessageText: + + An attempt was made to set the value on a read-only property.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM + + MessageText: + + The array property value has an unexpected number of dimensions.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG + + MessageText: + + The array or blob property value has an unexpected size.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE + + MessageText: + + The property value is out of range for this transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE + + MessageText: + + The property value is incompatible with some other property or mediatype set on the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set output mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set input mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION + + MessageText: + + The requested operation is not supported for the currently set combination of mediatypes.%0 + + + + + MessageId: MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES + + MessageText: + + The requested feature is not supported in combination with some other currently enabled feature.%0 + + + + + MessageId: MF_E_TRANSFORM_NEED_MORE_INPUT + + MessageText: + + The transform cannot produce output until it gets more input samples.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG + + MessageText: + + The requested operation is not supported for the current speaker configuration.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING + + MessageText: + + The transform cannot accept mediatype changes in the middle of processing.%0 + + + + + MessageId: MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT + + MessageText: + + The caller should not propagate this event to downstream components.%0 + + + + + MessageId: MF_E_UNSUPPORTED_D3D_TYPE + + MessageText: + + The input type is not supported for D3D device.%0 + + + + + MessageId: MF_E_TRANSFORM_ASYNC_LOCKED + + MessageText: + + The caller does not appear to support this transform's asynchronous capabilities.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER + + MessageText: + + An audio compression manager driver could not be initialized by the transform.%0 + + + + + MessageId: MF_E_LICENSE_INCORRECT_RIGHTS + + MessageText: + + You are not allowed to open this file. Contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_OUTOFDATE + + MessageText: + + The license for this media file has expired. Get a new license or contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_REQUIRED + + MessageText: + + You need a license to perform the requested operation on this media file.%0 + + + + + MessageId: MF_E_DRM_HARDWARE_INCONSISTENT + + MessageText: + + The licenses for your media files are corrupted. Contact Microsoft product support.%0 + + + + + MessageId: MF_E_NO_CONTENT_PROTECTION_MANAGER + + MessageText: + + The APP needs to provide IMFContentProtectionManager callback to access the protected media file.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NO_RIGHTS + + MessageText: + + Client does not have rights to restore licenses.%0 + + + + + MessageId: MF_E_BACKUP_RESTRICTED_LICENSE + + MessageText: + + Licenses are restricted and hence can not be backed up.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION + + MessageText: + + License restore requires machine to be individualized.%0 + + + + + MessageId: MF_S_PROTECTION_NOT_REQUIRED + + MessageText: + + Protection for stream is not required.%0 + + + + + MessageId: MF_E_COMPONENT_REVOKED + + MessageText: + + Component is revoked.%0 + + + + + MessageId: MF_E_TRUST_DISABLED + + MessageText: + + Trusted functionality is currently disabled on this component.%0 + + + + + MessageId: MF_E_WMDRMOTA_NO_ACTION + + MessageText: + + No Action is set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_ALREADY_SET + + MessageText: + + Action is already set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE + + MessageText: + + DRM Heaader is not available.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED + + MessageText: + + Current encryption scheme is not supported.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_MISMATCH + + MessageText: + + Action does not match with current configuration.%0 + + + + + MessageId: MF_E_WMDRMOTA_INVALID_POLICY + + MessageText: + + Invalid policy for WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_POLICY_UNSUPPORTED + + MessageText: + + The policies that the Input Trust Authority requires to be enforced are unsupported by the outputs.%0 + + + + + MessageId: MF_E_OPL_NOT_SUPPORTED + + MessageText: + + The OPL that the license requires to be enforced are not supported by the Input Trust Authority.%0 + + + + + MessageId: MF_E_TOPOLOGY_VERIFICATION_FAILED + + MessageText: + + The topology could not be successfully verified.%0 + + + + + MessageId: MF_E_SIGNATURE_VERIFICATION_FAILED + + MessageText: + + Signature verification could not be completed successfully for this component.%0 + + + + + MessageId: MF_E_DEBUGGING_NOT_ALLOWED + + MessageText: + + Running this process under a debugger while using protected content is not allowed.%0 + + + + + MessageId: MF_E_CODE_EXPIRED + + MessageText: + + MF component has expired.%0 + + + + + MessageId: MF_E_GRL_VERSION_TOO_LOW + + MessageText: + + The current GRL on the machine does not meet the minimum version requirements.%0 + + + + + MessageId: MF_E_GRL_RENEWAL_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any renewal entries for the specified revocation.%0 + + + + + MessageId: MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any extensible entries for the specified extension GUID.%0 + + + + + MessageId: MF_E_KERNEL_UNTRUSTED + + MessageText: + + The kernel isn't secure for high security level content.%0 + + + + + MessageId: MF_E_PEAUTH_UNTRUSTED + + MessageText: + + The response from protected environment driver isn't valid.%0 + + + + + MessageId: MF_E_NON_PE_PROCESS + + MessageText: + + A non-PE process tried to talk to PEAuth.%0 + + + + + MessageId: MF_E_REBOOT_REQUIRED + + MessageText: + + We need to reboot the machine.%0 + + + + + MessageId: MF_S_WAIT_FOR_POLICY_SET + + MessageText: + + Protection for this stream is not guaranteed to be enforced until the MEPolicySet event is fired.%0 + + + + + MessageId: MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT + + MessageText: + + This video stream is disabled because it is being sent to an unknown software output.%0 + + + + + MessageId: MF_E_GRL_INVALID_FORMAT + + MessageText: + + The GRL file is not correctly formed, it may have been corrupted or overwritten.%0 + + + + + MessageId: MF_E_GRL_UNRECOGNIZED_FORMAT + + MessageText: + + The GRL file is in a format newer than those recognized by this GRL Reader.%0 + + + + + MessageId: MF_E_ALL_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and required all processes that can run protected media to restart.%0 + + + + + MessageId: MF_E_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and the current process needs to restart.%0 + + + + + MessageId: MF_E_USERMODE_UNTRUSTED + + MessageText: + + The user space is untrusted for protected content play.%0 + + + + + MessageId: MF_E_PEAUTH_SESSION_NOT_STARTED + + MessageText: + + PEAuth communication session hasn't been started.%0 + + + + + MessageId: MF_E_PEAUTH_PUBLICKEY_REVOKED + + MessageText: + + PEAuth's public key is revoked.%0 + + + + + MessageId: MF_E_GRL_ABSENT + + MessageText: + + The GRL is absent.%0 + + + + + MessageId: MF_S_PE_TRUSTED + + MessageText: + + The Protected Environment is trusted.%0 + + + + + MessageId: MF_E_PE_UNTRUSTED + + MessageText: + + The Protected Environment is untrusted.%0 + + + + + MessageId: MF_E_PEAUTH_NOT_STARTED + + MessageText: + + The Protected Environment Authorization service (PEAUTH) has not been started.%0 + + + + + MessageId: MF_E_INCOMPATIBLE_SAMPLE_PROTECTION + + MessageText: + + The sample protection algorithms supported by components are not compatible.%0 + + + + + MessageId: MF_E_PE_SESSIONS_MAXED + + MessageText: + + No more protected environment sessions can be supported.%0 + + + + + MessageId: MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED + + MessageText: + + WMDRM ITA does not allow protected content with high security level for this release.%0 + + + + + MessageId: MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED + + MessageText: + + WMDRM ITA cannot allow the requested action for the content as one or more components is not properly signed.%0 + + + + + MessageId: MF_E_ITA_UNSUPPORTED_ACTION + + MessageText: + + WMDRM ITA does not support the requested action.%0 + + + + + MessageId: MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS + + MessageText: + + WMDRM ITA encountered an error in parsing the Secure Audio Path parameters.%0 + + + + + MessageId: MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS + + MessageText: + + The Policy Manager action passed in is invalid.%0 + + + + + MessageId: MF_E_BAD_OPL_STRUCTURE_FORMAT + + MessageText: + + The structure specifying Output Protection Level is not the correct format.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID + + MessageText: + + WMDRM ITA does not recognize the Explicite Analog Video Output Protection guid specified in the license.%0 + + + + + MessageId: MF_E_NO_PMP_HOST + + MessageText: + + IMFPMPHost object not available.%0 + + + + + MessageId: MF_E_ITA_OPL_DATA_NOT_INITIALIZED + + MessageText: + + WMDRM ITA could not initialize the Output Protection Level data.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Analog Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Digital Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_CLOCK_INVALID_CONTINUITY_KEY + + MessageText: + + The continuity key supplied is not currently valid.%0 + + + + + MessageId: MF_E_CLOCK_NO_TIME_SOURCE + + MessageText: + + No Presentation Time Source has been specified.%0 + + + + + MessageId: MF_E_CLOCK_STATE_ALREADY_SET + + MessageText: + + The clock is already in the requested state.%0 + + + + + MessageId: MF_E_CLOCK_NOT_SIMPLE + + MessageText: + + The clock has too many advanced features to carry out the request.%0 + + + + + MessageId: MF_S_CLOCK_STOPPED + + MessageText: + + Timer::SetTimer returns this success code if called happened while timer is stopped. Timer is not going to be dispatched until clock is running%0 + + + + + MessageId: MF_E_NO_MORE_DROP_MODES + + MessageText: + + The component does not support any more drop modes.%0 + + + + + MessageId: MF_E_NO_MORE_QUALITY_LEVELS + + MessageText: + + The component does not support any more quality levels.%0 + + + + + MessageId: MF_E_DROPTIME_NOT_SUPPORTED + + MessageText: + + The component does not support drop time functionality.%0 + + + + + MessageId: MF_E_QUALITYKNOB_WAIT_LONGER + + MessageText: + + Quality Manager needs to wait longer before bumping the Quality Level up.%0 + + + + + MessageId: MF_E_QM_INVALIDSTATE + + MessageText: + + Quality Manager is in an invalid state. Quality Management is off at this moment.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_CONTAINERTYPE + + MessageText: + + No transcode output container type is specified.%0 + + + + + MessageId: MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS + + MessageText: + + The profile does not have a media type configuration for any selected source streams.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_MATCHING_ENCODER + + MessageText: + + Cannot find an encoder MFT that accepts the user preferred output type.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_INITIALIZED + + MessageText: + + Memory allocator is not initialized.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_COMMITED + + MessageText: + + Memory allocator is not committed yet.%0 + + + + + MessageId: MF_E_ALLOCATOR_ALREADY_COMMITED + + MessageText: + + Memory allocator has already been committed.%0 + + + + + MessageId: MF_E_STREAM_ERROR + + MessageText: + + An error occurred in media stream.%0 + + + + + MessageId: MF_E_INVALID_STREAM_STATE + + MessageText: + + Stream is not in a state to handle the request.%0 + + + + + MessageId: MF_E_HW_STREAM_NOT_CONNECTED + + MessageText: + + Hardware stream is not connected yet.%0 + + + + + Major Media Types + http://msdn.microsoft.com/en-us/library/windows/desktop/aa367377%28v=vs.85%29.aspx + + + + + Default + + + + + Audio + + + + + Video + + + + + Protected Media + + + + + Synchronized Accessible Media Interchange (SAMI) captions. + + + + + Script stream + + + + + Still image stream. + + + + + HTML stream. + + + + + Binary stream. + + + + + A stream that contains data files. + + + + + IMFActivate, defined in mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Creates the object associated with this activation object. + + + + + Shuts down the created object. + + + + + Detaches the created object from the activation object. + + + + + Represents a generic collection of IUnknown pointers. + + + + + Retrieves the number of objects in the collection. + + + + + Retrieves an object in the collection. + + + + + Adds an object to the collection. + + + + + Removes an object from the collection. + + + + + Removes an object from the collection. + + + + + Removes all items from the collection. + + + + + IMFMediaEvent - Represents an event generated by a Media Foundation object. Use this interface to get information about the event. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms702249%28v=vs.85%29.aspx + Mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the event type. + + + virtual HRESULT STDMETHODCALLTYPE GetType( + /* [out] */ __RPC__out MediaEventType *pmet) = 0; + + + + + Retrieves the extended type of the event. + + + virtual HRESULT STDMETHODCALLTYPE GetExtendedType( + /* [out] */ __RPC__out GUID *pguidExtendedType) = 0; + + + + + Retrieves an HRESULT that specifies the event status. + + + virtual HRESULT STDMETHODCALLTYPE GetStatus( + /* [out] */ __RPC__out HRESULT *phrStatus) = 0; + + + + + Retrieves the value associated with the event, if any. + + + virtual HRESULT STDMETHODCALLTYPE GetValue( + /* [out] */ __RPC__out PROPVARIANT *pvValue) = 0; + + + + + Implemented by the Microsoft Media Foundation sink writer object. + + + + + Adds a stream to the sink writer. + + + + + Sets the input format for a stream on the sink writer. + + + + + Initializes the sink writer for writing. + + + + + Delivers a sample to the sink writer. + + + + + Indicates a gap in an input stream. + + + + + Places a marker in the specified stream. + + + + + Notifies the media sink that a stream has reached the end of a segment. + + + + + Flushes one or more streams. + + + + + (Finalize) Completes all writing operations on the sink writer. + + + + + Queries the underlying media sink or encoder for an interface. + + + + + Gets statistics about the performance of the sink writer. + + + + + IMFTransform, defined in mftransform.h + + + + + Retrieves the minimum and maximum number of input and output streams. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( + /* [out] */ __RPC__out DWORD *pdwInputMinimum, + /* [out] */ __RPC__out DWORD *pdwInputMaximum, + /* [out] */ __RPC__out DWORD *pdwOutputMinimum, + /* [out] */ __RPC__out DWORD *pdwOutputMaximum) = 0; + + + + + Retrieves the current number of input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + /* [out] */ __RPC__out DWORD *pcInputStreams, + /* [out] */ __RPC__out DWORD *pcOutputStreams) = 0; + + + + + Retrieves the stream identifiers for the input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( + DWORD dwInputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwInputIDArraySize) DWORD *pdwInputIDs, + DWORD dwOutputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwOutputIDArraySize) DWORD *pdwOutputIDs) = 0; + + + + + Gets the buffer requirements and other information for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( + DWORD dwInputStreamID, + /* [out] */ __RPC__out MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the buffer requirements and other information for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( + DWORD dwOutputStreamID, + /* [out] */ __RPC__out MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the global attribute store for this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetAttributes( + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an input stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Removes an input stream from this MFT. + + + virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( + DWORD dwStreamID) = 0; + + + + + Adds one or more new input streams to this MFT. + + + virtual HRESULT STDMETHODCALLTYPE AddInputStreams( + DWORD cStreams, + /* [in] */ __RPC__in DWORD *adwStreamIDs) = 0; + + + + + Gets an available media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( + DWORD dwInputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Retrieves an available media type for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( + DWORD dwOutputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Sets, tests, or clears the media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetInputType( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Sets, tests, or clears the media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetOutputType( + DWORD dwOutputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Gets the current media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Gets the current media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Queries whether an input stream on this Media Foundation transform (MFT) can accept more data. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStatus( + DWORD dwInputStreamID, + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Queries whether the Media Foundation transform (MFT) is ready to produce output data. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Sets the range of time stamps the client needs for output. + + + virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( + LONGLONG hnsLowerBound, + LONGLONG hnsUpperBound) = 0; + + + + + Sends an event to an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessEvent( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaEvent *pEvent) = 0; + + + + + Sends a message to the Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFT_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + + + + Delivers data to an input stream on this Media Foundation transform (MFT). + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessInput( + DWORD dwInputStreamID, + IMFSample *pSample, + DWORD dwFlags) = 0; + + + + + Generates output from the current input data. + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessOutput( + DWORD dwFlags, + DWORD cOutputBufferCount, + /* [size_is][out][in] */ MFT_OUTPUT_DATA_BUFFER *pOutputSamples, + /* [out] */ DWORD *pdwStatus) = 0; + + + + + See mfobjects.h + + + + + Unknown event type. + + + + + Signals a serious error. + + + + + Custom event type. + + + + + A non-fatal error occurred during streaming. + + + + + Session Unknown + + + + + Raised after the IMFMediaSession::SetTopology method completes asynchronously + + + + + Raised by the Media Session when the IMFMediaSession::ClearTopologies method completes asynchronously. + + + + + Raised when the IMFMediaSession::Start method completes asynchronously. + + + + + Raised when the IMFMediaSession::Pause method completes asynchronously. + + + + + Raised when the IMFMediaSession::Stop method completes asynchronously. + + + + + Raised when the IMFMediaSession::Close method completes asynchronously. + + + + + Raised by the Media Session when it has finished playing the last presentation in the playback queue. + + + + + Raised by the Media Session when the playback rate changes. + + + + + Raised by the Media Session when it completes a scrubbing request. + + + + + Raised by the Media Session when the session capabilities change. + + + + + Raised by the Media Session when the status of a topology changes. + + + + + Raised by the Media Session when a new presentation starts. + + + + + Raised by a media source a new presentation is ready. + + + + + License acquisition is about to begin. + + + + + License acquisition is complete. + + + + + Individualization is about to begin. + + + + + Individualization is complete. + + + + + Signals the progress of a content enabler object. + + + + + A content enabler object's action is complete. + + + + + Raised by a trusted output if an error occurs while enforcing the output policy. + + + + + Contains status information about the enforcement of an output policy. + + + + + A media source started to buffer data. + + + + + A media source stopped buffering data. + + + + + The network source started opening a URL. + + + + + The network source finished opening a URL. + + + + + Raised by a media source at the start of a reconnection attempt. + + + + + Raised by a media source at the end of a reconnection attempt. + + + + + Raised by the enhanced video renderer (EVR) when it receives a user event from the presenter. + + + + + Raised by the Media Session when the format changes on a media sink. + + + + + Source Unknown + + + + + Raised when a media source starts without seeking. + + + + + Raised by a media stream when the source starts without seeking. + + + + + Raised when a media source seeks to a new position. + + + + + Raised by a media stream after a call to IMFMediaSource::Start causes a seek in the stream. + + + + + Raised by a media source when it starts a new stream. + + + + + Raised by a media source when it restarts or seeks a stream that is already active. + + + + + Raised by a media source when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media source when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media source when a presentation ends. + + + + + Raised by a media stream when the stream ends. + + + + + Raised when a media stream delivers a new sample. + + + + + Signals that a media stream does not have data available at a specified time. + + + + + Raised by a media stream when it starts or stops thinning the stream. + + + + + Raised by a media stream when the media type of the stream changes. + + + + + Raised by a media source when the playback rate changes. + + + + + Raised by the sequencer source when a segment is completed and is followed by another segment. + + + + + Raised by a media source when the source's characteristics change. + + + + + Raised by a media source to request a new playback rate. + + + + + Raised by a media source when it updates its metadata. + + + + + Raised by the sequencer source when the IMFSequencerSource::UpdateTopology method completes asynchronously. + + + + + Sink Unknown + + + + + Raised by a stream sink when it completes the transition to the running state. + + + + + Raised by a stream sink when it completes the transition to the stopped state. + + + + + Raised by a stream sink when it completes the transition to the paused state. + + + + + Raised by a stream sink when the rate has changed. + + + + + Raised by a stream sink to request a new media sample from the pipeline. + + + + + Raised by a stream sink after the IMFStreamSink::PlaceMarker method is called. + + + + + Raised by a stream sink when the stream has received enough preroll data to begin rendering. + + + + + Raised by a stream sink when it completes a scrubbing request. + + + + + Raised by a stream sink when the sink's media type is no longer valid. + + + + + Raised by the stream sinks of the EVR if the video device changes. + + + + + Provides feedback about playback quality to the quality manager. + + + + + Raised when a media sink becomes invalid. + + + + + The audio session display name changed. + + + + + The volume or mute state of the audio session changed + + + + + The audio device was removed. + + + + + The Windows audio server system was shut down. + + + + + The grouping parameters changed for the audio session. + + + + + The audio session icon changed. + + + + + The default audio format for the audio device changed. + + + + + The audio session was disconnected from a Windows Terminal Services session + + + + + The audio session was preempted by an exclusive-mode connection. + + + + + Trust Unknown + + + + + The output policy for a stream changed. + + + + + Content protection message + + + + + The IMFOutputTrustAuthority::SetPolicy method completed. + + + + + DRM License Backup Completed + + + + + DRM License Backup Progress + + + + + DRM License Restore Completed + + + + + DRM License Restore Progress + + + + + DRM License Acquisition Completed + + + + + DRM Individualization Completed + + + + + DRM Individualization Progress + + + + + DRM Proximity Completed + + + + + DRM License Store Cleaned + + + + + DRM Revocation Download Completed + + + + + Transform Unknown + + + + + Sent by an asynchronous MFT to request a new input sample. + + + + + Sent by an asynchronous MFT when new output data is available from the MFT. + + + + + Sent by an asynchronous Media Foundation transform (MFT) when a drain operation is complete. + + + + + Sent by an asynchronous MFT in response to an MFT_MESSAGE_COMMAND_MARKER message. + + + + + Media Foundation attribute guids + http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx + + + + + Specifies whether an MFT performs asynchronous processing. + + + + + Enables the use of an asynchronous MFT. + + + + + Contains flags for an MFT activation object. + + + + + Specifies the category for an MFT. + + + + + Contains the class identifier (CLSID) of an MFT. + + + + + Contains the registered input types for a Media Foundation transform (MFT). + + + + + Contains the registered output types for a Media Foundation transform (MFT). + + + + + Contains the symbolic link for a hardware-based MFT. + + + + + Contains the display name for a hardware-based MFT. + + + + + Contains a pointer to the stream attributes of the connected stream on a hardware-based MFT. + + + + + Specifies whether a hardware-based MFT is connected to another hardware-based MFT. + + + + + Specifies the preferred output format for an encoder. + + + + + Specifies whether an MFT is registered only in the application's process. + + + + + Contains configuration properties for an encoder. + + + + + Specifies whether a hardware device source uses the system time for time stamps. + + + + + Contains an IMFFieldOfUseMFTUnlock pointer, which can be used to unlock the MFT. + + + + + Contains the merit value of a hardware codec. + + + + + Specifies whether a decoder is optimized for transcoding rather than for playback. + + + + + Contains a pointer to the proxy object for the application's presentation descriptor. + + + + + Contains a pointer to the presentation descriptor from the protected media path (PMP). + + + + + Specifies the duration of a presentation, in 100-nanosecond units. + + + + + Specifies the total size of the source file, in bytes. + + + + + Specifies the audio encoding bit rate for the presentation, in bits per second. + + + + + Specifies the video encoding bit rate for the presentation, in bits per second. + + + + + Specifies the MIME type of the content. + + + + + Specifies when a presentation was last modified. + + + + + The identifier of the playlist element in the presentation. + + + + + Contains the preferred RFC 1766 language of the media source. + + + + + The time at which the presentation must begin, relative to the start of the media source. + + + + + Specifies whether the audio streams in the presentation have a variable bit rate. + + + + + Media type Major Type + + + + + Media Type subtype + + + + + Audio block alignment + + + + + Audio average bytes per second + + + + + Audio number of channels + + + + + Audio samples per second + + + + + Audio bits per sample + + + + + Enables the source reader or sink writer to use hardware-based Media Foundation transforms (MFTs). + + + + + Contains additional format data for a media type. + + + + + Specifies for a media type whether each sample is independent of the other samples in the stream. + + + + + Specifies for a media type whether the samples have a fixed size. + + + + + Contains a DirectShow format GUID for a media type. + + + + + Specifies the preferred legacy format structure to use when converting an audio media type. + + + + + Specifies for a media type whether the media data is compressed. + + + + + Approximate data rate of the video stream, in bits per second, for a video media type. + + + + + Specifies the payload type of an Advanced Audio Coding (AAC) stream. + 0 - The stream contains raw_data_block elements only + 1 - Audio Data Transport Stream (ADTS). The stream contains an adts_sequence, as defined by MPEG-2. + 2 - Audio Data Interchange Format (ADIF). The stream contains an adif_sequence, as defined by MPEG-2. + 3 - The stream contains an MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + + + + + Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream, as defined by ISO/IEC 14496-3. + + + + + Main interface for using Media Foundation with NAudio + + + + + initializes MediaFoundation - only needs to be called once per process + + + + + Enumerate the installed MediaFoundation transforms in the specified category + + A category from MediaFoundationTransformCategories + + + + + uninitializes MediaFoundation + + + + + Creates a Media type + + + + + Creates a media type from a WaveFormat + + + + + Creates a memory buffer of the specified size + + Memory buffer size in bytes + The memory buffer + + + + Creates a sample object + + The sample object + + + + Creates a new attributes store + + Initial size + The attributes store + + + + Creates a media foundation byte stream based on a stream object + (usable with WinRT streams) + + The input stream + A media foundation byte stream + + + + Creates a source reader based on a byte stream + + The byte stream + A media foundation source reader + + + + Interop definitions for MediaFoundation + thanks to Lucian Wischik for the initial work on many of these definitions (also various interfaces) + n.b. the goal is to make as much of this internal as possible, and provide + better .NET APIs using the MediaFoundationApi class instead + + + + + Initializes Microsoft Media Foundation. + + + + + Shuts down the Microsoft Media Foundation platform + + + + + Creates an empty media type. + + + + + Initializes a media type from a WAVEFORMATEX structure. + + + + + Converts a Media Foundation audio media type to a WAVEFORMATEX structure. + + TODO: try making second parameter out WaveFormatExtraData + + + + Creates the source reader from a URL. + + + + + Creates the source reader from a byte stream. + + + + + Creates the sink writer from a URL or byte stream. + + + + + Creates a Microsoft Media Foundation byte stream that wraps an IRandomAccessStream object. + + + + + Gets a list of Microsoft Media Foundation transforms (MFTs) that match specified search criteria. + + + + + Creates an empty media sample. + + + + + Allocates system memory and creates a media buffer to manage it. + + + + + Creates an empty attribute store. + + + + + Gets a list of output formats from an audio encoder. + + + + + All streams + + + + + First audio stream + + + + + First video stream + + + + + Media source + + + + + Media Foundation SDK Version + + + + + Media Foundation API Version + + + + + Media Foundation Version + + + + + Provides a generic way to store key/value pairs on an object. + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704598%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + IMFByteStream + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms698720%28v=vs.85%29.aspx + + + + + Retrieves the characteristics of the byte stream. + virtual HRESULT STDMETHODCALLTYPE GetCapabilities(/*[out]*/ __RPC__out DWORD *pdwCapabilities) = 0; + + + + + Retrieves the length of the stream. + virtual HRESULT STDMETHODCALLTYPE GetLength(/*[out]*/ __RPC__out QWORD *pqwLength) = 0; + + + + + Sets the length of the stream. + virtual HRESULT STDMETHODCALLTYPE SetLength(/*[in]*/ QWORD qwLength) = 0; + + + + + Retrieves the current read or write position in the stream. + virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(/*[out]*/ __RPC__out QWORD *pqwPosition) = 0; + + + + + Sets the current read or write position. + virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(/*[in]*/ QWORD qwPosition) = 0; + + + + + Queries whether the current position has reached the end of the stream. + virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(/*[out]*/ __RPC__out BOOL *pfEndOfStream) = 0; + + + + + Reads data from the stream. + virtual HRESULT STDMETHODCALLTYPE Read(/*[size_is][out]*/ __RPC__out_ecount_full(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbRead) = 0; + + + + + Begins an asynchronous read operation from the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginRead(/*[out]*/ _Out_writes_bytes_(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous read operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndRead(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbRead) = 0; + + + + + Writes data to the stream. + virtual HRESULT STDMETHODCALLTYPE Write(/*[size_is][in]*/ __RPC__in_ecount_full(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbWritten) = 0; + + + + + Begins an asynchronous write operation to the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginWrite(/*[in]*/ _In_reads_bytes_(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous write operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndWrite(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbWritten) = 0; + + + + + Moves the current position in the stream by a specified offset. + virtual HRESULT STDMETHODCALLTYPE Seek(/*[in]*/ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, /*[in]*/ LONGLONG llSeekOffset, /*[in]*/ DWORD dwSeekFlags, /*[out]*/ __RPC__out QWORD *pqwCurrentPosition) = 0; + + + + + Clears any internal buffers used by the stream. + virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; + + + + + Closes the stream and releases any resources associated with the stream. + virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; + + + + + IMFMediaBuffer + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms696261%28v=vs.85%29.aspx + + + + + Gives the caller access to the memory in the buffer. + + + + + Unlocks a buffer that was previously locked. + + + + + Retrieves the length of the valid data in the buffer. + + + + + Sets the length of the valid data in the buffer. + + + + + Retrieves the allocated size of the buffer. + + + + + Represents a description of a media format. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms704850%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the major type of the format. + + + + + Queries whether the media type is a compressed format. + + + + + Compares two media types and determines whether they are identical. + + + + + Retrieves an alternative representation of the media type. + + + + + Frees memory that was allocated by the GetRepresentation method. + + + + + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms702192%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves flags associated with the sample. + + + + + Sets flags associated with the sample. + + + + + Retrieves the presentation time of the sample. + + + + + Sets the presentation time of the sample. + + + + + Retrieves the duration of the sample. + + + + + Sets the duration of the sample. + + + + + Retrieves the number of buffers in the sample. + + + + + Retrieves a buffer from the sample. + + + + + Converts a sample with multiple buffers into a sample with a single buffer. + + + + + Adds a buffer to the end of the list of buffers in the sample. + + + + + Removes a buffer at a specified index from the sample. + + + + + Removes all buffers from the sample. + + + + + Retrieves the total length of the valid data in all of the buffers in the sample. + + + + + Copies the sample data to a buffer. + + + + + IMFSourceReader interface + http://msdn.microsoft.com/en-us/library/windows/desktop/dd374655%28v=vs.85%29.aspx + + + + + Queries whether a stream is selected. + + + + + Selects or deselects one or more streams. + + + + + Gets a format that is supported natively by the media source. + + + + + Gets the current media type for a stream. + + + + + Sets the media type for a stream. + + + + + Seeks to a new position in the media source. + + + + + Reads the next sample from the media source. + + + + + Flushes one or more streams. + + + + + Queries the underlying media source or decoder for an interface. + + + + + Gets an attribute from the underlying media source. + + + + + Contains flags that indicate the status of the IMFSourceReader::ReadSample method + http://msdn.microsoft.com/en-us/library/windows/desktop/dd375773(v=vs.85).aspx + + + + + No Error + + + + + An error occurred. If you receive this flag, do not make any further calls to IMFSourceReader methods. + + + + + The source reader reached the end of the stream. + + + + + One or more new streams were created + + + + + The native format has changed for one or more streams. The native format is the format delivered by the media source before any decoders are inserted. + + + + + The current media has type changed for one or more streams. To get the current media type, call the IMFSourceReader::GetCurrentMediaType method. + + + + + There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. + + + + + All transforms inserted by the application have been removed for a particular stream. + + + + + Media Foundation Transform Categories + + + + + MFT_CATEGORY_VIDEO_DECODER + + + + + MFT_CATEGORY_VIDEO_ENCODER + + + + + MFT_CATEGORY_VIDEO_EFFECT + + + + + MFT_CATEGORY_MULTIPLEXER + + + + + MFT_CATEGORY_DEMULTIPLEXER + + + + + MFT_CATEGORY_AUDIO_DECODER + + + + + MFT_CATEGORY_AUDIO_ENCODER + + + + + MFT_CATEGORY_AUDIO_EFFECT + + + + + MFT_CATEGORY_VIDEO_PROCESSOR + + + + + MFT_CATEGORY_OTHER + + + + + Contains information about an input stream on a Media Foundation transform (MFT) + + + + + Maximum amount of time between an input sample and the corresponding output sample, in 100-nanosecond units. + + + + + Bitwise OR of zero or more flags from the _MFT_INPUT_STREAM_INFO_FLAGS enumeration. + + + + + The minimum size of each input buffer, in bytes. + + + + + Maximum amount of input data, in bytes, that the MFT holds to perform lookahead. + + + + + The memory alignment required for input buffers. If the MFT does not require a specific alignment, the value is zero. + + + + + Contains information about an output buffer for a Media Foundation transform. + + + + + Output stream identifier. + + + + + Pointer to the IMFSample interface. + + + + + Before calling ProcessOutput, set this member to zero. + + + + + Before calling ProcessOutput, set this member to NULL. + + + + + Contains information about an output stream on a Media Foundation transform (MFT). + + + + + Bitwise OR of zero or more flags from the _MFT_OUTPUT_STREAM_INFO_FLAGS enumeration. + + + + + Minimum size of each output buffer, in bytes. + + + + + The memory alignment required for output buffers. + + + + + Defines messages for a Media Foundation transform (MFT). + + + + + Requests the MFT to flush all stored data. + + + + + Requests the MFT to drain any stored data. + + + + + Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA). + + + + + Drop samples - requires Windows 7 + + + + + Command Tick - requires Windows 8 + + + + + Notifies the MFT that streaming is about to begin. + + + + + Notifies the MFT that streaming is about to end. + + + + + Notifies the MFT that an input stream has ended. + + + + + Notifies the MFT that the first sample is about to be processed. + + + + + Marks a point in the stream. This message applies only to asynchronous MFTs. Requires Windows 7 + + + + + Contains media type information for registering a Media Foundation transform (MFT). + + + + + The major media type. + + + + + The Media Subtype + + + + + Contains statistics about the performance of the sink writer. + + + + + The size of the structure, in bytes. + + + + + The time stamp of the most recent sample given to the sink writer. + + + + + The time stamp of the most recent sample to be encoded. + + + + + The time stamp of the most recent sample given to the media sink. + + + + + The time stamp of the most recent stream tick. + + + + + The system time of the most recent sample request from the media sink. + + + + + The number of samples received. + + + + + The number of samples encoded. + + + + + The number of samples given to the media sink. + + + + + The number of stream ticks received. + + + + + The amount of data, in bytes, currently waiting to be processed. + + + + + The total amount of data, in bytes, that has been sent to the media sink. + + + + + The number of pending sample requests. + + + + + The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. + + + + + Contains flags for registering and enumeration Media Foundation transforms (MFTs). + + + + + None + + + + + The MFT performs synchronous data processing in software. + + + + + The MFT performs asynchronous data processing in software. + + + + + The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. + + + + + The MFT that must be unlocked by the application before use. + + + + + For enumeration, include MFTs that were registered in the caller's process. + + + + + The MFT is optimized for transcoding rather than playback. + + + + + For enumeration, sort and filter the results. + + + + + Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER. + + + + + Indicates the status of an input stream on a Media Foundation transform (MFT). + + + + + None + + + + + The input stream can receive more data at this time. + + + + + Describes an input stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of input data must contain complete, unbroken units of data. + + + + + Each media sample that the client provides as input must contain exactly one unit of data, as defined for the MFT_INPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All input samples must be the same size. + + + + + MTF Input Stream Holds buffers + + + + + The MFT does not hold input samples after the IMFTransform::ProcessInput method returns. + + + + + This input stream can be removed by calling IMFTransform::DeleteInputStream. + + + + + This input stream is optional. + + + + + The MFT can perform in-place processing. + + + + + Defines flags for the IMFTransform::ProcessOutput method. + + + + + None + + + + + The MFT can still generate output from this stream without receiving any more input. + + + + + The format has changed on this output stream, or there is a new preferred format for this stream. + + + + + The MFT has removed this output stream. + + + + + There is no sample ready for this stream. + + + + + Indicates whether a Media Foundation transform (MFT) can produce output data. + + + + + None + + + + + There is a sample available for at least one output stream. + + + + + Describes an output stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of output data from the MFT contains complete, unbroken units of data. + + + + + Each output sample contains exactly one unit of data, as defined for the MFT_OUTPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All output samples are the same size. + + + + + The MFT can discard the output data from this output stream, if requested by the client. + + + + + This output stream is optional. + + + + + The MFT provides the output samples for this stream, either by allocating them internally or by operating directly on the input samples. + + + + + The MFT can either provide output samples for this stream or it can use samples that the client allocates. + + + + + The MFT does not require the client to process the output for this stream. + + + + + The MFT might remove this output stream during streaming. + + + + + Defines flags for processing output samples in a Media Foundation transform (MFT). + + + + + None + + + + + Do not produce output for streams in which the pSample member of the MFT_OUTPUT_DATA_BUFFER structure is NULL. + + + + + Regenerates the last output sample. + + + + + Process Output Status flags + + + + + None + + + + + The Media Foundation transform (MFT) has created one or more new output streams. + + + + + Defines flags for the setting or testing the media type on a Media Foundation transform (MFT). + + + + + None + + + + + Test the proposed media type, but do not set it. + + + + + Media Type helper class, simplifying working with IMFMediaType + (will probably change in the future, to inherit from an attributes class) + Currently does not release the COM object, so you must do that yourself + + + + + Wraps an existing IMFMediaType object + + The IMFMediaType object + + + + Creates and wraps a new IMFMediaType object + + + + + Creates and wraps a new IMFMediaType object based on a WaveFormat + + WaveFormat + + + + Tries to get a UINT32 value, returning a default value if it doesn't exist + + Attribute key + Default value + Value or default if key doesn't exist + + + + The Sample Rate (valid for audio media types) + + + + + The number of Channels (valid for audio media types) + + + + + The number of bits per sample (n.b. not always valid for compressed audio types) + + + + + The average bytes per second (valid for audio media types) + + + + + The Media Subtype. For audio, is a value from the AudioSubtypes class + + + + + The Major type, e.g. audio or video (from the MediaTypes class) + + + + + Access to the actual IMFMediaType object + Use to pass to MF APIs or Marshal.ReleaseComObject when you are finished with it + + + + + An abstract base class for simplifying working with Media Foundation Transforms + You need to override the method that actually creates and configures the transform + + + + + The Source Provider + + + + + The Output WaveFormat + + + + + Constructs a new MediaFoundationTransform wrapper + Will read one second at a time + + The source provider for input data to the transform + The desired output format + + + + To be implemented by overriding classes. Create the transform object, set up its input and output types, + and configure any custom properties in here + + An object implementing IMFTrasform + + + + Disposes this MediaFoundation transform + + + + + Disposes this Media Foundation Transform + + + + + Destructor + + + + + The output WaveFormat of this Media Foundation Transform + + + + + Reads data out of the source, passing it through the transform + + Output buffer + Offset within buffer to write to + Desired byte count + Number of bytes read + + + + Attempts to read from the transform + Some useful info here: + http://msdn.microsoft.com/en-gb/library/windows/desktop/aa965264%28v=vs.85%29.aspx#process_data + + + + + + Indicate that the source has been repositioned and completely drain out the transforms buffers + + + + + Represents a MIDI meta event with raw data + + + + + Raw data contained in the meta event + + + + + Creates a meta event with raw data + + + + + Creates a deep clone of this MIDI event. + + + + + Describes this meta event + + + + + + + + + + MIDI In Message Information + + + + + Create a new MIDI In Message EventArgs + + + + + + + The Raw message received from the MIDI In API + + + + + The raw message interpreted as a MidiEvent + + + + + The timestamp in milliseconds for this message + + + + + Represents a MIDI Channel AfterTouch Event. + + + + + Creates a new ChannelAfterTouchEvent from raw MIDI data + + A binary reader + + + + Creates a new Channel After-Touch Event + + Absolute time + Channel + After-touch pressure + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The aftertouch pressure value + + + + + Represents a MIDI control change event + + + + + Reads a control change event from a MIDI stream + + Binary reader on the MIDI stream + + + + Creates a control change event + + Time + MIDI Channel Number + The MIDI Controller + Controller value + + + + Describes this control change event + + A string describing this event + + + + + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The controller number + + + + + The controller value + + + + + Represents a MIDI key signature event event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new Key signature event with the specified data + + + + + Creates a deep clone of this MIDI event. + + + + + Number of sharps or flats + + + + + Major or Minor key + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI meta event + + + + + Gets the type of this meta event + + + + + Empty constructor + + + + + Custom constructor for use by derived types, who will manage the data themselves + + Meta event type + Meta data length + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Reads a meta-event from a stream + + A binary reader based on the stream of MIDI data + A new MetaEvent object + + + + Describes this meta event + + + + + + + + + + MIDI MetaEvent Type + + + + Track sequence number + + + Text event + + + Copyright + + + Sequence track name + + + Track instrument name + + + Lyric + + + Marker + + + Cue point + + + Program (patch) name + + + Device (port) name + + + MIDI Channel (not official?) + + + MIDI Port (not official?) + + + End track + + + Set tempo + + + SMPTE offset + + + Time signature + + + Key signature + + + Sequencer specific + + + + MIDI command codes + + + + Note Off + + + Note On + + + Key After-touch + + + Control change + + + Patch change + + + Channel after-touch + + + Pitch wheel change + + + Sysex message + + + Eox (comes at end of a sysex message) + + + Timing clock (used when synchronization is required) + + + Start sequence + + + Continue sequence + + + Stop sequence + + + Auto-Sensing + + + Meta-event + + + + MidiController enumeration + http://www.midi.org/techspecs/midimessages.php#3 + + + + Bank Select (MSB) + + + Modulation (MSB) + + + Breath Controller + + + Foot controller (MSB) + + + Main volume + + + Pan + + + Expression + + + Bank Select LSB + + + Sustain + + + Portamento On/Off + + + Sostenuto On/Off + + + Soft Pedal On/Off + + + Legato Footswitch + + + Reset all controllers + + + All notes off + + + + Represents an individual MIDI event + + + + The MIDI command code + + + + Creates a MidiEvent from a raw message received using + the MME MIDI In APIs + + The short MIDI message + A new MIDI Event + + + + Constructs a MidiEvent from a BinaryStream + + The binary stream of MIDI data + The previous MIDI event (pass null for first event) + A new MidiEvent + + + + Converts this MIDI event to a short message (32 bit integer) that + can be sent by the Windows MIDI out short message APIs + Cannot be implemented for all MIDI messages + + A short message + + + + Default constructor + + + + + Creates a MIDI event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + + + + Creates a deep clone of this MIDI event. + + + + + The MIDI Channel Number for this event (1-16) + + + + + The Delta time for this event + + + + + The absolute time for this event + + + + + The command code for this event + + + + + Whether this is a note off event + + + + + Whether this is a note on event + + + + + Determines if this is an end track event + + + + + Displays a summary of the MIDI event + + A string containing a brief description of this MIDI event + + + + Utility function that can read a variable length integer from a binary stream + + The binary stream + The integer read + + + + Writes a variable length integer to a binary stream + + Binary stream + The value to write + + + + Exports this MIDI event's data + Overriden in derived classes, but they should call this version + + Absolute time used to calculate delta. + Is updated ready for the next delta calculation + Stream to write to + + + + A helper class to manage collection of MIDI events + It has the ability to organise them in tracks + + + + + Creates a new Midi Event collection + + Initial file type + Delta Ticks Per Quarter Note + + + + The number of tracks + + + + + The absolute time that should be considered as time zero + Not directly used here, but useful for timeshifting applications + + + + + The number of ticks per quarter note + + + + + Gets events on a specified track + + Track number + The list of events + + + + Gets events on a specific track + + Track number + The list of events + + + + Adds a new track + + The new track event list + + + + Adds a new track + + Initial events to add to the new track + The new track event list + + + + Removes a track + + Track number to remove + + + + Clears all events + + + + + The MIDI file type + + + + + Adds an event to the appropriate track depending on file type + + The event to be added + The original (or desired) track number + When adding events in type 0 mode, the originalTrack parameter + is ignored. If in type 1 mode, it will use the original track number to + store the new events. If the original track was 0 and this is a channel based + event, it will create new tracks if necessary and put it on the track corresponding + to its channel number + + + + Sorts, removes empty tracks and adds end track markers + + + + + Gets an enumerator for the lists of track events + + + + + Gets an enumerator for the lists of track events + + + + + Utility class for comparing MidiEvent objects + + + + + Compares two MidiEvents + Sorts by time, with EndTrack always sorted to the end + + + + + Class able to read a MIDI file + + + + + Opens a MIDI file for reading + + Name of MIDI file + + + + MIDI File format + + + + + Opens a MIDI file for reading + + Name of MIDI file + If true will error on non-paired note events + + + + Opens a MIDI file stream for reading + + The input stream containing a MIDI file + If true will error on non-paired note events + + + + The collection of events in this MIDI file + + + + + Number of tracks in this MIDI file + + + + + Delta Ticks Per Quarter Note + + + + + Describes the MIDI file + + A string describing the MIDI file and its events + + + + Exports a MIDI file + + Filename to export to + Events to export + + + + Represents a MIDI in device + + + + + Called when a MIDI message is received + + + + + An invalid MIDI message + + + + + Gets the number of MIDI input devices available in the system + + + + + Opens a specified MIDI in device + + The device number + + + + Closes this MIDI in device + + + + + Closes this MIDI in device + + + + + Start the MIDI in device + + + + + Stop the MIDI in device + + + + + Reset the MIDI in device + + + + + Gets the MIDI in device info + + + + + Closes the MIDI out device + + True if called from Dispose + + + + Cleanup + + + + + MIDI In Device Capabilities + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name + + + + + Support - Reserved + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + MIM_OPEN + + + + + MIM_CLOSE + + + + + MIM_DATA + + + + + MIM_LONGDATA + + + + + MIM_ERROR + + + + + MIM_LONGERROR + + + + + MIM_MOREDATA + + + + + MOM_OPEN + + + + + MOM_CLOSE + + + + + MOM_DONE + + + + + Represents a MIDI message + + + + + Creates a new MIDI message + + Status + Data parameter 1 + Data parameter 2 + + + + Creates a new MIDI message from a raw message + + A packed MIDI message from an MMIO function + + + + Creates a Note On message + + Note number (0 to 127) + Volume (0 to 127) + MIDI channel (1 to 16) + A new MidiMessage object + + + + Creates a Note Off message + + Note number + Volume + MIDI channel (1-16) + A new MidiMessage object + + + + Creates a patch change message + + The patch number + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Creates a Control Change message + + The controller number to change + The value to set the controller to + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Returns the raw MIDI message data + + + + + Represents a MIDI out device + + + + + Gets the number of MIDI devices available in the system + + + + + Gets the MIDI Out device info + + + + + Opens a specified MIDI out device + + The device number + + + + Closes this MIDI out device + + + + + Closes this MIDI out device + + + + + Gets or sets the volume for this MIDI out device + + + + + Resets the MIDI out device + + + + + Sends a MIDI out message + + Message + Parameter 1 + Parameter 2 + + + + Sends a MIDI message to the MIDI out device + + The message to send + + + + Closes the MIDI out device + + True if called from Dispose + + + + Send a long message, for example sysex. + + The bytes to send. + + + + Cleanup + + + + + class representing the capabilities of a MIDI out device + MIDIOUTCAPS: http://msdn.microsoft.com/en-us/library/dd798467%28VS.85%29.aspx + + + + + MIDICAPS_VOLUME + + + + + separate left-right volume control + MIDICAPS_LRVOLUME + + + + + MIDICAPS_CACHE + + + + + MIDICAPS_STREAM + driver supports midiStreamOut directly + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + Returns the number of supported voices + + + + + Gets the polyphony of the device + + + + + Returns true if the device supports all channels + + + + + Queries whether a particular channel is supported + + Channel number to test + True if the channel is supported + + + + Returns true if the device supports patch caching + + + + + Returns true if the device supports separate left and right volume + + + + + Returns true if the device supports MIDI stream out + + + + + Returns true if the device supports volume control + + + + + Returns the type of technology used by this MIDI out device + + + + + Represents the different types of technology used by a MIDI out device + + from mmsystem.h + + + The device is a MIDI port + + + The device is a MIDI synth + + + The device is a square wave synth + + + The device is an FM synth + + + The device is a MIDI mapper + + + The device is a WaveTable synth + + + The device is a software synth + + + + Represents a note MIDI event + + + + + Reads a NoteEvent from a stream of MIDI data + + Binary Reader for the stream + + + + Creates a MIDI Note Event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + MIDI Note Number + MIDI Note Velocity + + + + + + + + + The MIDI note number + + + + + The note velocity + + + + + The note name + + + + + Describes the Note Event + + Note event as a string + + + + + + + + + Represents a MIDI note on event + + + + + Reads a new Note On event from a stream of MIDI data + + Binary reader on the MIDI data stream + + + + Creates a NoteOn event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI note number + MIDI note velocity + MIDI note duration + + + + Creates a deep clone of this MIDI event. + + + + + The associated Note off event + + + + + Get or set the Note Number, updating the off event at the same time + + + + + Get or set the channel, updating the off event at the same time + + + + + The duration of this note + + + There must be a note off event + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI patch change event + + + + + Gets the default MIDI instrument names + + + + + Reads a new patch change event from a MIDI stream + + Binary reader for the MIDI stream + + + + Creates a new patch change event + + Time of the event + Channel number + Patch number + + + + The Patch Number + + + + + Describes this patch change event + + String describing the patch change event + + + + Gets as a short message for sending with the midiOutShortMsg API + + short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI pitch wheel change event + + + + + Reads a pitch wheel change event from a MIDI stream + + The MIDI stream to read from + + + + Creates a new pitch wheel change event + + Absolute event time + Channel + Pitch wheel value + + + + Describes this pitch wheel change event + + String describing this pitch wheel change event + + + + Pitch Wheel Value 0 is minimum, 0x2000 (8192) is default, 0x3FFF (16383) is maximum + + + + + Gets a short message + + Integer to sent as short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a Sequencer Specific event + + + + + Reads a new sequencer specific event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new Sequencer Specific event + + The sequencer specific data + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this sequencer specific + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Creates a new time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a deep clone of this MIDI event. + + + + + Hours + + + + + Minutes + + + + + Seconds + + + + + Frames + + + + + SubFrames + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI sysex message + + + + + Reads a sysex message from a MIDI stream + + Stream of MIDI data + a new sysex message + + + + Creates a deep clone of this MIDI event. + + + + + Describes this sysex message + + A string describing the sysex message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI tempo event + + + + + Reads a new tempo event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new tempo event with specified settings + + Microseconds per quarter note + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Describes this tempo event + + String describing the tempo event + + + + Microseconds per quarter note + + + + + Tempo + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI text event + + + + + Reads a new text event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TextEvent + + The text in this type + MetaEvent type (must be one that is + associated with text data) + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this text event + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TimeSignatureEvent + + Time at which to create this event + Numerator + Denominator + Ticks in Metronome Click + No of 32nd Notes in Quarter Click + + + + Creates a deep clone of this MIDI event. + + + + + Numerator (number of beats in a bar) + + + + + Denominator (Beat unit), + 1 means 2, 2 means 4 (crochet), 3 means 8 (quaver), 4 means 16 and 5 means 32 + + + + + Ticks in a metronome click + + + + + Number of 32nd notes in a quarter note + + + + + The time signature + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI track sequence number event event + + + + + Creates a new track sequence number event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a deep clone of this MIDI event. + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Chunk Identifier helpers + + + + + Chunk identifier to Int32 (replaces mmioStringToFOURCC) + + four character chunk identifier + Chunk identifier as int 32 + + + + Allows us to add descriptions to interop members + + + + + The description + + + + + Field description + + + + + String representation + + + + + + these will become extension methods once we move to .NET 3.5 + + + + + Checks if the buffer passed in is entirely full of nulls + + + + + Converts to a string containing the buffer described in hex + + + + + Decodes the buffer using the specified encoding, stopping at the first null + + + + + Concatenates the given arrays into a single array. + + The arrays to concatenate + The concatenated resulting array. + + + + Helper to get descriptions + + + + + Describes the Guid by looking for a FieldDescription attribute on the specified class + + + + + Support for Marshal Methods in both UWP and .NET 3.5 + + + + + SizeOf a structure + + + + + Offset of a field in a structure + + + + + Pointer to Structure + + + + + WavePosition extension methods + + + + + Get Position as timespan + + + + + Methods for converting between IEEE 80-bit extended double precision + and standard C# double precision. + + + + + Converts a C# double precision number to an 80-bit + IEEE extended double precision number (occupying 10 bytes). + + The double precision number to convert to IEEE extended. + An array of 10 bytes containing the IEEE extended number. + + + + Converts an IEEE 80-bit extended precision number to a + C# double precision number. + + The 80-bit IEEE extended number (as an array of 10 bytes). + A C# double precision number that is a close representation of the IEEE extended number. + + + + General purpose native methods for internal NAudio use + + + + + Helper methods for working with audio buffers + + + + + Ensures the buffer is big enough + + + + + + + + Ensures the buffer is big enough + + + + + + + + An encoding for use with file types that have one byte per character + + + + + The one and only instance of this class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A very basic circular buffer implementation + + + + + Create a new circular buffer + + Max buffer size in bytes + + + + Write data to the buffer + + Data to write + Offset into data + Number of bytes to write + number of bytes written + + + + Read from the buffer + + Buffer to read into + Offset into read buffer + Bytes to read + Number of bytes actually read + + + + Maximum length of this circular buffer + + + + + Number of bytes currently stored in the circular buffer + + + + + Resets the buffer + + + + + Advances the buffer, discarding bytes + + Bytes to advance + + + + A util class for conversions + + + + + linear to dB conversion + + linear value + decibel value + + + + dB to linear conversion + + decibel value + linear value + + + + HResult + + + + + S_OK + + + + + S_FALSE + + + + + E_INVALIDARG (from winerror.h) + + + + + MAKE_HRESULT macro + + + + + Helper to deal with the fact that in Win Store apps, + the HResult property name has changed + + COM Exception + The HResult + + + + Pass-through stream that ignores Dispose + Useful for dealing with MemoryStreams that you want to re-use + + + + + The source stream all other methods fall through to + + + + + If true the Dispose will be ignored, if false, will pass through to the SourceStream + Set to true by default + + + + + Creates a new IgnoreDisposeStream + + The source stream + + + + Can Read + + + + + Can Seek + + + + + Can write to the underlying stream + + + + + Flushes the underlying stream + + + + + Gets the length of the underlying stream + + + + + Gets or sets the position of the underlying stream + + + + + Reads from the underlying stream + + + + + Seeks on the underlying stream + + + + + Sets the length of the underlying stream + + + + + Writes to the underlying stream + + + + + Dispose - by default (IgnoreDispose = true) will do nothing, + leaving the underlying stream undisposed + + + + + In-place and stable implementation of MergeSort + + + + + MergeSort a list of comparable items + + + + + MergeSort a list + + + + + A thread-safe Progress Log Control + + + + + Creates a new progress log control + + + + + The contents of the log as text + + + + + Log a message + + + + + Clear the log + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ASIO 64 bit value + Unfortunately the ASIO API was implemented it before compiler supported consistently 64 bit + integer types. By using the structure the data layout on a little-endian system like the + Intel x86 architecture will result in a "non native" storage of the 64 bit data. The most + significant 32 bit are stored first in memory, the least significant bits are stored in the + higher memory space. However each 32 bit is stored in the native little-endian fashion + + + + + most significant bits (Bits 32..63) + + + + + least significant bits (Bits 0..31) + + + + + ASIO Callbacks + + + + + ASIO Buffer Switch Callback + + + + + ASIO Sample Rate Did Change Callback + + + + + ASIO Message Callback + + + + + ASIO Buffer Switch Time Info Callback + + + + + Buffer switch callback + void (*bufferSwitch) (long doubleBufferIndex, AsioBool directProcess); + + + + + Sample Rate Changed callback + void (*sampleRateDidChange) (AsioSampleRate sRate); + + + + + ASIO Message callback + long (*asioMessage) (long selector, long value, void* message, double* opt); + + + + + ASIO Buffer Switch Time Info Callback + AsioTime* (*bufferSwitchTimeInfo) (AsioTime* params, long doubleBufferIndex, AsioBool directProcess); + + + + + ASIO Channel Info + + + + + on input, channel index + + + + + Is Input + + + + + Is Active + + + + + Channel Info + + + + + ASIO Sample Type + + + + + Name + + + + + ASIODriverCapability holds all the information from the AsioDriver. + Use ASIODriverExt to get the Capabilities + + + + + Drive Name + + + + + Number of Input Channels + + + + + Number of Output Channels + + + + + Input Latency + + + + + Output Latency + + + + + Buffer Minimum Size + + + + + Buffer Maximum Size + + + + + Buffer Preferred Size + + + + + Buffer Granularity + + + + + Sample Rate + + + + + Input Channel Info + + + + + Output Channel Info + + + + + ASIO Error Codes + + + + + This value will be returned whenever the call succeeded + + + + + unique success return value for ASIOFuture calls + + + + + hardware input or output is not present or available + + + + + hardware is malfunctioning (can be returned by any ASIO function) + + + + + input parameter invalid + + + + + hardware is in a bad mode or used in a bad mode + + + + + hardware is not running when sample position is inquired + + + + + sample clock or rate cannot be determined or is not present + + + + + not enough memory for completing the request + + + + + ASIO Message Selector + + + + + selector in <value>, returns 1L if supported, + + + + + returns engine (host) asio implementation version, + + + + + request driver reset. if accepted, this + + + + + not yet supported, will currently always return 0L. + + + + + the driver went out of sync, such that + + + + + the drivers latencies have changed. The engine + + + + + if host returns true here, it will expect the + + + + + supports timecode + + + + + unused - value: number of commands, message points to mmc commands + + + + + kAsioSupportsXXX return 1 if host supports this + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + driver detected an overload + + + + + ASIO Sample Type + + + + + Int 16 MSB + + + + + Int 24 MSB (used for 20 bits as well) + + + + + Int 32 MSB + + + + + IEEE 754 32 bit float + + + + + IEEE 754 64 bit double float + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + Int 16 LSB + + + + + Int 24 LSB + used for 20 bits as well + + + + + Int 32 LSB + + + + + IEEE 754 32 bit float, as found on Intel x86 architecture + + + + + IEEE 754 64 bit double float, as found on Intel x86 architecture + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + DSD 1 bit data, 8 samples per byte. First sample in Least significant bit. + + + + + DSD 1 bit data, 8 samples per byte. First sample in Most significant bit. + + + + + DSD 8 bit data, 1 sample per byte. No Endianness required. + + + + + Main AsioDriver Class. To use this class, you need to query first the GetAsioDriverNames() and + then use the GetAsioDriverByName to instantiate the correct AsioDriver. + This is the first AsioDriver binding fully implemented in C#! + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Gets the ASIO driver names installed. + + a list of driver names. Use this name to GetAsioDriverByName + + + + Instantiate a AsioDriver given its name. + + The name of the driver + an AsioDriver instance + + + + Instantiate the ASIO driver by GUID. + + The GUID. + an AsioDriver instance + + + + Inits the AsioDriver.. + + The sys handle. + + + + + Gets the name of the driver. + + + + + + Gets the driver version. + + + + + + Gets the error message. + + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Gets the number of channels. + + The num input channels. + The num output channels. + + + + Gets the latencies (n.b. does not throw an exception) + + The input latency. + The output latency. + + + + Gets the size of the buffer. + + Size of the min. + Size of the max. + Size of the preferred. + The granularity. + + + + Determines whether this instance can use the specified sample rate. + + The sample rate. + + true if this instance [can sample rate] the specified sample rate; otherwise, false. + + + + + Gets the sample rate. + + + + + + Sets the sample rate. + + The sample rate. + + + + Gets the clock sources. + + The clocks. + The num sources. + + + + Sets the clock source. + + The reference. + + + + Gets the sample position. + + The sample pos. + The time stamp. + + + + Gets the channel info. + + The channel number. + if set to true [true for input info]. + Channel Info + + + + Creates the buffers. + + The buffer infos. + The num channels. + Size of the buffer. + The callbacks. + + + + Disposes the buffers. + + + + + Controls the panel. + + + + + Futures the specified selector. + + The selector. + The opt. + + + + Notifies OutputReady to the AsioDriver. + + + + + + Releases this instance. + + + + + Handles the exception. Throws an exception based on the error. + + The error to check. + Method name + + + + Inits the vTable method from GUID. This is a tricky part of this class. + + The ASIO GUID. + + + + Internal VTable structure to store all the delegates to the C++ COM method. + + + + + Callback used by the AsioDriverExt to get wave data + + + + + AsioDriverExt is a simplified version of the AsioDriver. It provides an easier + way to access the capabilities of the Driver and implement the callbacks necessary + for feeding the driver. + Implementation inspired from Rob Philpot's with a managed C++ ASIO wrapper BlueWave.Interop.Asio + http://www.codeproject.com/KB/mcpp/Asio.Net.aspx + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Initializes a new instance of the class based on an already + instantiated AsioDriver instance. + + A AsioDriver already instantiated. + + + + Allows adjustment of which is the first output channel we write to + + Output Channel offset + Input Channel offset + + + + Gets the driver used. + + The ASIOdriver. + + + + Starts playing the buffers. + + + + + Stops playing the buffers. + + + + + Shows the control panel. + + + + + Releases this instance. + + + + + Determines whether the specified sample rate is supported. + + The sample rate. + + true if [is sample rate supported]; otherwise, false. + + + + + Sets the sample rate. + + The sample rate. + + + + Gets or sets the fill buffer callback. + + The fill buffer callback. + + + + Gets the capabilities of the AsioDriver. + + The capabilities. + + + + Creates the buffers for playing. + + The number of outputs channels. + The number of input channel. + if set to true [use max buffer size] else use Prefered size + + + + Builds the capabilities internally. + + + + + Callback called by the AsioDriver on fill buffer demand. Redirect call to external callback. + + Index of the double buffer. + if set to true [direct process]. + + + + Callback called by the AsioDriver on event "Samples rate changed". + + The sample rate. + + + + Asio message call back. + + The selector. + The value. + The message. + The opt. + + + + + Buffers switch time info call back. + + The asio time param. + Index of the double buffer. + if set to true [direct process]. + + + + + This class stores convertors for different interleaved WaveFormat to ASIOSampleType separate channel + format. + + + + + Selects the sample convertor based on the input WaveFormat and the output ASIOSampleTtype. + + The wave format. + The type. + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Generic converter 24 LSB + + + + + Generic convertor for float + + + + + ASIO common Exception. + + + + + Gets the name of the error. + + The error. + the name of the error + + + + Flags for use with acmDriverAdd + + + + + ACM_DRIVERADDF_LOCAL + + + + + ACM_DRIVERADDF_GLOBAL + + + + + ACM_DRIVERADDF_FUNCTION + + + + + ACM_DRIVERADDF_NOTIFYHWND + + + + + Represents an installed ACM Driver + + + + + Helper function to determine whether a particular codec is installed + + The short name of the function + Whether the codec is installed + + + + Attempts to add a new ACM driver from a file + + Full path of the .acm or dll file containing the driver + Handle to the driver + + + + Removes a driver previously added using AddLocalDriver + + Local driver to remove + + + + Show Format Choose Dialog + + Owner window handle, can be null + Window title + Enumeration flags. None to get everything + Enumeration format. Only needed with certain enumeration flags + The selected format + Textual description of the selected format + Textual description of the selected format tag + True if a format was selected + + + + Gets the maximum size needed to store a WaveFormat for ACM interop functions + + + + + Finds a Driver by its short name + + Short Name + The driver, or null if not found + + + + Gets a list of the ACM Drivers installed + + + + + The callback for acmDriverEnum + + + + + Creates a new ACM Driver object + + Driver handle + + + + The short name of this driver + + + + + The full name of this driver + + + + + The driver ID + + + + + ToString + + + + + The list of FormatTags for this ACM Driver + + + + + Gets all the supported formats for a given format tag + + Format tag + Supported formats + + + + Opens this driver + + + + + Closes this driver + + + + + Dispose + + + + + Interop structure for ACM driver details (ACMDRIVERDETAILS) + http://msdn.microsoft.com/en-us/library/dd742889%28VS.85%29.aspx + + + + + DWORD cbStruct + + + + + FOURCC fccType + + + + + FOURCC fccComp + + + + + WORD wMid; + + + + + WORD wPid + + + + + DWORD vdwACM + + + + + DWORD vdwDriver + + + + + DWORD fdwSupport; + + + + + DWORD cFormatTags + + + + + DWORD cFilterTags + + + + + HICON hicon + + + + + TCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; + + + + + TCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; + + + + + TCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; + + + + + TCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; + + + + + TCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; + + + + + ACMDRIVERDETAILS_SHORTNAME_CHARS + + + + + ACMDRIVERDETAILS_LONGNAME_CHARS + + + + + ACMDRIVERDETAILS_COPYRIGHT_CHARS + + + + + ACMDRIVERDETAILS_LICENSING_CHARS + + + + + ACMDRIVERDETAILS_FEATURES_CHARS + + + + + Flags indicating what support a particular ACM driver has + + + + ACMDRIVERDETAILS_SUPPORTF_CODEC - Codec + + + ACMDRIVERDETAILS_SUPPORTF_CONVERTER - Converter + + + ACMDRIVERDETAILS_SUPPORTF_FILTER - Filter + + + ACMDRIVERDETAILS_SUPPORTF_HARDWARE - Hardware + + + ACMDRIVERDETAILS_SUPPORTF_ASYNC - Async + + + ACMDRIVERDETAILS_SUPPORTF_LOCAL - Local + + + ACMDRIVERDETAILS_SUPPORTF_DISABLED - Disabled + + + + ACM_DRIVERENUMF_NOLOCAL, Only global drivers should be included in the enumeration + + + + + ACM_DRIVERENUMF_DISABLED, Disabled ACM drivers should be included in the enumeration + + + + + ACM Format + + + + + Format Index + + + + + Format Tag + + + + + Support Flags + + + + + WaveFormat + + + + + WaveFormat Size + + + + + Format Description + + + + + ACMFORMATCHOOSE + http://msdn.microsoft.com/en-us/library/dd742911%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD fdwStyle; + + + + + HWND hwndOwner; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + LPCTSTR pszTitle; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + LPTSTR pszName; + n.b. can be written into + + + + + DWORD cchName + Should be at least 128 unless name is zero + + + + + DWORD fdwEnum; + + + + + LPWAVEFORMATEX pwfxEnum; + + + + + HINSTANCE hInstance; + + + + + LPCTSTR pszTemplateName; + + + + + LPARAM lCustData; + + + + + ACMFORMATCHOOSEHOOKPROC pfnHook; + + + + + None + + + + + ACMFORMATCHOOSE_STYLEF_SHOWHELP + + + + + ACMFORMATCHOOSE_STYLEF_ENABLEHOOK + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE + + + + + ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT + + + + + ACMFORMATCHOOSE_STYLEF_CONTEXTHELP + + + + + ACMFORMATDETAILS + http://msdn.microsoft.com/en-us/library/dd742913%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD dwFormatIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD fdwSupport; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + ACMFORMATDETAILS_FORMAT_CHARS + + + + + Format Enumeration Flags + + + + + None + + + + + ACM_FORMATENUMF_CONVERT + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will only enumerate destination formats that can be converted from the given pwfx format. + + + + + ACM_FORMATENUMF_HARDWARE + The enumerator should only enumerate formats that are supported as native input or output formats on one or more of the installed waveform-audio devices. This flag provides a way for an application to choose only formats native to an installed waveform-audio device. This flag must be used with one or both of the ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT flags. Specifying both ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT will enumerate only formats that can be opened for input or output. This is true regardless of whether this flag is specified. + + + + + ACM_FORMATENUMF_INPUT + Enumerator should enumerate only formats that are supported for input (recording). + + + + + ACM_FORMATENUMF_NCHANNELS + The nChannels member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_NSAMPLESPERSEC + The nSamplesPerSec member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_OUTPUT + Enumerator should enumerate only formats that are supported for output (playback). + + + + + ACM_FORMATENUMF_SUGGEST + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate all suggested destination formats for the given pwfx format. This mechanism can be used instead of the acmFormatSuggest function to allow an application to choose the best suggested format for conversion. The dwFormatIndex member will always be set to zero on return. + + + + + ACM_FORMATENUMF_WBITSPERSAMPLE + The wBitsPerSample member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_WFORMATTAG + The wFormatTag member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. The dwFormatTag member of the ACMFORMATDETAILS structure must be equal to the wFormatTag member. + + + + + ACM_FORMATSUGGESTF_WFORMATTAG + + + + + ACM_FORMATSUGGESTF_NCHANNELS + + + + + ACM_FORMATSUGGESTF_NSAMPLESPERSEC + + + + + ACM_FORMATSUGGESTF_WBITSPERSAMPLE + + + + + ACM_FORMATSUGGESTF_TYPEMASK + + + + + ACM Format Tag + + + + + Format Tag Index + + + + + Format Tag + + + + + Format Size + + + + + Support Flags + + + + + Standard Formats Count + + + + + Format Description + + + + + DWORD cbStruct; + + + + + DWORD dwFormatTagIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD cbFormatSize; + + + + + DWORD fdwSupport; + + + + + DWORD cStandardFormats; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + ACMFORMATTAGDETAILS_FORMATTAG_CHARS + + + + + Interop definitions for Windows ACM (Audio Compression Manager) API + + + + + http://msdn.microsoft.com/en-us/library/dd742910%28VS.85%29.aspx + UINT ACMFORMATCHOOSEHOOKPROC acmFormatChooseHookProc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + + + + + http://msdn.microsoft.com/en-us/library/dd742916%28VS.85%29.aspx + MMRESULT acmFormatSuggest( + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + DWORD cbwfxDst, + DWORD fdwSuggest); + + + + + http://msdn.microsoft.com/en-us/library/dd742928%28VS.85%29.aspx + MMRESULT acmStreamOpen( + LPHACMSTREAM phas, + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + LPWAVEFILTER pwfltr, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + + + + + A version with pointers for troubleshooting + + + + + AcmStream encapsulates an Audio Compression Manager Stream + used to convert audio from one format to another + + + + + Creates a new ACM stream to convert one format to another. Note that + not all conversions can be done in one step + + The source audio format + The destination audio format + + + + Creates a new ACM stream to convert one format to another, using a + specified driver identified and wave filter + + the driver identifier + the source format + the wave filter + + + + Returns the number of output bytes for a given number of input bytes + + Number of input bytes + Number of output bytes + + + + Returns the number of source bytes for a given number of destination bytes + + Number of destination bytes + Number of source bytes + + + + Suggests an appropriate PCM format that the compressed format can be converted + to in one step + + The compressed format + The PCM format + + + + Returns the Source Buffer. Fill this with data prior to calling convert + + + + + Returns the Destination buffer. This will contain the converted data + after a successful call to Convert + + + + + Report that we have repositioned in the source stream + + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of source bytes actually converted + The number of converted bytes in the DestinationBuffer + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of converted bytes in the DestinationBuffer + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + ACMSTREAMHEADER_STATUSF_DONE + + + + + ACMSTREAMHEADER_STATUSF_PREPARED + + + + + ACMSTREAMHEADER_STATUSF_INQUEUE + + + + + Interop structure for ACM stream headers. + ACMSTREAMHEADER + http://msdn.microsoft.com/en-us/library/dd742926%28VS.85%29.aspx + + + + + ACM_STREAMOPENF_QUERY, ACM will be queried to determine whether it supports the given conversion. A conversion stream will not be opened, and no handle will be returned in the phas parameter. + + + + + ACM_STREAMOPENF_ASYNC, Stream conversion should be performed asynchronously. If this flag is specified, the application can use a callback function to be notified when the conversion stream is opened and closed and after each buffer is converted. In addition to using a callback function, an application can examine the fdwStatus member of the ACMSTREAMHEADER structure for the ACMSTREAMHEADER_STATUSF_DONE flag. + + + + + ACM_STREAMOPENF_NONREALTIME, ACM will not consider time constraints when converting the data. By default, the driver will attempt to convert the data in real time. For some formats, specifying this flag might improve the audio quality or other characteristics. + + + + + CALLBACK_TYPEMASK, callback type mask + + + + + CALLBACK_NULL, no callback + + + + + CALLBACK_WINDOW, dwCallback is a HWND + + + + + CALLBACK_TASK, dwCallback is a HTASK + + + + + CALLBACK_FUNCTION, dwCallback is a FARPROC + + + + + CALLBACK_THREAD, thread ID replaces 16 bit task + + + + + CALLBACK_EVENT, dwCallback is an EVENT Handle + + + + + ACM_STREAMSIZEF_SOURCE + + + + + ACM_STREAMSIZEF_DESTINATION + + + + + Summary description for WaveFilter. + + + + + cbStruct + + + + + dwFilterTag + + + + + fdwFilter + + + + + reserved + + + + + ADSR sample provider allowing you to specify attack, decay, sustain and release values + + + + + Creates a new AdsrSampleProvider with default values + + + + + Attack time in seconds + + + + + Release time in seconds + + + + + Reads audio from this sample provider + + + + + Enters the Release phase + + + + + The output WaveFormat + + + + + Sample Provider to concatenate multiple sample providers together + + + + + Creates a new ConcatenatingSampleProvider + + The source providers to play one after the other. Must all share the same sample rate and channel count + + + + The WaveFormat of this Sample Provider + + + + + Read Samples from this sample provider + + + + + Sample Provider to allow fading in and out + + + + + Creates a new FadeInOutSampleProvider + + The source stream with the audio to be faded in or out + If true, we start faded out + + + + Requests that a fade-in begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Requests that a fade-out begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Reads samples from this sample provider + + Buffer to read into + Offset within buffer to write to + Number of samples desired + Number of samples read + + + + WaveFormat of this SampleProvider + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing sample provider, allowing re-patching of input channels to different + output channels + + Input sample providers. Must all be of the same sample rate, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads samples from this sample provider + + Buffer to be filled with sample data + Offset into buffer to start writing to, usually 0 + Number of samples required + Number of samples read + + + + The output WaveFormat for this SampleProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Allows you to: + 1. insert a pre-delay of silence before the source begins + 2. skip over a certain amount of the beginning of the source + 3. only play a set amount from the source + 4. insert silence at the end after the source is complete + + + + + Number of samples of silence to insert before playing source + + + + + Amount of silence to insert before playing + + + + + Number of samples in source to discard + + + + + Amount of audio to skip over from the source before beginning playback + + + + + Number of samples to read from source (if 0, then read it all) + + + + + Amount of audio to take from the source (TimeSpan.Zero means play to end) + + + + + Number of samples of silence to insert after playing source + + + + + Amount of silence to insert after playing source + + + + + Creates a new instance of offsetSampleProvider + + The Source Sample Provider to read from + + + + The WaveFormat of this SampleProvider + + + + + Reads from this sample provider + + Sample buffer + Offset within sample buffer to read to + Number of samples required + Number of samples read + + + + Converts an IWaveProvider containing 32 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm32BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Utility class for converting to SampleProvider + + + + + Helper function to go from IWaveProvider to a SampleProvider + Must already be PCM or IEEE float + + The WaveProvider to convert + A sample provider + + + + Converts a sample provider to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts a sample provider to 24 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream, clipping if necessary + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + The Format of this IWaveProvider + + + + + + Volume of this channel. 1.0 = full scale, 0.0 to mute + + + + + Signal Generator + Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep. + + + Posibility to change ISampleProvider + Example : + --------- + WaveOut _waveOutGene = new WaveOut(); + WaveGenerator wg = new SignalGenerator(); + wg.Type = ... + wg.Frequency = ... + wg ... + _waveOutGene.Init(wg); + _waveOutGene.Play(); + + + + + Initializes a new instance for the Generator (Default :: 44.1Khz, 2 channels, Sinus, Frequency = 440, Gain = 1) + + + + + Initializes a new instance for the Generator (UserDef SampleRate & Channels) + + Desired sample rate + Number of channels + + + + The waveformat of this WaveProvider (same as the source) + + + + + Frequency for the Generator. (20.0 - 20000.0 Hz) + Sin, Square, Triangle, SawTooth, Sweep (Start Frequency). + + + + + Return Log of Frequency Start (Read only) + + + + + End Frequency for the Sweep Generator. (Start Frequency in Frequency) + + + + + Return Log of Frequency End (Read only) + + + + + Gain for the Generator. (0.0 to 1.0) + + + + + Channel PhaseReverse + + + + + Type of Generator. + + + + + Length Seconds for the Sweep Generator. + + + + + Reads from this provider. + + + + + Private :: Random for WhiteNoise & Pink Noise (Value form -1 to 1) + + Random value from -1 to +1 + + + + Signal Generator type + + + + + Pink noise + + + + + White noise + + + + + Sweep + + + + + Sine wave + + + + + Square wave + + + + + Triangle Wave + + + + + Sawtooth wave + + + + + Author: Freefall + Date: 05.08.16 + Based on: the port of Stephan M. Bernsee´s pitch shifting class + Port site: https://sites.google.com/site/mikescoderama/pitch-shifting + Test application and github site: https://github.com/Freefall63/NAudio-Pitchshifter + + NOTE: I strongly advice to add a Limiter for post-processing. + For my needs the FastAttackCompressor1175 provides acceptable results: + https://github.com/Jiyuu/SkypeFX/blob/master/JSNet/FastAttackCompressor1175.cs + + UPDATE: Added a simple Limiter based on the pydirac implementation. + https://github.com/echonest/remix/blob/master/external/pydirac225/source/Dirac_LE.cpp + + + + + + Creates a new SMB Pitch Shifting Sample Provider with default settings + + Source provider + + + + Creates a new SMB Pitch Shifting Sample Provider with custom settings + + Source provider + FFT Size (any power of two <= 4096: 4096, 2048, 1024, 512, ...) + Oversampling (number of overlapping windows) + Initial pitch (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + Read from this sample provider + + + + + WaveFormat + + + + + Pitch Factor (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + + Takes a stereo input and turns it to mono + + + + + Creates a new mono ISampleProvider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this SampleProvider + + + + + Helper class turning an already 64 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Fully managed resampling sample provider, based on the WDL Resampler + + + + + Constructs a new resampler + + Source to resample + Desired output sample rate + + + + Reads from this sample provider + + + + + Output WaveFormat + + + + + Sample provider interface to make WaveChannel32 extensible + Still a bit ugly, hence internal at the moment - and might even make these into + bit depth converting WaveProviders + + + + + A sample provider mixer, allowing inputs to be added and removed + + + + + Creates a new MixingSampleProvider, with no inputs, but a specified WaveFormat + + The WaveFormat of this mixer. All inputs must be in this format + + + + Creates a new MixingSampleProvider, based on the given inputs + + Mixer inputs - must all have the same waveformat, and must + all be of the same WaveFormat. There must be at least one input + + + + Returns the mixer inputs (read-only - use AddMixerInput to add an input + + + + + When set to true, the Read method always returns the number + of samples requested, even if there are no inputs, or if the + current inputs reach their end. Setting this to true effectively + makes this a never-ending sample provider, so take care if you plan + to write it out to a file. + + + + + Adds a WaveProvider as a Mixer input. + Must be PCM or IEEE float already + + IWaveProvider mixer input + + + + Adds a new mixer input + + Mixer input + + + + Raised when a mixer input has been removed because it has ended + + + + + Removes a mixer input + + Mixer input to remove + + + + Removes all mixer inputs + + + + + The output WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + SampleProvider event args + + + + + Constructs a new SampleProviderEventArgs + + + + + The Sample Provider + + + + + Converts a mono sample provider to stereo, with a customisable pan strategy + + + + + Initialises a new instance of the PanningSampleProvider + + Source sample provider, must be mono + + + + Pan value, must be between -1 (left) and 1 (right) + + + + + The pan strategy currently in use + + + + + The WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Pair of floating point values, representing samples or multipliers + + + + + Left value + + + + + Right value + + + + + Required Interface for a Panning Strategy + + + + + Gets the left and right multipliers for a given pan value + + Pan value from -1 to 1 + Left and right multipliers in a stereo sample pair + + + + Simplistic "balance" control - treating the mono input as if it was stereo + In the centre, both channels full volume. Opposite channel decays linearly + as balance is turned to to one side + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Square Root Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Sinus Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Linear Pan + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Simple SampleProvider that passes through audio unchanged and raises + an event every n samples with the maximum sample value from the period + for metering purposes + + + + + Number of Samples per notification + + + + + Raised periodically to inform the user of the max volume + + + + + Initialises a new instance of MeteringSampleProvider that raises 10 stream volume + events per second + + Source sample provider + + + + Initialises a new instance of MeteringSampleProvider + + source sampler provider + Number of samples between notifications + + + + The WaveFormat of this sample provider + + + + + Reads samples from this Sample Provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Event args for aggregated stream volume + + + + + Max sample values array (one for each channel) + + + + + Simple class that raises an event on every sample + + + + + Initializes a new instance of NotifyingSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Sample notifier + + + + + Very simple sample provider supporting adjustable gain + + + + + Initializes a new instance of VolumeSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Helper base class for classes converting to ISampleProvider + + + + + Source Wave Provider + + + + + Source buffer (to avoid constantly creating small buffers during playback) + + + + + Initialises a new instance of SampleProviderConverterBase + + Source Wave provider + + + + Wave format of this wave provider + + + + + Reads samples from the source wave provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Ensure the source buffer exists and is big enough + + Bytes required + + + + Helper class for when you need to convert back to an IWaveProvider from + an ISampleProvider. Keeps it as IEEE float + + + + + Initializes a new instance of the WaveProviderFloatToWaveProvider class + + Source wave provider + + + + Reads from this provider + + + + + The waveformat of this WaveProvider (same as the source) + + + + + No nonsense mono to stereo provider, no volume adjustment, + just copies input to left and right. + + + + + Initializes a new instance of MonoToStereoSampleProvider + + Source sample provider + + + + WaveFormat of this provider + + + + + Reads samples from this provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Multiplier for left channel (default is 1.0) + + + + + Multiplier for right channel (default is 1.0) + + + + + Helper class turning an already 32 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Converts an IWaveProvider containing 16 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm16BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Samples required + Number of samples read + + + + Converts an IWaveProvider containing 24 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm24BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 8 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm8BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples to read + Number of samples read + + + + Utility class that takes an IWaveProvider input at any bit depth + and exposes it as an ISampleProvider. Can turn mono inputs into stereo, + and allows adjusting of volume + (The eventual successor to WaveChannel32) + This class also serves as an example of how you can link together several simple + Sample Providers to form a more useful class. + + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + force mono inputs to become stereo + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + The WaveFormat of this Sample Provider + + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Raised periodically to inform the user of the max volume + (before the volume meter) + + + + + Useful extension methods to make switching between WaveAndSampleProvider easier + + + + + Converts a WaveProvider into a SampleProvider (only works for PCM) + + WaveProvider to convert + + + + + Allows sending a SampleProvider directly to an IWavePlayer without needing to convert + back to an IWaveProvider + + The WavePlayer + + + + + + Turns WaveFormatExtensible into a standard waveformat if possible + + Input wave format + A standard PCM or IEEE waveformat, or the original waveformat + + + + Converts a ISampleProvider to a IWaveProvider but still 32 bit float + + SampleProvider to convert + An IWaveProvider + + + + Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit + + SampleProvider to convert + A 16 bit IWaveProvider + + + + Concatenates one Sample Provider on the end of another + + The sample provider to play first + The sample provider to play next + A single sampleprovider to play one after the other + + + + Concatenates one Sample Provider on the end of another with silence inserted + + The sample provider to play first + Silence duration to insert between the two + The sample provider to play next + A single sample provider + + + + Skips over a specified amount of time (by consuming source stream) + + Source sample provider + Duration to skip over + A sample provider that skips over the specified amount of time + + + + Takes a specified amount of time from the source stream + + Source sample provider + Duration to take + A sample provider that reads up to the specified amount of time + + + + Converts a Stereo Sample Provider to mono, allowing mixing of channel volume + + Stereo Source Provider + Amount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + Amount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + A mono SampleProvider + + + + Converts a Mono ISampleProvider to stereo + + Mono Source Provider + Amount to mix to left channel (1.0 is full volume) + Amount to mix to right channel (1.0 is full volume) + + + + + Recording using waveIn api with event callbacks. + Use this for recording in non-gui applications + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + Channel Mode + + + + + Stereo + + + + + Joint Stereo + + + + + Dual Channel + + + + + Mono + + + + + An ID3v2 Tag + + + + + Reads an ID3v2 tag from a stream + + + + + Creates a new ID3v2 tag from a collection of key-value pairs. + + A collection of key-value pairs containing the tags to include in the ID3v2 tag. + A new ID3v2 tag + + + + Convert the frame size to a byte array. + + The frame body size. + + + + + Creates an ID3v2 frame for the given key-value pair. + + + + + + + + Gets the Id3v2 Header size. The size is encoded so that only 7 bits per byte are actually used. + + + + + + + Creates the Id3v2 tag header and returns is as a byte array. + + The Id3v2 frames that will be included in the file. This is used to calculate the ID3v2 tag size. + + + + + Creates the Id3v2 tag for the given key-value pairs and returns it in the a stream. + + + + + + + Raw data from this tag + + + + + Interface for MP3 frame by frame decoder + + + + + Decompress a single MP3 frame + + Frame to decompress + Output buffer + Offset within output buffer + Bytes written to output buffer + + + + Tell the decoder that we have repositioned + + + + + PCM format that we are converting into + + + + + Represents an MP3 Frame + + + + + Reads an MP3 frame from a stream + + input stream + A valid MP3 frame, or null if none found + + + Reads an MP3Frame from a stream + http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm has some good info + also see http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx + + A valid MP3 frame, or null if none found + + + + Constructs an MP3 frame + + + + + checks if the four bytes represent a valid header, + if they are, will parse the values into Mp3Frame + + + + + Sample rate of this frame + + + + + Frame length in bytes + + + + + Bit Rate + + + + + Raw frame data (includes header bytes) + + + + + MPEG Version + + + + + MPEG Layer + + + + + Channel Mode + + + + + The number of samples in this frame + + + + + The channel extension bits + + + + + The bitrate index (directly from the header) + + + + + Whether the Copyright bit is set + + + + + Whether a CRC is present + + + + + Not part of the MP3 frame itself - indicates where in the stream we found this header + + + + + MP3 Frame Decompressor using ACM + + + + + Creates a new ACM frame decompressor + + The MP3 source format + + + + Output format (PCM) + + + + + Decompresses a frame + + The MP3 frame + destination buffer + Offset within destination buffer + Bytes written into destination buffer + + + + Resets the MP3 Frame Decompressor after a reposition operation + + + + + Disposes of this MP3 frame decompressor + + + + + Finalizer ensuring that resources get released properly + + + + + MPEG Layer flags + + + + + Reserved + + + + + Layer 3 + + + + + Layer 2 + + + + + Layer 1 + + + + + MPEG Version Flags + + + + + Version 2.5 + + + + + Reserved + + + + + Version 2 + + + + + Version 1 + + + + + Represents a Xing VBR header + + + + + Load Xing Header + + Frame + Xing Header + + + + Sees if a frame contains a Xing header + + + + + Number of frames + + + + + Number of bytes + + + + + VBR Scale property + + + + + The MP3 frame + + + + ACM_METRIC_COUNT_DRIVERS + + + ACM_METRIC_COUNT_CODECS + + + ACM_METRIC_COUNT_CONVERTERS + + + ACM_METRIC_COUNT_FILTERS + + + ACM_METRIC_COUNT_DISABLED + + + ACM_METRIC_COUNT_HARDWARE + + + ACM_METRIC_COUNT_LOCAL_DRIVERS + + + ACM_METRIC_COUNT_LOCAL_CODECS + + + ACM_METRIC_COUNT_LOCAL_CONVERTERS + + + ACM_METRIC_COUNT_LOCAL_FILTERS + + + ACM_METRIC_COUNT_LOCAL_DISABLED + + + ACM_METRIC_HARDWARE_WAVE_INPUT + + + ACM_METRIC_HARDWARE_WAVE_OUTPUT + + + ACM_METRIC_MAX_SIZE_FORMAT + + + ACM_METRIC_MAX_SIZE_FILTER + + + ACM_METRIC_DRIVER_SUPPORT + + + ACM_METRIC_DRIVER_PRIORITY + + + + ACM_STREAMCONVERTF_BLOCKALIGN + + + + + ACM_STREAMCONVERTF_START + + + + + ACM_STREAMCONVERTF_END + + + + + WaveHeader interop structure (WAVEHDR) + http://msdn.microsoft.com/en-us/library/dd743837%28VS.85%29.aspx + + + + pointer to locked data buffer (lpData) + + + length of data buffer (dwBufferLength) + + + used for input only (dwBytesRecorded) + + + for client's use (dwUser) + + + assorted flags (dwFlags) + + + loop control counter (dwLoops) + + + PWaveHdr, reserved for driver (lpNext) + + + reserved for driver + + + + Wave Header Flags enumeration + + + + + WHDR_BEGINLOOP + This buffer is the first buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_DONE + Set by the device driver to indicate that it is finished with the buffer and is returning it to the application. + + + + + WHDR_ENDLOOP + This buffer is the last buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_INQUEUE + Set by Windows to indicate that the buffer is queued for playback. + + + + + WHDR_PREPARED + Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function. + + + + + WASAPI Loopback Capture + based on a contribution from "Pygmy" - http://naudio.codeplex.com/discussions/203605 + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Gets the default audio loopback capture device + + The default audio loopback capture device + + + + Capturing wave format + + + + + Specify loopback + + + + + Allows recording using the Windows waveIn APIs + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Creates a WaveIn device using the specified window handle for callbacks + + A valid window handle + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Called when we get a new buffer of recorded data + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + WaveInCapabilities structure (based on WAVEINCAPS2 from mmsystem.h) + http://msdn.microsoft.com/en-us/library/ms713726(VS.85).aspx + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Number of channels supported + + + + + The product name + + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name from the registry if supported + + + + + Event Args for WaveInStream event + + + + + Creates new WaveInEventArgs + + + + + Buffer containing recorded data. Note that it might not be completely + full. + + + + + The number of recorded bytes in Buffer. + + + + + MME Wave function interop + + + + + CALLBACK_NULL + No callback + + + + + CALLBACK_FUNCTION + dwCallback is a FARPROC + + + + + CALLBACK_EVENT + dwCallback is an EVENT handle + + + + + CALLBACK_WINDOW + dwCallback is a HWND + + + + + CALLBACK_THREAD + callback is a thread ID + + + + + WIM_OPEN + + + + + WIM_CLOSE + + + + + WIM_DATA + + + + + WOM_CLOSE + + + + + WOM_DONE + + + + + WOM_OPEN + + + + + WaveOutCapabilities structure (based on WAVEOUTCAPS2 from mmsystem.h) + http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutcaps_str.asp + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Optional functionality supported by the device + + + + + Number of channels supported + + + + + Whether playback control is supported + + + + + The product name + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Supported wave formats for WaveOutCapabilities + + + + + 11.025 kHz, Mono, 8-bit + + + + + 11.025 kHz, Stereo, 8-bit + + + + + 11.025 kHz, Mono, 16-bit + + + + + 11.025 kHz, Stereo, 16-bit + + + + + 22.05 kHz, Mono, 8-bit + + + + + 22.05 kHz, Stereo, 8-bit + + + + + 22.05 kHz, Mono, 16-bit + + + + + 22.05 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 48 kHz, Mono, 8-bit + + + + + 48 kHz, Stereo, 8-bit + + + + + 48 kHz, Mono, 16-bit + + + + + 48 kHz, Stereo, 16-bit + + + + + 96 kHz, Mono, 8-bit + + + + + 96 kHz, Stereo, 8-bit + + + + + 96 kHz, Mono, 16-bit + + + + + 96 kHz, Stereo, 16-bit + + + + + Flags indicating what features this WaveOut device supports + + + + supports pitch control (WAVECAPS_PITCH) + + + supports playback rate control (WAVECAPS_PLAYBACKRATE) + + + supports volume control (WAVECAPS_VOLUME) + + + supports separate left-right volume control (WAVECAPS_LRVOLUME) + + + (WAVECAPS_SYNC) + + + (WAVECAPS_SAMPLEACCURATE) + + + + GSM 610 + + + + + Creates a GSM 610 WaveFormat + For now hardcoded to 13kbps + + + + + Samples per block + + + + + Writes this structure to a BinaryWriter + + + + + IMA/DVI ADPCM Wave Format + Work in progress + + + + + parameterless constructor for Marshalling + + + + + Creates a new IMA / DVI ADPCM Wave Format + + Sample Rate + Number of channels + Bits Per Sample + + + + MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h + + + + + Wave format ID (wID) + + + + + Padding flags (fdwFlags) + + + + + Block Size (nBlockSize) + + + + + Frames per block (nFramesPerBlock) + + + + + Codec Delay (nCodecDelay) + + + + + Creates a new MP3 WaveFormat + + + + + Wave Format Padding Flags + + + + + MPEGLAYER3_FLAG_PADDING_ISO + + + + + MPEGLAYER3_FLAG_PADDING_ON + + + + + MPEGLAYER3_FLAG_PADDING_OFF + + + + + Wave Format ID + + + + MPEGLAYER3_ID_UNKNOWN + + + MPEGLAYER3_ID_MPEG + + + MPEGLAYER3_ID_CONSTANTFRAMESIZE + + + + DSP Group TrueSpeech + + + + + DSP Group TrueSpeech WaveFormat + + + + + Writes this structure to a BinaryWriter + + + + + Represents a Wave file format + + + + format type + + + number of channels + + + sample rate + + + for buffer estimation + + + block size of data + + + number of bits per sample of mono data + + + number of following bytes + + + + Creates a new PCM 44.1Khz stereo 16 bit format + + + + + Creates a new 16 bit wave format with the specified sample + rate and channel count + + Sample Rate + Number of channels + + + + Gets the size of a wave buffer equivalent to the latency in milliseconds. + + The milliseconds. + + + + + Creates a WaveFormat with custom members + + The encoding + Sample Rate + Number of channels + Average Bytes Per Second + Block Align + Bits Per Sample + + + + + Creates an A-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a Mu-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a new PCM format with the specified sample rate, bit depth and channels + + + + + Creates a new 32 bit IEEE floating point wave format + + sample rate + number of channels + + + + Helper function to retrieve a WaveFormat structure from a pointer + + WaveFormat structure + + + + + Helper function to marshal WaveFormat to an IntPtr + + WaveFormat + IntPtr to WaveFormat structure (needs to be freed by callee) + + + + Reads in a WaveFormat (with extra data) from a fmt chunk (chunk identifier and + length should already have been read) + + Binary reader + Format chunk length + A WaveFormatExtraData + + + + Reads a new WaveFormat object from a stream + + A binary reader that wraps the stream + + + + Reports this WaveFormat as a string + + String describing the wave format + + + + Compares with another WaveFormat object + + Object to compare to + True if the objects are the same + + + + Provides a Hashcode for this WaveFormat + + A hashcode + + + + Returns the encoding type used + + + + + Writes this WaveFormat object to a stream + + the output stream + + + + Returns the number of channels (1=mono,2=stereo etc) + + + + + Returns the sample rate (samples per second) + + + + + Returns the average number of bytes used per second + + + + + Returns the block alignment + + + + + Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8) + Can be 0 for some codecs + + + + + Returns the number of extra bytes used by this waveformat. Often 0, + except for compressed formats which store extra data after the WAVEFORMATEX header + + + + + Microsoft ADPCM + See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm + + + + + Empty constructor needed for marshalling from a pointer + + + + + Samples per block + + + + + Number of coefficients + + + + + Coefficients + + + + + Microsoft ADPCM + + Sample Rate + Channels + + + + Serializes this wave format + + Binary writer + + + + String Description of this WaveFormat + + + + + Custom marshaller for WaveFormat structures + + + + + Gets the instance of this marshaller + + + + + + + Clean up managed data + + + + + Clean up native data + + + + + + Get native data size + + + + + Marshal managed to native + + + + + Marshal Native to Managed + + + + + Summary description for WaveFormatEncoding. + + + + WAVE_FORMAT_UNKNOWN, Microsoft Corporation + + + WAVE_FORMAT_PCM Microsoft Corporation + + + WAVE_FORMAT_ADPCM Microsoft Corporation + + + WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation + + + WAVE_FORMAT_VSELP Compaq Computer Corp. + + + WAVE_FORMAT_IBM_CVSD IBM Corporation + + + WAVE_FORMAT_ALAW Microsoft Corporation + + + WAVE_FORMAT_MULAW Microsoft Corporation + + + WAVE_FORMAT_DTS Microsoft Corporation + + + WAVE_FORMAT_DRM Microsoft Corporation + + + WAVE_FORMAT_WMAVOICE9 + + + WAVE_FORMAT_OKI_ADPCM OKI + + + WAVE_FORMAT_DVI_ADPCM Intel Corporation + + + WAVE_FORMAT_IMA_ADPCM Intel Corporation + + + WAVE_FORMAT_MEDIASPACE_ADPCM Videologic + + + WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp + + + WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation + + + WAVE_FORMAT_DIGISTD DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. + + + WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation + + + WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. + + + WAVE_FORMAT_CU_CODEC Hewlett-Packard Company + + + WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America + + + WAVE_FORMAT_SONARC Speech Compression + + + WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc + + + WAVE_FORMAT_ECHOSC1 Echo Speech Corporation + + + WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. + + + WAVE_FORMAT_APTX Audio Processing Technology + + + WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. + + + WAVE_FORMAT_PROSODY_1612, Aculab plc + + + WAVE_FORMAT_LRC, Merging Technologies S.A. + + + WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories + + + WAVE_FORMAT_GSM610, Microsoft Corporation + + + WAVE_FORMAT_MSNAUDIO, Microsoft Corporation + + + WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation + + + WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited + + + WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. + + + WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_MPEG, Microsoft Corporation + + + + + + + + + WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_GSM + + + WAVE_FORMAT_G729 + + + WAVE_FORMAT_G723 + + + WAVE_FORMAT_ACELP + + + + WAVE_FORMAT_RAW_AAC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation + + + + + Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation + + + + + Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS + + + + + Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + + Source wmCodec.h + + + + MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral SBR or PS tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + NOKIA_MPEG_ADTS_AAC + Source wmCodec.h + + + NOKIA_MPEG_RAW_AAC + Source wmCodec.h + + + VODAFONE_MPEG_ADTS_AAC + Source wmCodec.h + + + VODAFONE_MPEG_RAW_AAC + Source wmCodec.h + + + + High-Efficiency Advanced Audio Coding (HE-AAC) stream. + The format block is an HEAACWAVEFORMAT structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + WAVE_FORMAT_DVM + + + WAVE_FORMAT_VORBIS1 "Og" Original stream compatible + + + WAVE_FORMAT_VORBIS2 "Pg" Have independent header + + + WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header + + + WAVE_FORMAT_VORBIS1P "og" Original stream compatible + + + WAVE_FORMAT_VORBIS2P "pg" Have independent headere + + + WAVE_FORMAT_VORBIS3P "qg" Have no codebook header + + + WAVE_FORMAT_EXTENSIBLE + + + + + + + WaveFormatExtensible + http://www.microsoft.com/whdc/device/audio/multichaud.mspx + + + + + Parameterless constructor for marshalling + + + + + Creates a new WaveFormatExtensible for PCM or IEEE + + + + + WaveFormatExtensible for PCM or floating point can be awkward to work with + This creates a regular WaveFormat structure representing the same audio format + Returns the WaveFormat unchanged for non PCM or IEEE float + + + + + + SubFormat (may be one of AudioMediaSubtypes) + + + + + Serialize + + + + + + String representation + + + + + This class used for marshalling from unmanaged code + + + + + Allows the extra data to be read + + + + + parameterless constructor for marshalling + + + + + Reads this structure from a BinaryReader + + + + + Writes this structure to a BinaryWriter + + + + + The WMA wave format. + May not be much use because WMA codec is a DirectShow DMO not an ACM + + + + + Generic interface for wave recording + + + + + Recording WaveFormat + + + + + Start Recording + + + + + Stop Recording + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + This class writes audio data to a .aif file on disk + + + + + Creates an Aiff file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Aiff File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + AiffFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new AiffFileWriter + + The filename to write to + The Wave Format of the output data + + + + The aiff file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this aiff file + + + + + Returns false: Cannot read from a AiffFileWriter + + + + + Returns true: Can write to a AiffFileWriter + + + + + Returns false: Cannot seek within a AiffFileWriter + + + + + Read is not supported for a AiffFileWriter + + + + + Seek is not supported for a AiffFileWriter + + + + + SetLength is not supported for AiffFileWriter + + + + + + Gets the Position in the AiffFile (i.e. number of bytes written so far) + + + + + Appends bytes to the AiffFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Aiff file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Aiff file + They will be converted to the appropriate bit depth depending on the WaveFormat of the AIF file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Aiff file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this AiffFileWriter + + + + + Raised when ASIO data has been recorded. + It is important to handle this as quickly as possible as it is in the buffer callback + + + + + Initialises a new instance of AsioAudioAvailableEventArgs + + Pointers to the ASIO buffers for each channel + Pointers to the ASIO buffers for each channel + Number of samples in each buffer + Audio format within each buffer + + + + Pointer to a buffer per input channel + + + + + Pointer to a buffer per output channel + Allows you to write directly to the output buffers + If you do so, set SamplesPerBuffer = true, + and make sure all buffers are written to with valid data + + + + + Set to true if you have written to the output buffers + If so, AsioOut will not read from its source + + + + + Number of samples in each buffer + + + + + Converts all the recorded audio into a buffer of 32 bit floating point samples, interleaved by channel + + The samples as 32 bit floating point, interleaved + + + + Audio format within each buffer + Most commonly this will be one of, Int32LSB, Int16LSB, Int24LSB or Float32LSB + + + + + Gets as interleaved samples, allocating a float array + + The samples as 32 bit floating point values + + + + ASIO Out Player. New implementation using an internal C# binding. + + This implementation is only supporting Short16Bit and Float32Bit formats and is optimized + for 2 outputs channels . + SampleRate is supported only if AsioDriver is supporting it + + This implementation is probably the first AsioDriver binding fully implemented in C#! + + Original Contributor: Mark Heath + New Contributor to C# binding : Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Playback Stopped + + + + + When recording, fires whenever recorded audio is available + + + + + Initializes a new instance of the class with the first + available ASIO Driver. + + + + + Initializes a new instance of the class with the driver name. + + Name of the device. + + + + Opens an ASIO output device + + Device number (zero based) + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Dispose + + + + + Gets the names of the installed ASIO Driver. + + an array of driver names + + + + Determines whether ASIO is supported. + + + true if ASIO is supported; otherwise, false. + + + + + Inits the driver from the asio driver name. + + Name of the driver. + + + + Shows the control panel + + + + + Starts playback + + + + + Stops playback + + + + + Pauses playback + + + + + Initialises to play + + Source wave provider + + + + Initialises to play, with optional recording + + Source wave provider - set to null for record only + Number of channels to record + Specify sample rate here if only recording, ignored otherwise + + + + driver buffer update callback to fill the wave buffer. + + The input channels. + The output channels. + + + + Gets the latency (in ms) of the playback driver + + + + + Playback State + + + + + Driver Name + + + + + The number of output channels we are currently using for playback + (Must be less than or equal to DriverOutputChannelCount) + + + + + The number of input channels we are currently recording from + (Must be less than or equal to DriverInputChannelCount) + + + + + The maximum number of input channels this ASIO driver supports + + + + + The maximum number of output channels this ASIO driver supports + + + + + The number of samples per channel, per buffer. + + + + + By default the first channel on the input WaveProvider is sent to the first ASIO output. + This option sends it to the specified channel number. + Warning: make sure you don't set it higher than the number of available output channels - + the number of source channels. + n.b. Future NAudio may modify this + + + + + Input channel offset (used when recording), allowing you to choose to record from just one + specific input rather than them all + + + + + Sets the volume (1.0 is unity gain) + Not supported for ASIO Out. Set the volume on the input stream instead + + + + + Get the input channel name + + channel index (zero based) + channel name + + + + Get the output channel name + + channel index (zero based) + channel name + + + + A wave file writer that adds cue support + + + + + Writes a wave file, including a cues chunk + + + + + Adds a cue to the Wave file + + Sample position + Label text + + + + Updates the header, and writes the cues out + + + + + Media Foundation Encoder class allows you to use Media Foundation to encode an IWaveProvider + to any supported encoding format + + + + + Queries the available bitrates for a given encoding output type, sample rate and number of channels + + Audio subtype - a value from the AudioSubtypes class + The sample rate of the PCM to encode + The number of channels of the PCM to encode + An array of available bitrates in average bits per second + + + + Gets all the available media types for a particular + + Audio subtype - a value from the AudioSubtypes class + An array of available media types that can be encoded with this subtype + + + + Helper function to simplify encoding Window Media Audio + Should be supported on Vista and above (not tested) + + Input provider, must be PCM + Output file path, should end with .wma + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to MP3 + By default, will only be available on Windows 8 and above + + Input provider, must be PCM + Output file path, should end with .mp3 + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to AAC + By default, will only be available on Windows 7 and above + + Input provider, must be PCM + Output file path, should end with .mp4 (or .aac on Windows 8) + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Tries to find the encoding media type with the closest bitrate to that specified + + Audio subtype, a value from AudioSubtypes + Your encoder input format (used to check sample rate and channel count) + Your desired bitrate + The closest media type, or null if none available + + + + Creates a new encoder that encodes to the specified output media type + + Desired output media type + + + + Encodes a file + + Output filename (container type is deduced from the filename) + Input provider (should be PCM, some encoders will also allow IEEE float) + + + + Disposes this instance + + + + + + Disposes this instance + + + + + Finalizer + + + + + Stopped Event Args + + + + + Initializes a new instance of StoppedEventArgs + + An exception to report (null if no exception) + + + + An exception. Will be null if the playback or record operation stopped + + + + + IWaveBuffer interface use to store wave datas. + Data can be manipulated with arrays (,, + , ) that are pointing to the same memory buffer. + This is a requirement for all subclasses. + + Use the associated Count property based on the type of buffer to get the number of data in the + buffer. + + for the standard implementation using C# unions. + + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets the byte buffer count. + + The byte buffer count. + + + + Gets the float buffer count. + + The float buffer count. + + + + Gets the short buffer count. + + The short buffer count. + + + + Gets the int buffer count. + + The int buffer count. + + + + Represents the interface to a device that can play a WaveFile + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + The volume 1.0 is full scale + + + + + Indicates that playback has gone into a stopped state due to + reaching the end of the input stream or an error has been encountered during playback + + + + + Interface for IWavePlayers that can report position + + + + + Position (in terms of bytes played - does not necessarily) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Generic interface for all WaveProviders. + + + + + Gets the WaveFormat of this WaveProvider. + + The wave format. + + + + Fill the specified buffer with wave data. + + The buffer to fill of wave data. + Offset into buffer + The number of bytes to read + the number of bytes written to the buffer. + + + + NativeDirectSoundOut using DirectSound COM interop. + Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr + Modified by: Graham "Gee" Plumb + + + + + Playback Stopped + + + + + Gets the DirectSound output devices in the system + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + (40ms seems to work under Vista). + + The latency. + Selected device + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets the current position from the wave output device. + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + + The volume 1.0 is full scale + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Determines whether the SecondaryBuffer is lost. + + + true if [is buffer lost]; otherwise, false. + + + + + Convert ms to bytes size according to WaveFormat + + The ms + number of byttes + + + + Processes the samples in a separate thread. + + + + + Stop playback + + + + + Feeds the SecondaryBuffer with the WaveStream + + number of bytes to feed + + + + IDirectSound interface + + + + + IDirectSoundBuffer interface + + + + + IDirectSoundNotify interface + + + + + Instanciate DirectSound from the DLL + + The GUID. + The direct sound. + The p unk outer. + + + + DirectSound default playback device GUID + + + + + DirectSound default capture device GUID + + + + + DirectSound default device for voice playback + + + + + DirectSound default device for voice capture + + + + + The DSEnumCallback function is an application-defined callback function that enumerates the DirectSound drivers. + The system calls this function in response to the application's call to the DirectSoundEnumerate or DirectSoundCaptureEnumerate function. + + Address of the GUID that identifies the device being enumerated, or NULL for the primary device. This value can be passed to the DirectSoundCreate8 or DirectSoundCaptureCreate8 function to create a device object for that driver. + Address of a null-terminated string that provides a textual description of the DirectSound device. + Address of a null-terminated string that specifies the module name of the DirectSound driver corresponding to this device. + Address of application-defined data. This is the pointer passed to DirectSoundEnumerate or DirectSoundCaptureEnumerate as the lpContext parameter. + Returns TRUE to continue enumerating drivers, or FALSE to stop. + + + + The DirectSoundEnumerate function enumerates the DirectSound drivers installed in the system. + + callback function + User context + + + + Gets the HANDLE of the desktop window. + + HANDLE of the Desktop window + + + + Class for enumerating DirectSound devices + + + + + The device identifier + + + + + Device description + + + + + Device module name + + + + + Like IWaveProvider, but makes it much simpler to put together a 32 bit floating + point mixing engine + + + + + Gets the WaveFormat of this Sample Provider. + + The wave format. + + + + Fill the specified buffer with 32 bit floating point samples + + The buffer to fill with samples. + Offset into buffer + The number of samples to read + the number of samples written to the buffer. + + + + Playback State + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + Support for playback using Wasapi + + + + + Playback Stopped + + + + + WASAPI Out shared mode, defauult + + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + Desired latency in milliseconds + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Creates a new WASAPI Output + + Device to use + + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Begin Playback + + + + + Stop playback and flush buffers + + + + + Stop playback without flushing buffers + + + + + Initialize for playing the specified wave stream + + IWaveProvider to play + + + + Playback State + + + + + Volume + + + + + Retrieve the AudioStreamVolume object for this audio stream + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Dispose + + + + + WaveBuffer class use to store wave datas. Data can be manipulated with arrays + (,,, ) that are pointing to the + same memory buffer. Use the associated Count property based on the type of buffer to get the number of + data in the buffer. + Implicit casting is now supported to float[], byte[], int[], short[]. + You must not use Length on returned arrays. + + n.b. FieldOffset is 8 now to allow it to work natively on 64 bit + + + + + Number of Bytes + + + + + Initializes a new instance of the class. + + The number of bytes. The size of the final buffer will be aligned on 4 Bytes (upper bound) + + + + Initializes a new instance of the class binded to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Binds this WaveBuffer instance to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets or sets the byte buffer count. + + The byte buffer count. + + + + Gets or sets the float buffer count. + + The float buffer count. + + + + Gets or sets the short buffer count. + + The short buffer count. + + + + Gets or sets the int buffer count. + + The int buffer count. + + + + Clears the associated buffer. + + + + + Copy this WaveBuffer to a destination buffer up to ByteBufferCount bytes. + + + + + Checks the validity of the count parameters. + + Name of the arg. + The value. + The size of value. + + + + Wave Callback Info + + + + + Callback Strategy + + + + + Window Handle (if applicable) + + + + + Sets up a new WaveCallbackInfo for function callbacks + + + + + Sets up a new WaveCallbackInfo to use a New Window + IMPORTANT: only use this on the GUI thread + + + + + Sets up a new WaveCallbackInfo to use an existing window + IMPORTANT: only use this on the GUI thread + + + + + Wave Callback Strategy + + + + + Use a function + + + + + Create a new window (should only be done if on GUI thread) + + + + + Use an existing window handle + + + + + Use an event handle + + + + + This class writes WAV data to a .wav file on disk + + + + + Creates a 16 bit Wave File from an ISampleProvider + BEWARE: the source provider must not return data indefinitely + + The filename to write to + The source sample provider + + + + Creates a Wave file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + Writes to a stream by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The stream the method will output to + The source WaveProvider + + + + WaveFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new WaveFileWriter + + The filename to write to + The Wave Format of the output data + + + + The wave file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this wave file + + + + + Returns false: Cannot read from a WaveFileWriter + + + + + Returns true: Can write to a WaveFileWriter + + + + + Returns false: Cannot seek within a WaveFileWriter + + + + + Read is not supported for a WaveFileWriter + + + + + Seek is not supported for a WaveFileWriter + + + + + SetLength is not supported for WaveFileWriter + + + + + + Gets the Position in the WaveFile (i.e. number of bytes written so far) + + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Wave file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Wave file + They will be converted to the appropriate bit depth depending on the WaveFormat of the WAV file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + Also updates header, so that WAV file will be valid up to the point currently written + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this WaveFileWriter + + + + + Represents a wave out device + + + + + Indicates playback has stopped automatically + + + + + Retrieves the capabilities of a waveOut device + + Device to test + The WaveOut device capabilities + + + + Returns the number of Wave Out devices available in the system + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Creates a default WaveOut device + Will use window callbacks if called from a GUI thread, otherwise function + callbacks + + + + + Creates a WaveOut device using the specified window handle for callbacks + + A valid window handle + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Volume for this device 1.0 is full scale + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Alternative WaveOut class, making use of the Event callback + + + + + Indicates playback has stopped automatically + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Obsolete property + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Provides a buffered store of samples + Read method will return queued samples or fill buffer with zeroes + Now backed by a circular buffer + + + + + Creates a new buffered WaveProvider + + WaveFormat + + + + If true, always read the amount of data requested, padding with zeroes if necessary + By default is set to true + + + + + Buffer length in bytes + + + + + Buffer duration + + + + + If true, when the buffer is full, start throwing away data + if false, AddSamples will throw an exception when buffer is full + + + + + The number of buffered bytes + + + + + Buffered Duration + + + + + Gets the WaveFormat + + + + + Adds samples. Takes a copy of buffer, so that buffer can be reused if necessary + + + + + Reads from this WaveProvider + Will always return count bytes, since we will zero-fill the buffer if not enough available + + + + + Discards all audio from the buffer + + + + + The Media Foundation Resampler Transform + + + + + Creates the Media Foundation Resampler, allowing modifying of sample rate, bit depth and channel count + + Source provider, must be PCM + Output format, must also be PCM + + + + Creates a resampler with a specified target output sample rate + + Source provider + Output sample rate + + + + Creates and configures the actual Resampler transform + + A newly created and configured resampler MFT + + + + Gets or sets the Resampler quality. n.b. set the quality before starting to resample. + 1 is lowest quality (linear interpolation) and 60 is best quality + + + + + Disposes this resampler + + + + + WaveProvider that can mix together multiple 32 bit floating point input provider + All channels must have the same number of inputs and same sample rate + n.b. Work in Progress - not tested yet + + + + + Creates a new MixingWaveProvider32 + + + + + Creates a new 32 bit MixingWaveProvider32 + + inputs - must all have the same format. + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove an input from the mixer + + waveProvider to remove + + + + The number of inputs to this mixer + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing wave provider, allowing re-patching of input channels to different + output channels + + Input wave providers. Must all be of the same format, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads data from this WaveProvider + + Buffer to be filled with sample data + Offset to write to within buffer, usually 0 + Number of bytes required + Number of bytes read + + + + The WaveFormat of this WaveProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Silence producing wave provider + Useful for playing silence when doing a WASAPI Loopback Capture + + + + + Creates a new silence producing wave provider + + Desired WaveFormat (should be PCM / IEE float + + + + Read silence from into the buffer + + + + + WaveFormat of this silence producing wave provider + + + + + Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together + + + + + Creates a new mono waveprovider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels + + + + + Creates a new stereo waveprovider based on a mono input + + Mono 16 bit PCM input + + + + 1.0 to copy the mono stream to the left channel without adjusting volume + + + + + 1.0 to copy the mono stream to the right channel without adjusting volume + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float + + + + + Constructs a new VolumeWaveProvider16 + + Source provider, must be 16 bit PCM + + + + Gets or sets volume. + 1.0 is full scale, 0.0 is silence, anything over 1.0 will amplify but potentially clip + + + + + WaveFormat of this WaveProvider + + + + + Read bytes from this WaveProvider + + Buffer to read into + Offset within buffer to read to + Bytes desired + Bytes read + + + + Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Creates a new WaveFloatTo16Provider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way + + + + + Creates a new Wave16toFloatProvider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Buffered WaveProvider taking source data from WaveIn + + + + + Creates a new WaveInProvider + n.b. Should make sure the WaveFormat is set correctly on IWaveIn before calling + + The source of wave data + + + + Reads data from the WaveInProvider + + + + + The WaveFormat + + + + + Base class for creating a 16 bit wave provider + + + + + Initializes a new instance of the WaveProvider16 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider16 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a short array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Base class for creating a 32 bit floating point wave provider + Can also be used as a base class for an ISampleProvider that can + be plugged straight into anything requiring an IWaveProvider + + + + + Initializes a new instance of the WaveProvider32 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider32 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a float array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Utility class to intercept audio from an IWaveProvider and + save it to disk + + + + + Constructs a new WaveRecorder + + The location to write the WAV file to + The Source Wave Provider + + + + Read simply returns what the source returns, but writes to disk along the way + + + + + The WaveFormat + + + + + Closes the WAV file + + + + A read-only stream of AIFF data based on an aiff file + with an associated WaveFormat + originally contributed to NAudio by Giawa + + + + Supports opening a AIF file + The AIF is of similar nastiness to the WAV format. + This supports basic reading of uncompressed PCM AIF files, + with 8, 16, 24 and 32 bit PCM data. + + + + + Creates an Aiff File Reader based on an input stream + + The input stream containing a AIF file including header + + + + Ensures valid AIFF header and then finds data offset. + + The stream, positioned at the start of audio data + The format found + The position of the data chunk + The length of the data chunk + Additional chunks found + + + + Cleans up the resources associated with this AiffFileReader + + + + + + + + + + + + + + + Number of Samples (if possible to calculate) + + + + + Position in the AIFF file + + + + + + Reads bytes from the AIFF File + + + + + + AIFF Chunk + + + + + Chunk Name + + + + + Chunk Length + + + + + Chunk start + + + + + Creates a new AIFF Chunk + + + + + AudioFileReader simplifies opening an audio file in NAudio + Simply pass in the filename, and it will attempt to open the + file and set up a conversion path that turns into PCM IEEE float. + ACM codecs will be used for conversion. + It provides a volume property and implements both WaveStream and + ISampleProvider, making it possibly the only stage in your audio + pipeline necessary for simple playback scenarios + + + + + Initializes a new instance of AudioFileReader + + The file to open + + + + Creates the reader stream, supporting all filetypes in the core NAudio library, + and ensuring we are in PCM format + + File Name + + + + File Name + + + + + WaveFormat of this stream + + + + + Length of this stream (in bytes) + + + + + Position of this stream (in bytes) + + + + + Reads from this wave stream + + Audio buffer + Offset into buffer + Number of bytes required + Number of bytes read + + + + Reads audio from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Gets or Sets the Volume of this AudioFileReader. 1.0f is full volume + + + + + Helper to convert source to dest bytes + + + + + Helper to convert dest to source bytes + + + + + Disposes this AudioFileReader + + True if called from Dispose + + + + Helper stream that lets us read from compressed audio files with large block alignment + as though we could read any amount and reposition anywhere + + + + + Creates a new BlockAlignReductionStream + + the input stream + + + + Block alignment of this stream + + + + + Wave Format + + + + + Length of this Stream + + + + + Current position within stream + + + + + Disposes this WaveStream + + + + + Reads data from this stream + + + + + + + + + Implementation of Com IStream + + + + + Holds information on a cue: a labeled position within a Wave file + + + + + Cue position in samples + + + + + Label of the cue + + + + + Creates a Cue based on a sample position and label + + + + + + + Holds a list of cues + + + The specs for reading and writing cues from the cue and list RIFF chunks + are from http://www.sonicspot.com/guide/wavefiles.html and http://www.wotsit.org/ + ------------------------------ + The cues are stored like this: + ------------------------------ + struct CuePoint + { + Int32 dwIdentifier; + Int32 dwPosition; + Int32 fccChunk; + Int32 dwChunkStart; + Int32 dwBlockStart; + Int32 dwSampleOffset; + } + + struct CueChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwCuePoints; + CuePoint[] points; + } + ------------------------------ + Labels look like this: + ------------------------------ + struct ListHeader + { + Int32 listID; /* 'list' */ + Int32 chunkSize; /* includes the Type ID below */ + Int32 typeID; /* 'adtl' */ + } + + struct LabelChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwIdentifier; + Char[] dwText; /* Encoded with extended ASCII */ + } LabelChunk; + + + + + Creates an empty cue list + + + + + Adds an item to the list + + Cue + + + + Gets sample positions for the embedded cues + + Array containing the cue positions + + + + Gets labels for the embedded cues + + Array containing the labels + + + + Creates a cue list from the cue RIFF chunk and the list RIFF chunk + + The data contained in the cue chunk + The data contained in the list chunk + + + + Gets the cues as the concatenated cue and list RIFF chunks. + + RIFF chunks containing the cue data + + + + Number of cues + + + + + Accesses the cue at the specified index + + + + + + + Checks if the cue and list chunks exist and if so, creates a cue list + + + + + A wave file reader supporting cue reading + + + + + Loads a wavefile and supports reading cues + + + + + + Cue List (can be null if cues not present) + + + + + An interface for WaveStreams which can report notification of individual samples + + + + + A sample has been detected + + + + + Sample event arguments + + + + + Left sample + + + + + Right sample + + + + + Constructor + + + + + Class for reading any file that Media Foundation can play + Will only work in Windows Vista and above + Automatically converts to PCM + If it is a video file with multiple audio streams, it will pick out the first audio stream + + + + + Allows customisation of this reader class + + + + + Sets up the default settings for MediaFoundationReader + + + + + Allows us to request IEEE float output (n.b. no guarantee this will be accepted) + + + + + If true, the reader object created in the constructor is used in Read + Should only be set to true if you are working entirely on an STA thread, or + entirely with MTA threads. + + + + + If true, the reposition does not happen immediately, but waits until the + next call to read to be processed. + + + + + Default constructor + + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename (can also be a URL e.g. http:// mms:// file://) + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename + Advanced settings + + + + Initializes + + + + + Creates the reader (overridable by ) + + + + + Reads from this wave stream + + Buffer to read into + Offset in buffer + Bytes required + Number of bytes read; 0 indicates end of stream + + + + WaveFormat of this stream (n.b. this is after converting to PCM) + + + + + The bytesRequired of this stream in bytes (n.b may not be accurate) + + + + + Current position within this stream + + + + + Cleans up after finishing with this reader + + true if called from Dispose + + + + WaveFormat has changed + + + + + Class for reading from MP3 files + + + + + The MP3 wave format (n.b. NOT the output format of this stream - see the WaveFormat property) + + + + Supports opening a MP3 file + + + Supports opening a MP3 file + MP3 File name + Factory method to build a frame decompressor + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + Factory method to build a frame decompressor + + + + Function that can create an MP3 Frame decompressor + + A WaveFormat object describing the MP3 file format + An MP3 Frame decompressor + + + + Creates an ACM MP3 Frame decompressor. This is the default with NAudio + + A WaveFormat object based + + + + + Gets the total length of this file in milliseconds. + + + + + ID3v2 tag if present + + + + + ID3v1 tag if present + + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + This is the length in bytes of data available to be read out from the Read method + (i.e. the decompressed MP3 length) + n.b. this may return 0 for files whose length is unknown + + + + + + + + + + + + + + + Reads decompressed PCM data from our MP3 file. + + + + + Xing header if present + + + + + Disposes this WaveStream + + + + + WaveStream that simply passes on data from its source stream + (e.g. a MemoryStream) + + + + + Initialises a new instance of RawSourceWaveStream + + The source stream containing raw audio + The waveformat of the audio in the source stream + + + + Initialises a new instance of RawSourceWaveStream + + The buffer containing raw audio + Offset in the source buffer to read from + Number of bytes to read in the buffer + The waveformat of the audio in the source stream + + + + The WaveFormat of this stream + + + + + The length in bytes of this stream (if supported) + + + + + The current position in this stream + + + + + Reads data from the stream + + + + + Wave Stream for converting between sample rates + + + + + WaveStream to resample using the DMO Resampler + + Input Stream + Desired Output Format + + + + Stream Wave Format + + + + + Stream length in bytes + + + + + Stream position in bytes + + + + + Reads data from input stream + + buffer + offset into buffer + Bytes required + Number of bytes read + + + + Dispose + + True if disposing (not from finalizer) + + + + Holds information about a RIFF file chunk + + + + + Creates a RiffChunk object + + + + + The chunk identifier + + + + + The chunk identifier converted to a string + + + + + The chunk length + + + + + The stream position this chunk is located at + + + + + A simple compressor + + + + + Create a new simple compressor stream + + Source stream + + + + Make-up Gain + + + + + Threshold + + + + + Ratio + + + + + Attack time + + + + + Release time + + + + + Determine whether the stream has the required amount of data. + + Number of bytes of data required from the stream. + Flag indicating whether the required amount of data is avialable. + + + + Turns gain on or off + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Gets the WaveFormat of this stream + + + + + Reads bytes from this stream + + Buffer to read into + Offset in array to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Gets the block alignment for this stream + + + + + MediaFoundationReader supporting reading from a stream + + + + + Constructs a new media foundation reader from a stream + + + + + Creates the reader + + + + + WaveStream that converts 32 bit audio back down to 16 bit, clipping if necessary + + + + + The method reuses the same buffer to prevent + unnecessary allocations. + + + + + Creates a new Wave32To16Stream + + the source stream + + + + Sets the volume for this stream. 1.0f is full scale + + + + + + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + Destination buffer + Offset into destination buffer + + Number of bytes read. + + + + Conversion to 16 bit and clipping + + + + + + + + + + Clip indicator. Can be reset. + + + + + Disposes this WaveStream + + + + + Represents Channel for the WaveMixerStream + 32 bit output and 16 bit input + It's output is always stereo + The input stream can be panned + + + + + Creates a new WaveChannel32 + + the source stream + stream volume (1 is 0dB) + pan control (-1 to 1) + + + + Creates a WaveChannel32 with default settings + + The source stream + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + If true, Read always returns the number of bytes requested + + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Pan of this channel (from -1 to 1) + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Sample + + + + + Raise the sample event (no check for null because it has already been done) + + + + This class supports the reading of WAV files, + providing a repositionable WaveStream that returns the raw data + contained in the WAV file + + + + Supports opening a WAV file + The WAV file format is a real mess, but we will only + support the basic WAV file format which actually covers the vast + majority of WAV files out there. For more WAV file format information + visit www.wotsit.org. If you have a WAV file that can't be read by + this class, email it to the NAudio project and we will probably + fix this reader to support it + + + + + Creates a Wave File Reader based on an input stream + + The input stream containing a WAV file including header + + + + Gets a list of the additional chunks found in this file + + + + + Gets the data for the specified chunk + + + + + Cleans up the resources associated with this WaveFileReader + + + + + + + + + + This is the length of audio data contained in this WAV file, in bytes + (i.e. the byte length of the data chunk, not the length of the WAV file itself) + + + + + + Number of Sample Frames (if possible to calculate) + This currently does not take into account number of channels + Multiply number of channels if you want the total number of samples + + + + + Position in the WAV data chunk. + + + + + + Reads bytes from the Wave File + + + + + + Attempts to read the next sample or group of samples as floating point normalised into the range -1.0f to 1.0f + + An array of samples, 1 for mono, 2 for stereo etc. Null indicates end of file reached + + + + + Attempts to read a sample into a float. n.b. only applicable for uncompressed formats + Will normalise the value read into the range -1.0f to 1.0f if it comes from a PCM encoding + + False if the end of the WAV data chunk was reached + + + + IWaveProvider that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source Provider + + + + Gets the WaveFormat of this stream + + + + + Indicates that a reposition has taken place, and internal buffers should be reset + + + + + Reads bytes from this stream + + Buffer to read into + Offset in buffer to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Disposes this resource + + + + + Finalizer + + + + + WaveStream that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source stream + + + + Creates a stream that can convert to PCM + + The source stream + A PCM stream + + + + Gets or sets the current position in the stream + + + + + Converts source bytes to destination bytes + + + + + Converts destination bytes to source bytes + + + + + Returns the stream length + + + + + Gets the WaveFormat of this stream + + + + + + + Buffer to read into + Offset within buffer to write to + Number of bytes to read + Bytes read + + + + Disposes this stream + + true if the user called this + + + + A buffer of Wave samples + + + + + creates a new wavebuffer + + WaveIn device to write to + Buffer size in bytes + + + + Place this buffer back to record more audio + + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + + Provides access to the actual record buffer (for reading only) + + + + + Indicates whether the Done flag is set on this buffer + + + + + Indicates whether the InQueue flag is set on this buffer + + + + + Number of bytes recorded + + + + + The buffer size in bytes + + + + + WaveStream that can mix together multiple 32 bit input streams + (Normally used with stereo input channels) + All channels must have the same number of inputs + + + + + Creates a new 32 bit WaveMixerStream + + + + + Creates a new 32 bit WaveMixerStream + + An Array of WaveStreams - must all have the same format. + Use WaveChannel is designed for this purpose. + Automatically stop when all inputs have been read + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove a WaveStream from the mixer + + waveStream to remove + + + + The number of inputs to this mixer + + + + + Automatically stop when all inputs have been read + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Length of this Wave Stream (in bytes) + + + + + + Position within this Wave Stream (in bytes) + + + + + + + + + + + Disposes this WaveStream + + + + + Simply shifts the input stream in time, optionally + clipping its start and end. + (n.b. may include looping in the future) + + + + + Creates a new WaveOffsetStream + + the source stream + the time at which we should start reading from the source stream + amount to trim off the front of the source stream + length of time to play from source stream + + + + Creates a WaveOffsetStream with default settings (no offset or pre-delay, + and whole length of source stream) + + The source stream + + + + The length of time before which no audio will be played + + + + + An offset into the source stream from which to start playing + + + + + Length of time to read from the source stream + + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + A buffer of Wave samples for streaming to a Wave Output device + + + + + creates a new wavebuffer + + WaveOut device to write to + Buffer size in bytes + Stream to provide more data + Lock to protect WaveOut API's from being called on >1 thread + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + this is called by the WAVE callback and should be used to refill the buffer + + + + Whether the header's in queue flag is set + + + + + The buffer size in bytes + + + + + Base class for all WaveStream classes. Derives from stream. + + + + + Retrieves the WaveFormat for this stream + + + + + We can read from this stream + + + + + We can seek within this stream + + + + + We can't write to this stream + + + + + Flush does not need to do anything + See + + + + + An alternative way of repositioning. + See + + + + + Sets the length of the WaveStream. Not Supported. + + + + + + Writes to the WaveStream. Not Supported. + + + + + The block alignment for this wavestream. Do not modify the Position + to anything that is not a whole multiple of this value + + + + + Moves forward or backwards the specified number of seconds in the stream + + Number of seconds to move, can be negative + + + + The current position in the stream in Time format + + + + + Total length in real-time of the stream (may be an estimate for compressed files) + + + + + Whether the WaveStream has non-zero sample data at the current position for the + specified count + + Number of bytes to read + + + + Contains the name and CLSID of a DirectX Media Object + + + + + Name + + + + + CLSID + + + + + Initializes a new instance of DmoDescriptor + + + + + DirectX Media Object Enumerator + + + + + Get audio effect names + + Audio effect names + + + + Get audio encoder names + + Audio encoder names + + + + Get audio decoder names + + Audio decoder names + + + + DMO Guids for use with DMOEnum + dmoreg.h + + + + + MediaErr.h + + + + + DMO_PARTIAL_MEDIATYPE + + + + + defined in Medparam.h + + + + + Windows Media Resampler Props + wmcodecdsp.h + + + + + Range is 1 to 60 + + + + + Specifies the channel matrix. + + + + + Attempting to implement the COM IMediaBuffer interface as a .NET object + Not sure what will happen when I pass this to an unmanaged object + + + + + Creates a new Media Buffer + + Maximum length in bytes + + + + Dispose and free memory for buffer + + + + + Finalizer + + + + + Set length of valid data in the buffer + + length + HRESULT + + + + Gets the maximum length of the buffer + + Max length (output parameter) + HRESULT + + + + Gets buffer and / or length + + Pointer to variable into which buffer pointer should be written + Pointer to variable into which valid data length should be written + HRESULT + + + + Length of data in the media buffer + + + + + Loads data into this buffer + + Data to load + Number of bytes to load + + + + Retrieves the data in the output buffer + + buffer to retrieve into + offset within that buffer + + + + Media Object + + + + + Creates a new Media Object + + Media Object COM interface + + + + Number of input streams + + + + + Number of output streams + + + + + Gets the input media type for the specified input stream + + Input stream index + Input type index + DMO Media Type or null if there are no more input types + + + + Gets the DMO Media Output type + + The output stream + Output type index + DMO Media Type or null if no more available + + + + retrieves the media type that was set for an output stream, if any + + Output stream index + DMO Media Type or null if no more available + + + + Enumerates the supported input types + + Input stream index + Enumeration of input types + + + + Enumerates the output types + + Output stream index + Enumeration of supported output types + + + + Querys whether a specified input type is supported + + Input stream index + Media type to check + true if supports + + + + Sets the input type helper method + + Input stream index + Media type + Flags (can be used to test rather than set) + + + + Sets the input type + + Input stream index + Media Type + + + + Sets the input type to the specified Wave format + + Input stream index + Wave format + + + + Requests whether the specified Wave format is supported as an input + + Input stream index + Wave format + true if supported + + + + Helper function to make a DMO Media Type to represent a particular WaveFormat + + + + + Checks if a specified output type is supported + n.b. you may need to set the input type first + + Output stream index + Media type + True if supported + + + + Tests if the specified Wave Format is supported for output + n.b. may need to set the input type first + + Output stream index + Wave format + True if supported + + + + Helper method to call SetOutputType + + + + + Sets the output type + n.b. may need to set the input type first + + Output stream index + Media type to set + + + + Set output type to the specified wave format + n.b. may need to set input type first + + Output stream index + Wave format + + + + Get Input Size Info + + Input Stream Index + Input Size Info + + + + Get Output Size Info + + Output Stream Index + Output Size Info + + + + Process Input + + Input Stream index + Media Buffer + Flags + Timestamp + Duration + + + + Process Output + + Flags + Output buffer count + Output buffers + + + + Gives the DMO a chance to allocate any resources needed for streaming + + + + + Tells the DMO to free any resources needed for streaming + + + + + Gets maximum input latency + + input stream index + Maximum input latency as a ref-time + + + + Flushes all buffered data + + + + + Report a discontinuity on the specified input stream + + Input Stream index + + + + Is this input stream accepting data? + + Input Stream index + true if accepting data + + + + Experimental code, not currently being called + Not sure if it is necessary anyway + + + + + Media Object Size Info + + + + + Minimum Buffer Size, in bytes + + + + + Max Lookahead + + + + + Alignment + + + + + Media Object Size Info + + + + + ToString + + + + + MP_PARAMINFO + + + + + MP_TYPE + + + + + MPT_INT + + + + + MPT_FLOAT + + + + + MPT_BOOL + + + + + MPT_ENUM + + + + + MPT_MAX + + + + + MP_CURVE_TYPE + + + + + uuids.h, ksuuids.h + + + + + implements IMediaObject (DirectX Media Object) + implements IMFTransform (Media Foundation Transform) + On Windows XP, it is always an MM (if present at all) + + + + + Windows Media MP3 Decoder (as a DMO) + WORK IN PROGRESS - DO NOT USE! + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + DMO Input Data Buffer Flags + + + + + None + + + + + DMO_INPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_INPUT_DATA_BUFFERF_TIME + + + + + DMO_INPUT_DATA_BUFFERF_TIMELENGTH + + + + + http://msdn.microsoft.com/en-us/library/aa929922.aspx + DMO_MEDIA_TYPE + + + + + Major type + + + + + Major type name + + + + + Subtype + + + + + Subtype name + + + + + Fixed size samples + + + + + Sample size + + + + + Format type + + + + + Format type name + + + + + Gets the structure as a Wave format (if it is one) + + + + + Sets this object up to point to a wave format + + Wave format structure + + + + DMO Output Data Buffer + + + + + Creates a new DMO Output Data Buffer structure + + Maximum buffer size + + + + Dispose + + + + + Media Buffer + + + + + Length of data in buffer + + + + + Status Flags + + + + + Timestamp + + + + + Duration + + + + + Retrives the data in this buffer + + Buffer to receive data + Offset into buffer + + + + Is more data available + If true, ProcessOuput should be called again + + + + + DMO Output Data Buffer Flags + + + + + None + + + + + DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_OUTPUT_DATA_BUFFERF_TIME + + + + + DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH + + + + + DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE + + + + + DMO Process Output Flags + + + + + None + + + + + DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER + + + + + IMediaBuffer Interface + + + + + Set Length + + Length + HRESULT + + + + Get Max Length + + Max Length + HRESULT + + + + Get Buffer and Length + + Pointer to variable into which to write the Buffer Pointer + Pointer to variable into which to write the Valid Data Length + HRESULT + + + + defined in mediaobj.h + + + + + From wmcodecsdp.h + Implements: + - IMediaObject + - IMFTransform (Media foundation - we will leave this for now as there is loads of MF stuff) + - IPropertyStore + - IWMResamplerProps + Can resample PCM or IEEE + + + + + DMO Resampler + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + Soundfont generator + + + + + Gets the generator type + + + + + Generator amount as an unsigned short + + + + + Generator amount as a signed short + + + + + Low byte amount + + + + + High byte amount + + + + + Instrument + + + + + Sample Header + + + + + + + + + + Generator types + + + + Start address offset + + + End address offset + + + Start loop address offset + + + End loop address offset + + + Start address coarse offset + + + Modulation LFO to pitch + + + Vibrato LFO to pitch + + + Modulation envelope to pitch + + + Initial filter cutoff frequency + + + Initial filter Q + + + Modulation LFO to filter Cutoff frequency + + + Modulation envelope to filter cutoff frequency + + + End address coarse offset + + + Modulation LFO to volume + + + Unused + + + Chorus effects send + + + Reverb effects send + + + Pan + + + Unused + + + Unused + + + Unused + + + Delay modulation LFO + + + Frequency modulation LFO + + + Delay vibrato LFO + + + Frequency vibrato LFO + + + Delay modulation envelope + + + Attack modulation envelope + + + Hold modulation envelope + + + Decay modulation envelope + + + Sustain modulation envelop + + + Release modulation envelope + + + Key number to modulation envelope hold + + + Key number to modulation envelope decay + + + Delay volume envelope + + + Attack volume envelope + + + Hold volume envelope + + + Decay volume envelope + + + Sustain volume envelope + + + Release volume envelope + + + Key number to volume envelope hold + + + Key number to volume envelope decay + + + Instrument + + + Reserved + + + Key range + + + Velocity range + + + Start loop address coarse offset + + + Key number + + + Velocity + + + Initial attenuation + + + Reserved + + + End loop address coarse offset + + + Coarse tune + + + Fine tune + + + Sample ID + + + Sample modes + + + Reserved + + + Scale tuning + + + Exclusive class + + + Overriding root key + + + Unused + + + Unused + + + + A soundfont info chunk + + + + + SoundFont Version + + + + + WaveTable sound engine + + + + + Bank name + + + + + Data ROM + + + + + Creation Date + + + + + Author + + + + + Target Product + + + + + Copyright + + + + + Comments + + + + + Tools + + + + + ROM Version + + + + + + + + + + SoundFont instrument + + + + + instrument name + + + + + Zones + + + + + + + + + + Instrument Builder + + + + + Transform Types + + + + + Linear + + + + + Modulator + + + + + Source Modulation data type + + + + + Destination generator type + + + + + Amount + + + + + Source Modulation Amount Type + + + + + Source Transform Type + + + + + + + + + + Controller Sources + + + + + No Controller + + + + + Note On Velocity + + + + + Note On Key Number + + + + + Poly Pressure + + + + + Channel Pressure + + + + + Pitch Wheel + + + + + Pitch Wheel Sensitivity + + + + + Source Types + + + + + Linear + + + + + Concave + + + + + Convex + + + + + Switch + + + + + Modulator Type + + + + + + + + + + + A SoundFont Preset + + + + + Preset name + + + + + Patch Number + + + + + Bank number + + + + + Zones + + + + + + + + + + Class to read the SoundFont file presets chunk + + + + + The Presets contained in this chunk + + + + + The instruments contained in this chunk + + + + + The sample headers contained in this chunk + + + + + + + + + + just reads a chunk ID at the current position + + chunk ID + + + + reads a chunk at the current position + + + + + creates a new riffchunk from current position checking that we're not + at the end of this chunk first + + the new chunk + + + + useful for chunks that just contain a string + + chunk as string + + + + A SoundFont Sample Header + + + + + The sample name + + + + + Start offset + + + + + End offset + + + + + Start loop point + + + + + End loop point + + + + + Sample Rate + + + + + Original pitch + + + + + Pitch correction + + + + + Sample Link + + + + + SoundFont Sample Link Type + + + + + + + + + + SoundFont sample modes + + + + + No loop + + + + + Loop Continuously + + + + + Reserved no loop + + + + + Loop and continue + + + + + Sample Link Type + + + + + Mono Sample + + + + + Right Sample + + + + + Left Sample + + + + + Linked Sample + + + + + ROM Mono Sample + + + + + ROM Right Sample + + + + + ROM Left Sample + + + + + ROM Linked Sample + + + + + SoundFont Version Structure + + + + + Major Version + + + + + Minor Version + + + + + Builds a SoundFont version + + + + + Reads a SoundFont Version structure + + + + + Writes a SoundFont Version structure + + + + + Gets the length of this structure + + + + + Represents a SoundFont + + + + + Loads a SoundFont from a file + + Filename of the SoundFont + + + + Loads a SoundFont from a stream + + stream + + + + The File Info Chunk + + + + + The Presets + + + + + The Instruments + + + + + The Sample Headers + + + + + The Sample Data + + + + + + + + + + base class for structures that can read themselves + + + + + A SoundFont zone + + + + + + + + + + Modulators for this Zone + + + + + Generators for this Zone + + + + + Summary description for Fader. + + + + + Required designer variable. + + + + + Creates a new Fader control + + + + + Clean up any resources being used. + + + + + + + + + + + + + + + + + + + + + + + + + Minimum value of this fader + + + + + Maximum value of this fader + + + + + Current value of this fader + + + + + Fader orientation + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Pan slider control + + + + + Required designer variable. + + + + + True when pan value changed + + + + + Creates a new PanSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + The current Pan setting + + + + + Control that represents a potentiometer + TODO list: + Optional Log scale + Optional reverse scale + Keyboard control + Optional bitmap mode + Optional complete draw mode + Tooltip support + + + + + Value changed event + + + + + Creates a new pot control + + + + + Minimum Value of the Pot + + + + + Maximum Value of the Pot + + + + + The current value of the pot + + + + + Draws the control + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Handles the mouse up event to allow changing value by dragging + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Implements a rudimentary volume meter + + + + + Basic volume meter + + + + + On Fore Color Changed + + + + + Current Value + + + + + Minimum decibels + + + + + Maximum decibels + + + + + Meter orientation + + + + + Paints the volume meter + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + VolumeSlider control + + + + + Required designer variable. + + + + + Volume changed event + + + + + Creates a new VolumeSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + The volume for this control + + + + + Windows Forms control for painting audio waveforms + + + + + Constructs a new instance of the WaveFormPainter class + + + + + On Resize + + + + + On ForeColor Changed + + + + + + Add Max Value + + + + + + On Paint + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Control for viewing waveforms + + + + + Required designer variable. + + + + + Creates a new WaveViewer control + + + + + sets the associated wavestream + + + + + The zoom level, in samples per pixel + + + + + Start position (currently in bytes) + + + + + Clean up any resources being used. + + + + + + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Boolean mixer control + + + + + Gets the details for this control + + memory pointer + + + + The current value of the control + + + + + Custom Mixer control + + + + + Get the data for this custom control + + pointer to memory to receive data + + + + List text mixer control + + + + + Get the details for this control + + Memory location to read to + + + Represents a Windows mixer device + + + The number of mixer devices available + + + Connects to the specified mixer + The index of the mixer to use. + This should be between zero and NumberOfDevices - 1 + + + The number of destinations this mixer supports + + + The name of this mixer device + + + The manufacturer code for this mixer device + + + The product identifier code for this mixer device + + + Retrieve the specified MixerDestination object + The ID of the destination to use. + Should be between 0 and DestinationCount - 1 + + + + A way to enumerate the destinations + + + + + A way to enumerate all available devices + + + + + Represents a mixer control + + + + + Mixer Handle + + + + + Number of Channels + + + + + Mixer Handle Type + + + + + Gets all the mixer controls + + Mixer Handle + Mixer Line + Mixer Handle Type + + + + + Gets a specified Mixer Control + + Mixer Handle + Line ID + Control ID + Number of Channels + Flags to use (indicates the meaning of mixerHandle) + + + + + Gets the control details + + + + + Gets the control details + + + + + + Mixer control name + + + + + Mixer control type + + + + + Returns true if this is a boolean control + + Control type + + + + Is this a boolean control + + + + + Determines whether a specified mixer control type is a list text control + + + + + True if this is a list text control + + + + + True if this is a signed control + + + + + True if this is an unsigned control + + + + + True if this is a custom control + + + + + String representation for debug purposes + + + + + Mixer control types + + + + Custom + + + Boolean meter + + + Signed meter + + + Peak meter + + + Unsigned meter + + + Boolean + + + On Off + + + Mute + + + Mono + + + Loudness + + + Stereo Enhance + + + Button + + + Decibels + + + Signed + + + Unsigned + + + Percent + + + Slider + + + Pan + + + Q-sound pan + + + Fader + + + Volume + + + Bass + + + Treble + + + Equaliser + + + Single Select + + + Mux + + + Multiple select + + + Mixer + + + Micro time + + + Milli time + + + + Represents a mixer line (source or destination) + + + + + Creates a new mixer destination + + Mixer Handle + Destination Index + Mixer Handle Type + + + + Creates a new Mixer Source For a Specified Source + + Mixer Handle + Destination Index + Source Index + Flag indicating the meaning of mixerHandle + + + + Creates a new Mixer Source + + Wave In Device + + + + Mixer Line Name + + + + + Mixer Line short name + + + + + The line ID + + + + + Component Type + + + + + Mixer destination type description + + + + + Number of channels + + + + + Number of sources + + + + + Number of controls + + + + + Is this destination active + + + + + Is this destination disconnected + + + + + Is this destination a source + + + + + Gets the specified source + + + + + Enumerator for the controls on this Mixer Limne + + + + + Enumerator for the sources on this Mixer Line + + + + + The name of the target output device + + + + + Describes this Mixer Line (for diagnostic purposes) + + + + + Mixer Interop Flags + + + + + MIXER_OBJECTF_HANDLE = 0x80000000; + + + + + MIXER_OBJECTF_MIXER = 0x00000000; + + + + + MIXER_OBJECTF_HMIXER + + + + + MIXER_OBJECTF_WAVEOUT + + + + + MIXER_OBJECTF_HWAVEOUT + + + + + MIXER_OBJECTF_WAVEIN + + + + + MIXER_OBJECTF_HWAVEIN + + + + + MIXER_OBJECTF_MIDIOUT + + + + + MIXER_OBJECTF_HMIDIOUT + + + + + MIXER_OBJECTF_MIDIIN + + + + + MIXER_OBJECTF_HMIDIIN + + + + + MIXER_OBJECTF_AUX + + + + + MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000; + MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000; + + + + + MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001; + MIXER_SETCONTROLDETAILSF_LISTTEXT = 0x00000001; + + + + + MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F; + + + + + MIXER_GETLINECONTROLSF_ALL = 0x00000000; + + + + + MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001; + + + + + MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002; + + + + + MIXER_GETLINEINFOF_DESTINATION = 0x00000000; + + + + + MIXER_GETLINEINFOF_SOURCE = 0x00000001; + + + + + MIXER_GETLINEINFOF_LINEID = 0x00000002; + + + + + MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003; + + + + + MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004; + + + + + MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F; + + + + + Mixer Line Flags + + + + + Audio line is active. An active line indicates that a signal is probably passing + through the line. + + + + + Audio line is disconnected. A disconnected line's associated controls can still be + modified, but the changes have no effect until the line is connected. + + + + + Audio line is an audio source line associated with a single audio destination line. + If this flag is not set, this line is an audio destination line associated with zero + or more audio source lines. + + + + + BOUNDS structure + + + + + dwMinimum / lMinimum / reserved 0 + + + + + dwMaximum / lMaximum / reserved 1 + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + METRICS structure + + + + + cSteps / reserved[0] + + + + + cbCustomData / reserved[1], number of bytes for control details + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + MIXERCONTROL struct + http://msdn.microsoft.com/en-us/library/dd757293%28VS.85%29.aspx + + + + + Mixer Line Component type enumeration + + + + + Audio line is a destination that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_DST_UNDEFINED + + + + + Audio line is a digital destination (for example, digital input to a DAT or CD audio device). + MIXERLINE_COMPONENTTYPE_DST_DIGITAL + + + + + Audio line is a line level destination (for example, line level input from a CD audio device) that will be the final recording source for the analog-to-digital converter (ADC). Because most audio cards for personal computers provide some sort of gain for the recording audio source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_DST_WAVEIN type. + MIXERLINE_COMPONENTTYPE_DST_LINE + + + + + Audio line is a destination used for a monitor. + MIXERLINE_COMPONENTTYPE_DST_MONITOR + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive speakers. This is the typical component type for the audio output of audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_SPEAKERS + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive headphones. Most audio cards use the same audio destination line for speakers and headphones, in which case the mixer device simply uses the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS type. + MIXERLINE_COMPONENTTYPE_DST_HEADPHONES + + + + + Audio line is a destination that will be routed to a telephone line. + MIXERLINE_COMPONENTTYPE_DST_TELEPHONE + + + + + Audio line is a destination that will be the final recording source for the waveform-audio input (ADC). This line typically provides some sort of gain or attenuation. This is the typical component type for the recording line of most audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_WAVEIN + + + + + Audio line is a destination that will be the final recording source for voice input. This component type is exactly like MIXERLINE_COMPONENTTYPE_DST_WAVEIN but is intended specifically for settings used during voice recording/recognition. Support for this line is optional for a mixer device. Many mixer devices provide only MIXERLINE_COMPONENTTYPE_DST_WAVEIN. + MIXERLINE_COMPONENTTYPE_DST_VOICEIN + + + + + Audio line is a source that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED + + + + + Audio line is a digital source (for example, digital output from a DAT or audio CD). + MIXERLINE_COMPONENTTYPE_SRC_DIGITAL + + + + + Audio line is a line-level source (for example, line-level input from an external stereo) that can be used as an optional recording source. Because most audio cards for personal computers provide some sort of gain for the recording source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY type. + MIXERLINE_COMPONENTTYPE_SRC_LINE + + + + + Audio line is a microphone recording source. Most audio cards for personal computers provide at least two types of recording sources: an auxiliary audio line and microphone input. A microphone audio line typically provides some sort of gain. Audio cards that use a single input for use with a microphone or auxiliary audio line should use the MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE component type. + MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE + + + + + Audio line is a source originating from the output of an internal synthesizer. Most audio cards for personal computers provide some sort of MIDI synthesizer (for example, an Adlib®-compatible or OPL/3 FM synthesizer). + MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER + + + + + Audio line is a source originating from the output of an internal audio CD. This component type is provided for audio cards that provide an audio source line intended to be connected to an audio CD (or CD-ROM playing an audio CD). + MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC + + + + + Audio line is a source originating from an incoming telephone line. + MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE + + + + + Audio line is a source originating from personal computer speaker. Several audio cards for personal computers provide the ability to mix what would typically be played on the internal speaker with the output of an audio card. Some audio cards support the ability to use this output as a recording source. + MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER + + + + + Audio line is a source originating from the waveform-audio output digital-to-analog converter (DAC). Most audio cards for personal computers provide this component type as a source to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination. Some cards also allow this source to be routed to the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT + + + + + Audio line is a source originating from the auxiliary audio line. This line type is intended as a source with gain or attenuation that can be routed to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination and/or recorded from the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY + + + + + Audio line is an analog source (for example, analog output from a video-cassette tape). + MIXERLINE_COMPONENTTYPE_SRC_ANALOG + + + + + Represents a signed mixer control + + + + + Gets details for this contrl + + + + + The value of the control + + + + + Minimum value for this control + + + + + Maximum value for this control + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + + Represents an unsigned mixer control + + + + + Gets the details for this control + + + + + The control value + + + + + The control's minimum value + + + + + The control's maximum value + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + Manufacturer codes from mmreg.h + + + + Microsoft Corporation + + + Creative Labs, Inc + + + Media Vision, Inc. + + + Fujitsu Corp. + + + Artisoft, Inc. + + + Turtle Beach, Inc. + + + IBM Corporation + + + Vocaltec LTD. + + + Roland + + + DSP Solutions, Inc. + + + NEC + + + ATI + + + Wang Laboratories, Inc + + + Tandy Corporation + + + Voyetra + + + Antex Electronics Corporation + + + ICL Personal Systems + + + Intel Corporation + + + Advanced Gravis + + + Video Associates Labs, Inc. + + + InterActive Inc + + + Yamaha Corporation of America + + + Everex Systems, Inc + + + Echo Speech Corporation + + + Sierra Semiconductor Corp + + + Computer Aided Technologies + + + APPS Software International + + + DSP Group, Inc + + + microEngineering Labs + + + Computer Friends, Inc. + + + ESS Technology + + + Audio, Inc. + + + Motorola, Inc. + + + Canopus, co., Ltd. + + + Seiko Epson Corporation + + + Truevision + + + Aztech Labs, Inc. + + + Videologic + + + SCALACS + + + Korg Inc. + + + Audio Processing Technology + + + Integrated Circuit Systems, Inc. + + + Iterated Systems, Inc. + + + Metheus + + + Logitech, Inc. + + + Winnov, Inc. + + + NCR Corporation + + + EXAN + + + AST Research Inc. + + + Willow Pond Corporation + + + Sonic Foundry + + + Vitec Multimedia + + + MOSCOM Corporation + + + Silicon Soft, Inc. + + + Supermac + + + Audio Processing Technology + + + Speech Compression + + + Ahead, Inc. + + + Dolby Laboratories + + + OKI + + + AuraVision Corporation + + + Ing C. Olivetti & C., S.p.A. + + + I/O Magic Corporation + + + Matsushita Electric Industrial Co., LTD. + + + Control Resources Limited + + + Xebec Multimedia Solutions Limited + + + New Media Corporation + + + Natural MicroSystems + + + Lyrrus Inc. + + + Compusic + + + OPTi Computers Inc. + + + Adlib Accessories Inc. + + + Compaq Computer Corp. + + + Dialogic Corporation + + + InSoft, Inc. + + + M.P. Technologies, Inc. + + + Weitek + + + Lernout & Hauspie + + + Quanta Computer Inc. + + + Apple Computer, Inc. + + + Digital Equipment Corporation + + + Mark of the Unicorn + + + Workbit Corporation + + + Ositech Communications Inc. + + + miro Computer Products AG + + + Cirrus Logic + + + ISOLUTION B.V. + + + Horizons Technology, Inc + + + Computer Concepts Ltd + + + Voice Technologies Group, Inc. + + + Radius + + + Rockwell International + + + Co. XYZ for testing + + + Opcode Systems + + + Voxware Inc + + + Northern Telecom Limited + + + APICOM + + + Grande Software + + + ADDX + + + Wildcat Canyon Software + + + Rhetorex Inc + + + Brooktree Corporation + + + ENSONIQ Corporation + + + FAST Multimedia AG + + + NVidia Corporation + + + OKSORI Co., Ltd. + + + DiAcoustics, Inc. + + + Gulbransen, Inc. + + + Kay Elemetrics, Inc. + + + Crystal Semiconductor Corporation + + + Splash Studios + + + Quarterdeck Corporation + + + TDK Corporation + + + Digital Audio Labs, Inc. + + + Seer Systems, Inc. + + + PictureTel Corporation + + + AT&T Microelectronics + + + Osprey Technologies, Inc. + + + Mediatrix Peripherals + + + SounDesignS M.C.S. Ltd. + + + A.L. Digital Ltd. + + + Spectrum Signal Processing, Inc. + + + Electronic Courseware Systems, Inc. + + + AMD + + + Core Dynamics + + + CANAM Computers + + + Softsound, Ltd. + + + Norris Communications, Inc. + + + Danka Data Devices + + + EuPhonics + + + Precept Software, Inc. + + + Crystal Net Corporation + + + Chromatic Research, Inc + + + Voice Information Systems, Inc + + + Vienna Systems + + + Connectix Corporation + + + Gadget Labs LLC + + + Frontier Design Group LLC + + + Viona Development GmbH + + + Casio Computer Co., LTD + + + Diamond Multimedia + + + S3 + + + Fraunhofer + + + + Summary description for MmException. + + + + + Creates a new MmException + + The result returned by the Windows API call + The name of the Windows API that failed + + + + Helper function to automatically raise an exception on failure + + The result of the API call + The API function name + + + + Returns the Windows API result + + + + + Windows multimedia error codes from mmsystem.h. + + + + no error, MMSYSERR_NOERROR + + + unspecified error, MMSYSERR_ERROR + + + device ID out of range, MMSYSERR_BADDEVICEID + + + driver failed enable, MMSYSERR_NOTENABLED + + + device already allocated, MMSYSERR_ALLOCATED + + + device handle is invalid, MMSYSERR_INVALHANDLE + + + no device driver present, MMSYSERR_NODRIVER + + + memory allocation error, MMSYSERR_NOMEM + + + function isn't supported, MMSYSERR_NOTSUPPORTED + + + error value out of range, MMSYSERR_BADERRNUM + + + invalid flag passed, MMSYSERR_INVALFLAG + + + invalid parameter passed, MMSYSERR_INVALPARAM + + + handle being used simultaneously on another thread (eg callback),MMSYSERR_HANDLEBUSY + + + specified alias not found, MMSYSERR_INVALIDALIAS + + + bad registry database, MMSYSERR_BADDB + + + registry key not found, MMSYSERR_KEYNOTFOUND + + + registry read error, MMSYSERR_READERROR + + + registry write error, MMSYSERR_WRITEERROR + + + registry delete error, MMSYSERR_DELETEERROR + + + registry value not found, MMSYSERR_VALNOTFOUND + + + driver does not call DriverCallback, MMSYSERR_NODRIVERCB + + + more data to be returned, MMSYSERR_MOREDATA + + + unsupported wave format, WAVERR_BADFORMAT + + + still something playing, WAVERR_STILLPLAYING + + + header not prepared, WAVERR_UNPREPARED + + + device is synchronous, WAVERR_SYNC + + + Conversion not possible (ACMERR_NOTPOSSIBLE) + + + Busy (ACMERR_BUSY) + + + Header Unprepared (ACMERR_UNPREPARED) + + + Cancelled (ACMERR_CANCELED) + + + invalid line (MIXERR_INVALLINE) + + + invalid control (MIXERR_INVALCONTROL) + + + invalid value (MIXERR_INVALVALUE) + + + diff --git a/parseManager/bin/Debug/game/play.dat b/parseManager/bin/Debug/game/play.dat new file mode 100644 index 0000000..edea4d6 --- /dev/null +++ b/parseManager/bin/Debug/game/play.dat @@ -0,0 +1,4 @@ +[PLAYGAME]{ + print("Welcome to my game!") + PAUSE("ENJOY!") +} \ No newline at end of file diff --git a/parseManager/bin/Debug/parseManagerTester.exe.config b/parseManager/bin/Debug/parseManagerTester.exe.config index 970c80b..52737ff 100644 --- a/parseManager/bin/Debug/parseManagerTester.exe.config +++ b/parseManager/bin/Debug/parseManagerTester.exe.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/parseManager/bin/Debug/parsetest2.txt b/parseManager/bin/Debug/parsetest2.txt index 0babc6f..dcf9c34 100644 --- a/parseManager/bin/Debug/parsetest2.txt +++ b/parseManager/bin/Debug/parsetest2.txt @@ -1,29 +1,59 @@ -ENTRY STARTHERE -[STARTHERE]{ +VERSION 1.0 +LOAD game/play.dat +[COUNTER]{ + ::loop:: + sleep(1000) + secs_played=secs_played+1 + if secs_played==60 then GOTO("secs")|SKIP(0) + if mins_played==60 then GOTO("mins")|GOTO("loop") + ::secs:: + secs_played=0 + mins_played=mins_played+1 + GOTO("loop") + ::mins:: + mins_played=0 + hours_played=hours_played+1 + GOTO("loop") +} +[START]{ + secs_played=0 + mins_played=0 + hours_played=0 + newThread("COUNTER") + bgm_song=loadSong("Audio/Collapse.mp3") + snd_select=loadSong("Audio/select.mp3") + playSong(bgm_song) + setFancyForm("left") + LOAD() write("Name: ") name=getInput() clear() if name=="" then SKIP(-4)|SKIP(0) PAUSE("So your name is $name$, thats cool!") pos=1 + sleep(200) + SAVE() ::loop:: clear() + SAVE() setFG(Color_Blue) - fancy("left"," What to do $name$?,/l, Play Game, View Stats, View Credits, Quit Game") + fancy(" What to do $name$? Time plsyed $hours_played$:$mins_played$:$secs_played$,/l, Play Game, View Stats, View Credits, Quit Game") keyUP=isDown("{UP}") keyDOWN=isDown("{DOWN}") - keyENTER=isDown("{RIGHT}") + keyENTER=isDown("{ENTER}") if keyUP==true then setVarPlay("pos",pos-1)|SKIP(0) if keyDOWN==true then setVarPlay("pos",pos+1)|SKIP(0) if keyENTER==true then GOTO("choicemade")|SKIP(0) writeAt("->",1,pos+2) - sleep(75) + sleep(50) GOTO("loop") ::choicemade:: - if pos==1 then print("You Pressed Play!")|SKIP(0) + playSong(snd_select) + sleep(200) + if pos==1 then JUMP("PLAYGAME")|SKIP(0) if pos==2 then print("You Pressed Stats")|SKIP(0) if pos==3 then print("You Pressed Credits")|SKIP(0) - if pos==4 then print("You Pressed Quit")|SKIP(0) + if pos==4 then QUIT()|SKIP(0) PAUSE("Tests done (Press Enter!)") } [PAUSE:function(msg)]{ diff --git a/parseManager/bin/Debug/savedata.dat b/parseManager/bin/Debug/savedata.dat new file mode 100644 index 0000000..fc1f9b9 Binary files /dev/null and b/parseManager/bin/Debug/savedata.dat differ diff --git a/parseManager/bin/Release/CSCore.xml b/parseManager/bin/Release/CSCore.xml deleted file mode 100644 index 0061d63..0000000 --- a/parseManager/bin/Release/CSCore.xml +++ /dev/null @@ -1,25234 +0,0 @@ - - - - CSCore - - - - - Defines and provides methods to convert between -values and -values. - - are used by the , the and the class. - - - WAVE_FORMAT_UNKNOWN, Microsoft Corporation - - - WAVE_FORMAT_PCM Microsoft Corporation - - - WAVE_FORMAT_ADPCM Microsoft Corporation - - - WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation - - - WAVE_FORMAT_VSELP Compaq Computer Corp. - - - WAVE_FORMAT_IBM_CVSD IBM Corporation - - - WAVE_FORMAT_ALAW Microsoft Corporation - - - WAVE_FORMAT_MULAW Microsoft Corporation - - - WAVE_FORMAT_DTS Microsoft Corporation - - - WAVE_FORMAT_DRM Microsoft Corporation - - - WAVE_FORMAT_WMAVOICE9 - - - WAVE_FORMAT_OKI_ADPCM OKI - - - WAVE_FORMAT_DVI_ADPCM Intel Corporation - - - WAVE_FORMAT_IMA_ADPCM Intel Corporation - - - WAVE_FORMAT_MEDIASPACE_ADPCM Videologic - - - WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp - - - WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation - - - WAVE_FORMAT_DIGISTD DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. - - - WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation - - - WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. - - - WAVE_FORMAT_CU_CODEC Hewlett-Packard Company - - - WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America - - - WAVE_FORMAT_SONARC Speech Compression - - - WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc - - - WAVE_FORMAT_ECHOSC1 Echo Speech Corporation - - - WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. - - - WAVE_FORMAT_APTX Audio Processing Technology - - - WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. - - - WAVE_FORMAT_PROSODY_1612, Aculab plc - - - WAVE_FORMAT_LRC, Merging Technologies S.A. - - - WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories - - - WAVE_FORMAT_GSM610, Microsoft Corporation - - - WAVE_FORMAT_MSNAUDIO, Microsoft Corporation - - - WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation - - - WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited - - - WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. - - - WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited - - - WAVE_FORMAT_NMS_VBXADPCM - - - WAVE_FORMAT_CS_IMAADPCM - - - WAVE_FORMAT_ECHOSC3 - - - WAVE_FORMAT_ROCKWELL_ADPCM - - - WAVE_FORMAT_ROCKWELL_DIGITALK - - - WAVE_FORMAT_XEBEC - - - WAVE_FORMAT_G721_ADPCM - - - WAVE_FORMAT_G728_CELP - - - WAVE_FORMAT_MSG723 - - - WAVE_FORMAT_MPEG, Microsoft Corporation - - - WAVE_FORMAT_RT24 - - - WAVE_FORMAT_PAC - - - WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag - - - WAVE_FORMAT_LUCENT_G723 - - - WAVE_FORMAT_CIRRUS - - - WAVE_FORMAT_ESPCM - - - WAVE_FORMAT_VOXWARE - - - WAVE_FORMAT_CANOPUS_ATRAC - - - WAVE_FORMAT_G726_ADPCM - - - WAVE_FORMAT_G722_ADPCM - - - WAVE_FORMAT_DSAT_DISPLAY - - - WAVE_FORMAT_VOXWARE_BYTE_ALIGNED - - - WAVE_FORMAT_VOXWARE_AC8 - - - WAVE_FORMAT_VOXWARE_AC10 - - - WAVE_FORMAT_VOXWARE_AC16 - - - WAVE_FORMAT_VOXWARE_AC20 - - - WAVE_FORMAT_VOXWARE_RT24 - - - WAVE_FORMAT_VOXWARE_RT29 - - - WAVE_FORMAT_VOXWARE_RT29HW - - - WAVE_FORMAT_VOXWARE_VR12 - - - WAVE_FORMAT_VOXWARE_VR18 - - - WAVE_FORMAT_VOXWARE_TQ40 - - - WAVE_FORMAT_SOFTSOUND - - - WAVE_FORMAT_VOXWARE_TQ60 - - - WAVE_FORMAT_MSRT24 - - - WAVE_FORMAT_G729A - - - WAVE_FORMAT_MVI_MVI2 - - - WAVE_FORMAT_DF_G726 - - - WAVE_FORMAT_DF_GSM610 - - - WAVE_FORMAT_ISIAUDIO - - - WAVE_FORMAT_ONLIVE - - - WAVE_FORMAT_SBC24 - - - WAVE_FORMAT_DOLBY_AC3_SPDIF - - - WAVE_FORMAT_MEDIASONIC_G723 - - - WAVE_FORMAT_PROSODY_8KBPS - - - WAVE_FORMAT_ZYXEL_ADPCM - - - WAVE_FORMAT_PHILIPS_LPCBB - - - WAVE_FORMAT_PACKED - - - WAVE_FORMAT_MALDEN_PHONYTALK - - - WAVE_FORMAT_GSM - - - WAVE_FORMAT_G729 - - - WAVE_FORMAT_G723 - - - WAVE_FORMAT_ACELP - - - - WAVE_FORMAT_RAW_AAC1 - - - - WAVE_FORMAT_RHETOREX_ADPCM - - - WAVE_FORMAT_IRAT - - - WAVE_FORMAT_VIVO_G723 - - - WAVE_FORMAT_VIVO_SIREN - - - WAVE_FORMAT_DIGITAL_G723 - - - WAVE_FORMAT_SANYO_LD_ADPCM - - - WAVE_FORMAT_SIPROLAB_ACEPLNET - - - WAVE_FORMAT_SIPROLAB_ACELP4800 - - - WAVE_FORMAT_SIPROLAB_ACELP8V3 - - - WAVE_FORMAT_SIPROLAB_G729 - - - WAVE_FORMAT_SIPROLAB_G729A - - - WAVE_FORMAT_SIPROLAB_KELVIN - - - WAVE_FORMAT_G726ADPCM - - - WAVE_FORMAT_QUALCOMM_PUREVOICE - - - WAVE_FORMAT_QUALCOMM_HALFRATE - - - WAVE_FORMAT_TUBGSM - - - WAVE_FORMAT_MSAUDIO1 - - - - Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation - - - - - Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation - - - - - Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS - - - - - Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) - - - - WAVE_FORMAT_UNISYS_NAP_ADPCM - - - WAVE_FORMAT_UNISYS_NAP_ULAW - - - WAVE_FORMAT_UNISYS_NAP_ALAW - - - WAVE_FORMAT_UNISYS_NAP_16K - - - WAVE_FORMAT_CREATIVE_ADPCM - - - WAVE_FORMAT_CREATIVE_FASTSPEECH8 - - - WAVE_FORMAT_CREATIVE_FASTSPEECH10 - - - WAVE_FORMAT_UHER_ADPCM - - - WAVE_FORMAT_QUARTERDECK - - - WAVE_FORMAT_ILINK_VC - - - WAVE_FORMAT_RAW_SPORT - - - WAVE_FORMAT_ESST_AC3 - - - WAVE_FORMAT_IPI_HSX - - - WAVE_FORMAT_IPI_RPELP - - - WAVE_FORMAT_CS2 - - - WAVE_FORMAT_SONY_SCX - - - WAVE_FORMAT_FM_TOWNS_SND - - - WAVE_FORMAT_BTV_DIGITAL - - - WAVE_FORMAT_QDESIGN_MUSIC - - - WAVE_FORMAT_VME_VMPCM - - - WAVE_FORMAT_TPC - - - WAVE_FORMAT_OLIGSM - - - WAVE_FORMAT_OLIADPCM - - - WAVE_FORMAT_OLICELP - - - WAVE_FORMAT_OLISBC - - - WAVE_FORMAT_OLIOPR - - - WAVE_FORMAT_LH_CODEC - - - WAVE_FORMAT_NORRIS - - - WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS - - - - Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx - - - MPEG_RAW_AAC - Source wmCodec.h - - - - MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. - See . - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral SBR or PS tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - - - NOKIA_MPEG_ADTS_AAC - Source wmCodec.h - - - NOKIA_MPEG_RAW_AAC - Source wmCodec.h - - - VODAFONE_MPEG_ADTS_AAC - Source wmCodec.h - - - VODAFONE_MPEG_RAW_AAC - Source wmCodec.h - - - - High-Efficiency Advanced Audio Coding (HE-AAC) stream. - The format block is an HEAACWAVEFORMAT structure. See . - - - - WAVE_FORMAT_DVM - - - WAVE_FORMAT_VORBIS1 "Og" Original stream compatible - - - WAVE_FORMAT_VORBIS2 "Pg" Have independent header - - - WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header - - - WAVE_FORMAT_VORBIS1P "og" Original stream compatible - - - WAVE_FORMAT_VORBIS2P "pg" Have independent headere - - - WAVE_FORMAT_VORBIS3P "qg" Have no codebook header - - - - Raw AAC1 - - - - - Windows Media Audio Voice (WMA Voice) - - - - Extensible - - - WAVE_FORMAT_DEVELOPMENT - - - - FLAC - - - - - Converts a -value to a -value. - - The -value to convert to the equivalent -value. - The which belongs to the specified . - - - - Converts a value to a -value. - - The to convert to the equivalent -value. - The -value which belongs to the specified . - - - - The Major Type for Audio media types. - - - - - Channelmask used by . For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/dd757714(v=vs.85).aspx - - - - - Front left speaker. - - - - - Front right speaker. - - - - - Front center speaker. - - - - - Low frequency speaker. - - - - - Back left speaker. - - - - - Back right speaker. - - - - - Front left of center speaker. - - - - - Front right of center speaker. - - - - - Back center speaker. - - - - - Side left speaker. - - - - - Side right speaker. - - - - - Top center speaker. - - - - - Top front left speaker. - - - - - Top front center speaker. - - - - - Top front right speaker. - - - - - Top back left speaker. - - - - - Top back center speaker. - - - - - Top back right speaker. - - - - - Defines common channelmasks. - - - - - Mono. - - - - - Stereo. - - - - - 5.1 surround with rear speakers. - - - - - 5.1 surround with side speakers. - - - - - 7.1 surround. - - - - - Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream. - is the default setting. - For more information, see . - - - - - None/Invalid - - - - - AACProfile_L2_0x29 - Default value - - - - - AACProfile_L4_0x2A - - - - - AACProfile_L5_0x2B - - - - - HighEfficiencyAACProfile_L2_0x2C - - - - - HighEfficiencyAACProfile_L3_0x2D - - - - - HighEfficiencyAACProfile_L4_0x2E - - - - - HighEfficiencyAACProfile_L5_0x2F - - - - - ReservedForIsoUse_0x30 - - - - - ReservedForIsoUse_0x31 - - - - - ReservedForIsoUse_0x32 - - - - - ReservedForIsoUse_0x33 - - - - - Provides an encoder for encoding raw waveform-audio data to the AAC (Advanced Audio Codec) format. - - - - - Initializes a new instance of the class. - - of the audio data which gets encoded. - which should be used to save the encoded data in. - - - - Initializes a new instance of the class. - - of the audio data which gets encoded. - which should be used to save the encoded data in. - Default samplerate. Use 192000 as the default value. - Guid of the container type. Use as the default container. - - - - Gets or sets the audio profile and level of an Advanced Audio Coding (AAC) stream. - - - This attribute contains the value of the audioProfileLevelIndication field, as defined by ISO/IEC 14496-3. - - - - - Mediafoundation AAC decoder. - - - - - Gets a value which indicates whether the Mediafoundation AAC decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides AAC data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains AAC data. - - - - Decodes an aiff-chunk and provides its stored data. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - The chunk identifier. - - binaryReader - or - chunkId - - - - - Gets the underlying binary reader. - - Care endianness. - - - - Gets the ChunkId of the . The is used to determine the type of the - . - - - - - Gets the size of the in bytes. The and the - (4 bytes each) are not included. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides all s of a aiff stream. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - - FORM header not found. - or - Invalid Formtype. - - - - - Gets the form type. - - - Either 'AIFF' or 'AIFC'. - - - - - Gets all found of the . - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Represents errors that occur when decoding or encoding Aiff-streams/files. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The that caused the . - - - - Initializes a new instance of the class. - - - The that holds the serialized object - data about the exception being thrown. - - - The that contains contextual - information about the source or destination. - - - - - Decodes a aiff stream/file. - - - - - Initializes a new instance of the class for the specified . - - The complete file path to be decoded. - - No COMM Chunk found. - or - No SSND Chunk found. - or - Format not supported. - - - - - Initializes a new instance of the class for the specified . - - The stream to be decoded. - stream - - Stream is not readable.;stream - or - Stream is not seekable.;stream - - - No COMM Chunk found. - or - No SSND Chunk found. - or - Format not supported. - - - - - Gets the found s of the aiff stream/file. - - - - - Reads a sequence of elements from the and advances the position within the stream by - the number of elements read. - - - An array of elements. When this method returns, the contains the - specified array of elements with the values between and ( - + - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - - The total number of elements read into the buffer. - - buffer - - offset - or - count - - The sum of offset and count is larger than the buffer length. - Unexpected error. Not supported bps. - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position in bytes. - - The value is less than zero or greater than . - - - - Gets the length of the audio data in bytes. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources. - - - true to release both managed and unmanaged resources; false to release only - unmanaged resources. - - - - - Finalizes an instance of the class. - - - - - Provides the format of the encoded audio data of a AIFF-file. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - Compression type not supported. - - - - Gets the number of channels. - - - - - Gets the total number of sample frames. - - - To get the total number of samples multiply by - . - - - - - Gets the number of bits per sample. - - - - - Gets the sample rate in Hz. - - - - - Gets the compression type. - - All compression types except PCM are currently not supported. - - - - Gets the wave format. - - The wave format. - - This method does not take care about multi channel formats. It won't setup a channel mask. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides the format version of the aifc file. - - - - - Defines Aiff-Versions. - - - - - Version 1. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - Invalid AIFF-C Version. - - - - Gets the version of the aifc file. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Provides the encoded audio data of an aiff stream. - - - - - Initializes a new instance of the class. - - The binary reader which provides can be used to decode the chunk. - - - - Gets the offset. The offset determines where the first sample frame in the starts. - - Offset in bytes. - - - - Gets the block size. It specifies the size in bytes of the blocks that sound data is aligned to. - - - - - Gets the zero based position in the stream, at which the encoded audio data starts. - - - - - Seeks to the end of the chunk. - - - Can be used to make sure that the underlying / points to - the next . - - - - - Represents an entry of the class which provides information about a codec. - - - - - Gets the which initializes a codec decoder based on a . - - - - - Gets all with the codec associated file extensions. - - - - - Initializes a new instance of the class. - - Delegate which initializes a codec decoder based on a . - All which the codec associated file extensions. - - - - Provides data for all events which notify the client that a connection got established. For example the event. - - - - - Gets the uri of the connection. - - - - - Gets a value indicating whether the connection got established successfully or not. true if the connection got established successfully, otherwise false. - - - - - Initializes a new instance of the class. - - The uri of the connection. - A value indicating whether the connection got established successfully or not. true if the connection got established successfully, otherwise false. - - - - Mediafoundation DDP decoder. - - - - - Gets a value which indicates whether the Mediafoundation DDP decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides DDP data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains DDP data. - - - - Helps to choose the right decoder for different codecs. - - - - - Gets the default singleton instance of the class. - - - - - Gets the file filter in English. This filter can be used e.g. in combination with an OpenFileDialog. - - - - - Registers a new codec. - - - The key which gets used internally to save the in a - . This is typically the associated file extension. For example: the mp3 codec - uses the string "mp3" as its key. - - which provides information about the codec. - - - - Returns a fully initialized instance which is able to decode the specified file. If the - specified file can not be decoded, this method throws an . - - Filename of the specified file. - Fully initialized instance which is able to decode the specified file. - The codec of the specified file is not supported. - - - - Returns a fully initialized instance which is able to decode the audio source behind the - specified . - If the specified audio source can not be decoded, this method throws an . - - Uri which points to an audio source. - Fully initialized instance which is able to decode the specified audio source. - The codec of the specified audio source is not supported. - - - - Returns all the common file extensions of all supported codecs. Note that some of these file extensions belong to - more than one codec. - That means that it can be possible that some files with the file extension abc can be decoded but other a few files - with the file extension abc can't be decoded. - - Supported file extensions. - - - - Defines the channel assignments. - - - - - Independent assignment. - - - - - Left/side stereo. Channel 0 becomes the left channel while channel 1 becomes the side channel. - - - - - Right/side stereo. Channel 0 becomes the right channel while channel 1 becomes the side channel. - - - - - Mid/side stereo. Channel 0 becomes the mid channel while channel 1 becomes the side channel. - - - - - FLAC Exception. - - - - - Gets the layer of the flac stream the exception got thrown. - - Used for debugging purposes. - - - - Initializes a new instance of the class. - - A message which describes the error. - The layer of the flac stream the exception got thrown. - - - - Initializes a new instance of the class. - - The InnerException which caused the error. - The layer.The layer of the flac stream the exception got thrown. - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - When overridden in a derived class, sets the with information about the exception. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - - - - - - Represents a frame inside of an Flac-Stream. - - - - - Gets the header of the flac frame. - - - - - Gets the CRC16-checksum. - - - - - Gets a value indicating whether the decoder has encountered an error with this frame. - - - true if this frame contains an error; otherwise, false. - - - - - Creates a new instance of the class based on the specified . - - The stream which contains the flac frame. - A new instance of the class. - - - - Creates a new instance of the class based on the specified and some basic stream information. - - The stream which contains the flac frame. - Some basic information about the flac stream. - A new instance of the class. - - - - Tries to read the next flac frame inside of the specified stream and returns a value which indicates whether the next flac frame could be successfully read. - - True if the next flac frame could be successfully read; false if not. - - - - Gets the raw pcm data of the flac frame. - - The buffer which should be used to store the data in. This value can be null. - The number of read bytes. - - - - Disposes the and releases all associated resources. - - - - - Finalizes an instance of the class. - - - - - Provides a decoder for decoding flac (Free Lostless Audio Codec) data. - - - - - Gets a list with all found metadata fields. - - - - - Gets the output of the decoder. - - - - - Gets a value which indicates whether the seeking is supported. True means that seeking is supported; False means - that seeking is not supported. - - - - - Initializes a new instance of the class. - - Filename which of a flac file which should be decoded. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - Scan mode which defines how to scan the flac data for frames. - - - - Initializes a new instance of the class. - - Stream which contains flac data which should be decoded. - Scan mode which defines how to scan the flac data for frames. - - Callback which gets called when the pre scan processes finished. Should be used if the - argument is set the . - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Disposes the instance and disposes the underlying stream. - - - - - Disposes the instance and disposes the underlying stream. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Represents the header of a . - - - - - Gets number of samples, the frame contains. - - - The number of samples, the frame contains. - - - - - Gets the sample rate in Hz. - - - The sample rate in Hz. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the channel assignment. - - - The channel assignment. - - - - - Gets the bits per sample. - - - The bits per sample. - - - - - Gets a value which indicates whether the frame provides the or the . - - - A value which indicates whether the frame provides the or the . - - - - - Gets the frame's starting sample number. - - - The frame's starting sample number. - - Only available if the is set to . - - - - Gets the frame's number. - - - The frame's number. - - Only available if the is set to . - - - - Gets the 8-bit crc checksum of the frame header. - - - The 8-bit crc checksum of the frame header. - - - - - Gets a value indicating whether this instance has error. - - - true if this instance has error; otherwise, false. - - - - - Gets the stream position. - - - The stream position. - - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - - - - Initializes a new instance of the class. - - The underlying stream which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - A value which indicates whether the crc8 checksum of the should be calculated. - - - - Initializes a new instance of the class. - - The raw byte-data which contains the . - The stream-info-metadata-block of the flac stream which provides some basic information about the flac framestream. Can be set to null. - A value which indicates whether the crc8 checksum of the should be calculated. - - - - Indicates whether the format of the current is equal to the format of another . - - A which provides the format to compare with the format of the current . - true if the format of the current is equal to the format of the . - - - - Provides some basic information about a flac frame. This structure is typically used for implementing a seeking algorithm. - - - - - Gets the header of the flac frame. - - - - - Gets a value which indicates whether the described frame is the first frame of the flac stream. True means that the described frame is the first frame of the flac stream. False means that the described frame is not the first frame of the flac stream. - - - - - Gets the offset in bytes at which the frame starts in the flac stream (including the header of the frame). - - - - - Gets the number samples which are contained by other frames before this frame occurs. - - - - - Splits a flac file into a few basic layers and defines them. Mainly used for debugging purposes. - - - - - Everything which is not part of a flac frame. - - For example the "fLaC" sync code. - - - - Everything metadata related. - - - - - Everything which is part of a frame but not part of its subframes. - - - - - Everything subframe related. - - - - - Defines the blocking strategy of the a flac frame. - - - - - The of flac frames is variable. - - - - - Each flac frame uses the same . - - - - - Provides data for a FlacPreScan. - - - - - Gets the a list of found frames by the scan. - - - - - Initializes a new instance of the class. - - Found frames. - - - - Defines how to scan a flac stream. - - - - - Don't scan the flac stream. This will cause a stream to be not seekable. - - - - - Scan synchronously. - - - - - Scan async. - - - Don't use the stream while scan is running because the stream position - will change while scanning. If you playback the stream, it will cause an error! - - - - - Default value. - - - - - Represents a flac metadata block. - - - - - Reads and returns a single from the specified . - - The stream which contains the . - Returns the read . - - - - Reads all from the specified . - - The stream which contains the . - All . - - - - Skips all of the specified . - - The stream which contains the . - - - - Initializes a new instance of the class. - - The type of the metadata. - A value which indicates whether this is the last block inside of the stream. true means that this is the last block inside of the stream. - The length of block inside of the stream in bytes. Does not include the metadata header. - - - - Gets the type of the . - - - - - Gets a value indicating whether this instance is the last block. - - - - - Gets the length of the block inside of the stream in bytes. - - The length does not include the metadata header. - - - - Represents a flac seektable. - - - - - Initializes a new instance of the class. - - The stream which contains the seektable. - The length of the seektable inside of the stream in bytes. Does not include the metadata header. - A value which indicates whether this is the last block inside of the stream. true means that this is the last block inside of the stream. - - - - Gets the number of entries, the seektable offers. - - - - - Gets the seek points. - - - - - Gets the at the specified . - - - The . - - The index. - The at the specified . - - - - Represents the streaminfo metadata flac which provides general information about the flac stream. - - - - - Initializes a new instance of the class. - - The stream which contains the . - The length of the inside of the stream in bytes. Does not include the metadata header. - - A value which indicates whether this is the last block inside of - the stream. true means that this is the last block inside of the stream. - - - - - Gets the minimum size of the block in samples. - - - The minimum size of the block in samples. - - - - - Gets the maximum size of the block in samples. - - - The maximum size of the block in samples. - - - - - Gets the maximum size of the frame in bytes. - - - The maximum size of the frame in bytes. - - - - - Gets the minimum size of the frame in bytes. - - - The minimum size of the frame in bytes. - - - - - Gets the sample rate in Hz. - - - The sample rate. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the number of bits per sample. - - - The number of bits per sample. - - - - - Gets the total number of samples inside of the stream. - - - - - Gets MD5 signature of the unencoded audio data. - - - The MD5 signature of the unencoded audio data. - - - - - This method is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Defines flac metadata types. - - - - - Streaminfo metadata. - - - - - Padding metadata. - - - - - Application metadata. - - - - - Seektable metadata. - - - - - Vorbis comment metadata. - - - - - Cue sheet metadata. - - - - - Picture metadata. - - - - - Undefined metadata. Used for custom metadata fields. - - - - - Represents a single flac seek point. - - - - - The sample number for a placeholder point. - - - - - Gets the sample number of the first sample in the target frame, or for a placeholder point. - - - The sample number of the first sample in the target frame. - - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Gets the offset (in bytes) from the first byte of the first frame header to the first byte of the target frame's header. - - - The offset (in bytes) from the first byte of the first frame header to the first byte of the target frame's header. - "/> - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Gets the number of samples in the target frame. - - - The number of samples in the target frame. - - According to https://xiph.org/flac/format.html#metadata_block_seektable. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The of the target frame. - The of the target frame. - The of the target frame. - - - - Copied from http://stackoverflow.com/questions/8970101/whats-the-quickest-way-to-compute-log2-of-an-integer-in-c 14.01.2015 - - - - - This method is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Delegate which initializes a new decoder for a specific codec based on a . - - which contains the data that should be decoded by the codec decoder. - Decoder for a specific coded based on a . - - - - Mediafoundation MP1 decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP1 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP1 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP1 data. - - - - Mediafoundation MP2 decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP2 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP2 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP2 data. - - - - DirectX Media Object MP3 Decoder wrapper. - - - - - Initializes a new instance of the class. - - File which contains raw MP3 data. - - - - Initializes a new instance of the class. - - Stream which contains raw MP3 data. - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Reads a sequence of bytes from the stream. - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Returns a to decode the mp3 data. - - Format of the mp3 data to decode. - Output format. - to decode the mp3 data. - - - - Returns the input format. - - Input format. - - - - Returns the output format. - - Output format. - - - - Gets raw mp3 data to decode. - - Byte array which will hold the raw mp3 data to decode. - Number of requested bytes. - Total amount of read bytes. - - - - Disposes the . - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Channelmode of MP3 data. For more information see the mp3 specification. - - - - - Stereo (left and right). - - - - - Joint stereo. - - - - - Dual channel. - - - - - Mono (only one channel). - - - - - The class describes an MPEG Audio Layer-3 (MP3) audio format. - - - - - Set this member to . - - - - - Indicates whether padding is used to adjust the average bitrate to the sampling rate. - - - - - Block size in bytes. This value equals the frame length in bytes x . For MP3 audio, the frame length is calculated as follows: 144 x (bitrate / sample rate) + padding. - - - - - Number of audio frames per block. - - - - - Encoder delay in samples. If you do not know this value, set this structure member to zero. - - - - - MPEGLAYER3_WFX_EXTRA_BYTES - - - - - Initializes a new instance of the class. - - Sample rate in Hz. - Number of channels. - Block size in bytes. This value equals the frame length in bytes x . For MP3 audio, the frame length is calculated as follows: 144 x (bitrate / sample rate) + padding. - Bitrate. - - - - Updates the - and the -property. - - - - - MP3 Format id. - - - - - None - - - - - Default value. Equals the MPEGLAYER3_ID_MPEG constant. - - - - - Constant frame size. - - - - - Represents an MP3 Frame. - - - - - Maximum length of one single in bytes. - - - - - Creates a new instance of the class based on a . - - which provides MP3 data. - A new instance of the class based on the specified . - - - - Creates a new instance of the class based on a . - - which provides MP3 data. - Byte array which recieves the content of the . - A new instance of the class based on the specified . - - - - Reads data from the . - - Buffer which will receive the read data. - Zero-based index at which to begin storing data within the . - The number of read bytes. - - - - Gets the Mpeg Version. - - - - - Gets the Mpeg Layer. - - - - - Gets the bit rate. - - - - - Gets the sample rate. - - - - - Gets the channel mode. - - - - - Gets the number of channels. - - - - - Gets the number of samples - - - - - Gets the length of the frame. - - - - - Gets the channel extension. - - - - - Gets a value which indicates whether the copyright flag is set (true means that the copyright flag is set). - - - - - Gets a value which indicates whether the original flag is set (true means that the original flag is set). - - - - - Gets the emphasis. - - - - - Gets the padding. - - - - - Gets a value which indicates whether the crc flag is set (true means that the crc flag is set). - - - - - MP3 Mediafoundation Decoder. - - - - - Gets a value which indicates whether the Mediafoundation MP3 decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides MP3 data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains MP3 data. - - - - Indicates whether padding is used to adjust the average bitrate to the sampling rate. Use one of the following values: - - - - - Insert padding as needed to achieve the stated average bitrate. - - - - - Always insert padding. The average bit rate may be higher than stated. - - - - - Never insert padding. The average bit rate may be lower than stated. - - - - - An implementation for streaming mp3 streams like mp3 radio stations, etc. - - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - If set to true, the connection will be established asynchronously and the constructor will return immediately. - Doing that, requires the usage of the event which will notify the caller when the - is ready for use. If set to false the constructor will block the current thread as long as it takes to establish the connection. - - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - - - - Initializes a new instance of the class. - - The address of the mp3 stream. - If set to true, the connection will be established asynchronously and the constructor will return immediately. - Doing that, requires the usage of the event which will notify the caller when the - is ready for use. If set to false the constructor will block the current thread as long as it takes to establish the connection. - - - - - Gets the stream address. - - - - - Gets the number buffered bytes. - - - - - Gets the size of the internal buffer in bytes. - - - - - Gets a value indicating whether the supports seeking. - - This property will always be set to false. - - - - Gets the of the decoded mp3 stream. - If the internal decoder got not initialized yet, the value of the property is set to null. - - - - - Reads a sequence of elements from the and advances the position within the stream by the number of elements read. - - An array of elements. When this method returns, the contains the specified array of elements with the values between and ( + - 1) replaced by the elements read from the current source. - The zero-based offset in the at which to begin storing the data read from the current stream. - The maximum number of elements to read from the current source. - - The total number of elements read into the buffer. - - Mp3WebStream - - - - Gets or sets the current position. This property is not supported by the class. - - The Mp3WebStream class does not support seeking. - - - - Gets the length of the waveform-audio data. The value of this property will always be set to zero. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Occurs when connection got established and the async argument of the constructor was set to true. - - - - - Initializes the connection. - - true if the connection was initialized successfully; otherwise false. - - Could not create HttpWebRequest - or - Could not create WebResponse - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Defines all known Mpeg-layers. - - - - - Reserved by ISO. - - - - - MPEG Layer 3 - - - - - MPEG Layer 2 - - - - - MPEG Layer 1 - - - - - Defines all known Mpeg Versions. - - - - - Version 2.5 - - - - - Reserved by ISO - - - - - Version 2.0 - - - - - Version 1.0 - - - - - Defines a Xing-Header. - - - - - Gets the header flags of the . - - - - - Gets the of a . If the does not has an the return value will be null. - - which should get checked whether it contains a . - of the specified or null. - - - - Defines the header flags of a xing header. - - - - - Frames field is present - - - - - Bytes field is present. - - - - - TOC field is present. - - - - - Quality indicator field is present. - - - - - Mediafoundation WMA decoder. - - - - - Gets a value which indicates whether the Mediafoundation WMA, WMA-Speech and WMA-Professional decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA-Speech decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA-Professional decoder is supported on the current platform. - - - - - Gets a value which indicates whether the Mediafoundation WMA decoder is supported on the current platform. - - - - - Initializes a new instance of the class. - - Url which points to a data source which provides WMA data. This is typically a filename. - - - - Initializes a new instance of the class. - - Stream which contains WMA data. - - - - Implementation of the interface which reads raw data from a based - on a specified . - - - - - Initializes a new instance of the class. - - which contains raw waveform-audio data. - The format of the waveform-audio data within the . - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the format of the raw data. - - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Disposes the and the underlying . - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Represents the of a wave file. - - - - - Chunk ID of the . - - - - - Initializes a new instance of the class. - - which contains the data chunk. - - - - Initializes a new instance of the class. - - which should be used to read the data chunk. - - - - Gets the zero-based position inside of the stream at which the audio data starts. - - - - - Represents the of a wave file. - - - - - Chunk ID of the . - - - - - Initializes a new instance of the class. - - which contains the fmt chunk. - - - - Initializes a new instance of the class. - - which should be used to read the fmt chunk. - - - - Gets the specified by the . - - - - - Represents a wave file chunk. For more information see - . - - - - - Initializes a new instance of the class. - - which contains the wave file chunk. - - - - Initializes a new instance of the class. - - which should be used to read the wave file chunk. - - - - Gets the unique ID of the Chunk. Each type of chunk has its own id. - - - - - Gets the data size of the chunk. - - - - - Parses the and returns a . Note that the position of the - stream has to point to a wave file chunk. - - which points to a wave file chunk. - - Instance of the class or any derived classes. It the stream does not point to a - wave file chunk the instance of the which gets return will be invalid. - - - - - Provides a decoder for reading wave files. - - - - - Initializes a new instance of the class. - - Filename which points to a wave file. - - - - Initializes a new instance of the class. - - Stream which contains wave file data. - - - - Gets a list of all found chunks. - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the wave format of the wave file. This property gets specified by the . - - - - - Gets or sets the position of the in bytes. - - - - - Gets the length of the in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the and the underlying stream. - - - - - Disposes the and the underlying stream. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Encoder for wave files. - - - - - Signals if the object has already been disposed - - - - - Signals if the object is in a disposing state - - - - - Initializes a new instance of the class. - - Filename of the destination file. This filename should typically end with the .wav extension. - - Format of the waveform-audio data. Note that the won't convert any - data. - - - - - Initializes a new instance of the class. - - Destination stream which should be used to store the - - Format of the waveform-audio data. Note that the won't convert any - data. - - - - - Disposes the and writes down the wave header. - - - - - Writes down all audio data of the to a file. - - The filename. - The source to write down to the file. - if set to true the file will be overritten if it already exists. - The maximum number of bytes to write. Use -1 to write an infinte number of bytes. - - This method is obsolete. Use the extension instead. - - - - - Encodes a single sample. - - The sample to encode. - - - - Encodes multiple samples. - - Float array which contains the samples to encode. - Zero-based offset in the array. - Number of samples to encode. - - - - Encodes raw data in the form of a byte array. - - Byte array which contains the data to encode. - Zero-based offset in the . - Number of bytes to encode. - - - - Writes down a single byte. - - Byte to write down. - - - - Writes down a single 16 bit integer value. - - Value to write down. - - - - Writes down a single 32 bit integer value. - - Value to write down. - - - - Writes down a single 32 bit float value. - - Value to write down. - - - - Disposes the and writes down the wave header. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor of the which calls the method. - - - - - Enables a client to read input data from a capture endpoint buffer. For more information, see - . - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioCaptureClient COM object. - - - - Gets the size of the next packet in frames (the size of one frame equals the blockalign value of the waveformat). - - - - - Creates a new by calling the method of the - specified . - - - The which should be used to create the -instance - with. - - A new instance of the class. - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - A pointer variable into which the method writes the starting address of the next data - packet that is available for the client to read. - - - Variable into which the method writes the frame count (the number of audio frames - available in the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Variable into which the method writes the device position of the first audio frame in the - data packet. The device position is expressed as the number of audio frames from the start of the stream. - - - Variable into which the method writes the value of the performance counter at the time that - the audio endpoint device recorded the device position of the first audio frame in the data packet. - - HRESULT - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - Variable into which the method writes the frame count (the number of audio frames available in - the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Variable into which the method writes the device position of the first audio frame in the - data packet. The device position is expressed as the number of audio frames from the start of the stream. - - - Variable into which the method writes the value of the performance counter at the time that - the audio endpoint device recorded the device position of the first audio frame in the data packet. - - - Pointer to a variable which stores the starting address of the next data packet that is available for the - client to read. - - - Use Marshal.Copy to convert the pointer to the buffer into an array. - - - - - Retrieves a pointer to the next available packet of data in the capture endpoint buffer. - For more information see - . - - - Variable into which the method writes the frame count (the number of audio frames available in - the data packet). The client should either read the entire data packet or none of it. - - Variable into which the method writes the buffer-status flags. - - Pointer to a variable which stores the starting address of the next data packet that is available for the - client to read. - - - Use Marshal.Copy to convert the pointer to the buffer into an array. - - - - - The ReleaseBuffer method releases the buffer. For more information, see . - - - The number of audio frames that the client read from the - capture buffer. This parameter must be either equal to the number of frames in the - previously acquired data packet or 0. - - HRESULT - - - - The ReleaseBuffer method releases the buffer. For more information, see . - - - The number of audio frames that the client read from the - capture buffer. This parameter must be either equal to the number of frames in the - previously acquired data packet or 0. - - - - - The GetNextPacketSize method retrieves the number of frames in the next data packet in - the capture endpoint buffer. - For more information, see . - - - Variable into which the method writes the frame count (the number of audio - frames in the next capture packet). - - HRESULT - - - - The GetNextPacketSize method retrieves the number of frames in the next data packet in - the capture endpoint buffer. - For more information, see . - - The number of the audio frames in the next capture packet. - - - - Defines flags that indicate the status of an audio endpoint buffer. - - - - - None - - - - - The data in the packet is not correlated with the previous packet's device position; - this is possibly due to a stream state transition or timing glitch. - - - - - Treat all of the data in the packet as silence and ignore the actual data values. - - - - - The time at which the device's stream position was recorded is uncertain. Thus, the - client might be unable to accurately set the time stamp for the current data packet. - - - - - The constants indicate characteristics of an audio session associated with - the stream. A client can specify these options during the initialization of the stream by through the - StreamFlags parameter of the method. - - - - - The session expires when there are no associated streams and owning session control objects holding references. - - - - - The volume control is hidden in the volume mixer user interface when the audio session is created. If the session - associated with the stream already exists before opens the stream, the volume - control is displayed in the volume mixer. - - - - - The volume control is hidden in the volume mixer user interface after the session expires. - - - - - Specifies characteristics that a client can assign to an audio stream during the initialization of the stream. - - - - - None - - - - - The audio stream will be a member of a cross-process audio session. For more information, see - . - - - - - The audio stream will operate in loopback mode. For more information, see - . - - - - - Processing of the audio buffer by the client will be event driven. For more information, see - . - - - - - The volume and mute settings for an audio session will not persist across system restarts. For more information, - see . - - - - - This constant is new in Windows 7. The sample rate of the stream is adjusted to a rate specified by an application. - For more information, see - . - - - - - The class enables a client to monitor a stream's data rate and the current position in - the stream. - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioClock COM Object. - - - - Gets the device frequency. For more information, see - . - - - - - Gets the device position. - - - - - Creates a new by calling the method of the - specified . - - - which should be used to create the -instance - with. - - A new . - - - - The GetFrequency method gets the device frequency. - - - The device frequency. For more information, see - . - - HRESULT - - - - The GetPosition method gets the current device position. - - - The device position is the offset from the start of the stream to the current position in the stream. However, the - units in which this offset is expressed are undefined—the device position value has meaning only in relation to the - . For more information, see - . - - - The value of the performance counter at the time that the audio endpoint device read the device position - () in response to the call. The method converts - the counter value to 100-nanosecond time - units before writing it to . - - HRESULT - - - - The GetCharacteristics method is reserved for future use. - - Value that indicates the characteristics of the audio clock. - HREUSLT - - - - Used to get the device position. - - - - - Initializes a new instance of the class. - - The native pointer of the IAudioClock2 COM object. - - - - Initializes a new instance of the class. - - - An instance which should be used to query the - object. - - The argument is null. - - The COM object is not supported on the current platform. Only supported on Windows - 7/Windows Server 2008 R2 and above. - For more information, see - . - - - - - The method gets the current device position, in frames, directly from the - hardware. - - - Receives the device position, in frames. The received position is an unprocessed value - that the method obtains directly from the hardware. For more information, see - . - - - Receives the value of the performance counter at the time that the audio endpoint device read - the device position retrieved in the parameter in response to the - call. - converts the counter value to 100-nanosecond time units before writing it to - QPCPosition. - - HRESULT - - - - The method gets the current device position, in frames, directly from the - hardware. - - - Receives the device position, in frames. The received position is an unprocessed value - that the method obtains directly from the hardware. For more information, see - . - - - Receives the value of the performance counter at the time that the audio endpoint device read - the device position retrieved in the parameter in response to the - call. - converts the counter value to 100-nanosecond time units before writing it to - QPCPosition. - - - - - Represents a peak meter on an audio stream to or from an audio endpoint device. - For more information, see - . - - - - - Initializes a new instance of class. - - The native pointer. - - - - Gets the number of channels in the audio stream that are monitored by peak meters. - - - - - - - Gets the peak sample value for the given . - - - - - The peak sample value for the given . - - - - Gets the hardware-supported functions. - - - - - - - Gets the peak sample value for the channels in the audio stream. - - - - - - - Creates a new instance for the given . - - The underlying device to create the audio meter instance for. - A new instance for the given . - - - - Gets the peak sample value for the channels in the audio stream. - - - A variable into which the method writes the peak sample value for the audio stream. The peak value - is a number in the normalized range from 0.0 to 1.0. - - HRESULT - - - - Gets the peak sample value for the channels in the audio stream. - - - The peak sample value for the audio stream. The peak value is a number in the normalized range from 0.0 to - 1.0. - - - - - Gets the number of channels in the audio stream that - are monitored by peak meters. - - A variable into which the method writes the number of channels. - HRESULT - - - - Gets the number of channels in the audio stream that - are monitored by peak meters. - - The number of channels. - - - - Gets the peak sample values for all the channels in the - audio stream. - - - - The channel count. This parameter also specifies the number of elements in the - array. If the specified count does not match the number of channels in the stream, - the method returns error code . - - - An array of peak sample values. The method writes the peak values for the channels into the - array. The array contains one element for each channel in the stream. The peak values are numbers in the normalized - range from 0.0 to 1.0. The array gets allocated by the method. - - HRESULT - - - - Gets the peak sample values for all the channels in the - audio stream. - - - - The channel count. This parameter also specifies the number of elements in the returned - array. If the specified count does not match the number of channels in the stream, the method returns error code - . - - - An array of peak sample values. he array contains one element for each channel in the stream. The peak values - are numbers in the normalized range from 0.0 to 1.0. - - - - - Gets the peak sample values for all the channels in the - audio stream. - - - An array of peak sample values. he array contains one element for each channel in the stream. The peak values - are numbers in the normalized range from 0.0 to 1.0. - - - - - Queries the audio endpoint device for its - hardware-supported functions. - - - A variable into which the method writes a hardware support mask that indicates the - hardware capabilities of the audio endpoint device. - - HRESULT - - - - Queries the audio endpoint device for its - hardware-supported functions. - - A hardware support mask that indicates the hardware capabilities of the audio endpoint device. - - - - Provides data for the event. - - - - - Gets the number of audio channels in the session submix. - - - - - Gets the volume level for each audio channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume. - - - - - Gets the index of the audio channel that changed. Use this value as an index into the . - If the session submix contains n channels, the channels are numbered from 0 to n– 1. If more than one channel might have changed, the value of ChangedChannel is (DWORD)(–1). - - - - - Gets the volume of the channel specified by the . - - The zero-based index of the channel. - Volume level of the specified channelIndex in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume. - - - - Initializes a new instance of the class. - - The number of channels. - Volumes of the channels. - Number of channel volumes changed. - Userdefined event context. - - - - The class can be used by a client to get information about the audio session. - For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer to the IAudioSessionControl2 object. - - - - Gets the session identifier. - - For more information, see . - - - - Gets the identifier of the audio session instance. - - For more information, see . - - - - Gets the process identifier of the audio session. - In the case of that the session is no single-process-session (see ), the is the initial identifier of the process that created the session. - - - - - Gets a value indicating whether the session spans more than one process. If True, the session spans more than one process; If False otherwise. - - - - - Gets the process of the audio session. - In the case of that the session is no SingleProcessSession (see ), the Process is the process that created the session. - If the process that created the session is not available anymore, the value is null. - - - - - Gets a value indicating whether the session is a system sounds session. If True, the session is a system sound session; If False otherwise. - - - - - Gets the session identifier. - - - A variable which retrieves the session identifier. - HRESULT - - - - Gets the identifier of the audio session instance. - - - A variable which retrieves the identifier of a particular instance of the audio session. - HRESULT - - - - Gets the process identifier of the audio session. - - - A variable which receives the process id of the audio session. - HRESULT - - - - Indicates whether the session is a system sounds session. - - - HRESULT; S_OK = true, S_FALSE = false - - - - Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. - - A variable that enables or disables system auto-ducking. - HRESULT - - - - Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. - - A variable that enables or disables system auto-ducking. - - - - Provides data for the event. - - - - - Gets the reason that the audio session was disconnected. - - - - - Initializes a new instance of the class. - - The reason that the audio session was disconnected. - - - - Specifies reasons that a audio session was disconnected. - - For more information about WTS sessions, see the Windows SDK documentation or . - - - - The user removed the audio endpoint device. - - - - - The Windows audio service has stopped. - - - - - The stream format changed for the device that the audio session is connected to. - - - - - The user logged off the Windows Terminal Services (WTS) session that the audio session was running in. - - - - - The WTS session that the audio session was running in was disconnected. - - - - - The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. - - - - - Provides data for the event. - - - - - Gets the new display name the session. - - - - - Initializes a new instance of the class. - - Thew new display name of the session. - The event context value. - - - - The object enumerates audio sessions on an audio device. - For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer of the object. - - - - Gets the total number of audio sessions. - - - - - Gets the audio session specified by an index. - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - - - - Gets the total number of audio sessions that are open on the audio device. - - - Receives the total number of audio sessions. - HRESULT - - - - Gets the audio session specified by an audio session number. - - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - The of the specified session number. - HRESULT - - - - Gets the audio session specified by an audio session number. - - The session number. If there are n sessions, the sessions are numbered from 0 to n – 1. To get the number of sessions, call the GetCount method. - The of the specified session number. - - - - Returns an enumerator that iterates through the audio sessions. - - - A that can be used to iterate through the audio sessions. - - - - - Returns an enumerator that iterates through the audio sessions. - - - An object that can be used to iterate through the audio sessions. - - - - - A base class for all event-args classes which specify an value. - - - - - Gets the event context value. - - - - - Initializes a new instance of the class. - - The event context value. - - - - Provides notifications of session-related events such as changes in the volume level, display name, and session state. - For more information, see . - - - - - Occurs when the display name for the session has changed. - - - - - Occurs when the display icon for the session has changed. - - - - - Occurs when the volume level or muting state of the session has changed. - - - - - Occurs when the volume level of an audio channel in the session submix has changed. - - - - - Occurs when the grouping parameter for the session has changed. - - - - - Occurs when the stream-activity state of the session has changed. - - - - - Occurs when the session has been disconnected. - - - - - Notifies the client that the display name for the session has changed. - - The new display name for the session. - The event context value. - HRESULT - - - - Notifies the client that the display icon for the session has changed. - - The path for the new display icon for the session. - The event context value. - HRESULT - - - - Notifies the client that the volume level or muting state of the audio session has changed. - - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, - where 0.0 is silence and 1.0 is full volume (no attenuation). - - The new muting state. If TRUE, muting is enabled. If FALSE, muting is disabled. - The event context value. - HRESULT - - - - Notifies the client that the volume level of an audio channel in the session submix has changed. - - The number of channels in the session submix. - An array of volume levels. Each element is a value of type float that specifies the volume level for a particular channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). The number of elements in the array is specified by the ChannelCount parameter. - The number of the channel whose volume level changed. - The event context value. - - - - - Notifies the client that the grouping parameter for the session has changed. - - The new grouping parameter for the session. This parameter points to a grouping-parameter GUID. - The event context value. - HRESULT - - - - Notifies the client that the stream-activity state of the session has changed. - - The new session state. - HRESULT - - - - Notifies the client that the audio session has been disconnected. - - The reason that the audio session was disconnected. - HRESULT - - - - Provides data for the event. - - - - - Gets the new grouping parameter for the session. - - - - - Initializes a new instance of the class. - - The new grouping parameter for the session. - The event context value. - - - - Provides data for the event. - - - - - Gets the path for the new display icon for the session. - - - - - Initializes a new instance of the class. - - The path for the new display icon for the session. - The event context value. - - - - The class enables a client to access the session controls and volume controls for both cross-process and process-specific audio sessions. - - - - - Initializes a new instance of the class. - - Native pointer to the object. - - - - Retrieves an audio session control. - - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - Specifies the status of the flags for the audio stream. - The of the specified . - HRESULT - - - - Retrieves an audio session control. - - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - Specifies the status of the flags for the audio stream. - instance. - - - - Retrieves a simple audio volume control. - - Specifies whether the request is for a cross-process session. Set to TRUE if the session is cross-process. Set to FALSE if the session is not cross-process. - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - of the audio volume control object. - HRESULT - - - - Retrieves a simple audio volume control. - - Specifies whether the request is for a cross-process session. Set to TRUE if the session is cross-process. Set to FALSE if the session is not cross-process. - If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session. - instance. - - - - Enables an application to manage submixes for the audio device. - - - - - Occurs when the audio session has been created. - - - - - Occurs when a pending system ducking event gets fired. - - - - - Occurs when a pending system unducking event gets fired. - - - - - Creates a new instance of based on a . - - Device to use to activate the . - instance for the specified . - - - - Initializes a new instance of the class. - - The native pointer. - - - - Gets a pointer to the audio session enumerator object. - - - Retrieves a session enumerator object that the client can use to enumerate audio sessions on the audio device. - HRESULT - The client is responsible for releasing the . - - - - Gets a pointer to the audio session enumerator object. - - a session enumerator object that the client can use to enumerate audio sessions on the audio device. - The client is responsible for releasing the returned . - - - - Registers the application to receive a notification when a session is created. - - - The application's implementation of the interface. - HRESULT - - Use the class as the default implementation for the parameter. - - Note: Make sure to call the from an MTA-Thread. Also make sure to enumerate all sessions after calling this method. - - - - - Registers the application to receive a notification when a session is created. - - The application's implementation of the interface. - - Use the class as the default implementation for the parameter. - - Note: Make sure to call the from an MTA-Thread. Also make sure to enumerate all sessions after calling this method. - - - - - Deletes the registration to receive a notification when a session is created. - - - - The application's implementation of the interface. - Pass the same object that was specified to the session manager in a previous call to register for notification. - HRESULT - - - - Deletes the registration to receive a notification when a session is created. - - - The application's implementation of the interface. - Pass the same object that was specified to the session manager in a previous call to register for notification. - - - - Registers the application to receive ducking notifications. - - - A string that contains a session instance identifier. Applications that are playing a media stream and want to provide custom stream attenuation or ducking behavior, pass their own session instance identifier. - Other applications that do not want to alter their streams but want to get all the ducking notifications must pass NULL. - Instance of any object which implements the and which should receive duck notifications. - HRESULT - - - - Registers the application to receive ducking notifications. - - A string that contains a session instance identifier. Applications that are playing a media stream and want to provide custom stream attenuation or ducking behavior, pass their own session instance identifier. - Other applications that do not want to alter their streams but want to get all the ducking notifications must pass NULL. - Instance of any object which implements the and which should receive duck notifications. - - - - Deletes the registration to receive ducking notifications. - - - - The interface that is implemented by the application. Pass the same interface pointer that was specified to the session manager in a previous call to the method. - - HRESULT - - - - Deletes the registration to receive ducking notifications. - - - The interface that is implemented by the application. Pass the same interface pointer that was specified to the session manager in a previous call to the method. - - - - - Releases the COM object and unregisters all session notifications and all volume duck notifications. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - The object provides notification when an audio session is created. - For more information, . - - - - - Occurs when the audio session has been created. - - - - - Notifies the registered processes that the audio session has been created. - - Pointer to the object of the audio session that was created. - HRESULT - - - - Provides data for the event. - - - - - Gets the new volume level for the audio session. - - The value is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - - - - Gets the new muting state. - - If true, muting is enabled. If false, muting is disabled. - - - - Initializes a new instance of the class. - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - The muting state. If true, muting is enabled. If false, muting is disabled. - The event context value. - - - - Defines constants that indicate the current state of an audio session. - - - - - The session has no active audio streams. - - - - - The session has active audio streams. - - - - - The session is dormant. - - - - - Provides data for the event. - - - - - Gets the new session state. - - - - - Initializes a new instance of the class. - - - - - - The default implementation of the interface. - - - - - Occurs when a pending system ducking event gets fired. - - - - - Occurs when a pending system unducking event gets fired. - - - - - Sends a notification about a pending system ducking event. - - A string containing the session instance identifier of the communications session that raises the the auto-ducking event. - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - HRESULT - - - - Sends a notification about a pending system unducking event. - - A string containing the session instance identifier of the terminating communications session that intiated the ducking. - The number of active communications sessions. If there are n sessions, they are numbered from 0 to n-1. - - - - - Provides data for the event. - - - - - Gets the data-flow direction of the endpoint device. - - - - - Gets the device role of the audio endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - - - - Provides basic data for all device notification events. - - - - - Gets the device id that identifies the audio endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - - - - Tries the get device associated with the . - - The device associated with the . If the return value is false, the will be null. - true if the associated device be successfully retrieved; false otherwise. - - - - Provides data for the event. - - - - - Gets the that specifies the changed property. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - - - - Provides data for the event. - - - - - Gets the new state of the endpoint device. - - - - - Initializes a new instance of the class. - - The device id that identifies the audio endpoint device. - The new state of the endpoint device. - - - - The class enables a client to configure the control parameters for an audio session and to monitor events in the session. - For more information, see . - - - - - Occurs when the display name for the session has changed. - - - - - Occurs when the display icon for the session has changed. - - - - - Occurs when the volume level or muting state of the session has changed. - - - - - Occurs when the volume level of an audio channel in the session submix has changed. - - - - - Occurs when the grouping parameter for the session has changed. - - - - - Occurs when the stream-activity state of the session has changed. - - - - - Occurs when the session has been disconnected. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - The audio client to create a instance for. - audioClient - - - - Gets the current state of the audio session. - - - - - Gets or sets the display name for the audio session. - - - - - Gets or sets the path for the display icon for the audio session. - - - - - Gets or sets the grouping parameter of the audio session. - - - - - Retrieves the current state of the audio session. - - - A variable into which the method writes the current session state. - HRESULT - - - - Retrieves the display name for the audio session. - - - A variable into which the method writes the display name of the session. - HRESULT - - - - Assigns a display name to the current session. - - - The new display name of the audio session. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the path for the display icon for the audio session. - - - A variable into which the method writes the path and file name of an .ico, .dll, or .exe file that contains the icon. - HRESULT - - - - Assigns a display icon to the current session. - - - A string that specifies the path and file name of an .ico, .dll, or .exe file that contains the icon. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the grouping parameter of the audio session. - - - A variable into which the method writes the grouping parameter. - HRESULT - For some more information about grouping parameters, see . - - - - Assigns a session to a grouping of sessions. - - - - - HRESULT - For some more information about grouping parameters, see . - - - - Registers the client to receive notifications of session events, including changes in the stream state. - - - An instance of the object which receives the notifications. - HRESULT - - - - Registers the client to receive notifications of session events, including changes in the stream state. - - An instance of the object which receives the notifications. - - - - Deletes a previous registration by the client to receive notifications. - - The instance of the object which got registered previously by the method. - HRESULT - - - - Deletes a previous registration by the client to receive notifications. - - The instance of the object which got registered previously by the method. - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - The interface provides notifications of session-related events such as changes in the volume level, display name, and session state. - - - - - Notifies the client that the display name for the session has changed. - - The new display name for the session. - The event context value. - HRESULT - - - - Notifies the client that the display icon for the session has changed. - - The path for the new display icon for the session. - The event context value. - HRESULT - - - - Notifies the client that the volume level or muting state of the audio session has changed. - - The new volume level for the audio session. This parameter is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). - The new muting state. If TRUE, muting is enabled. If FALSE, muting is disabled. - The event context value. - HRESULT - - - - Notifies the client that the volume level of an audio channel in the session submix has changed. - - The number of channels in the session submix. - An array of volume levels. Each element is a value of type float that specifies the volume level for a particular channel. Each volume level is a value in the range 0.0 to 1.0, where 0.0 is silence and 1.0 is full volume (no attenuation). The number of elements in the array is specified by the ChannelCount parameter. - The number of the channel whose volume level changed. - The event context value. - HRESULT - - - - Notifies the client that the grouping parameter for the session has changed. - - The new grouping parameter for the session. This parameter points to a grouping-parameter GUID. - The event context value. - HRESULT - - - - Notifies the client that the stream-activity state of the session has changed. - - The new session state. - HRESULT - - - - Notifies the client that the audio session has been disconnected. - - The reason that the audio session was disconnected. - HRESULT - - - - The interface provides notification when an audio session is created. - - - - - Notifies the registered processes that the audio session has been created. - - Pointer to the object of the audio session that was created. - HRESULT - - - - The interface is used to by the system to send notifications about stream attenuation changes. - - For more information, see . - - - - Sends a notification about a pending system ducking event. - - A string containing the session instance identifier of the communications session that raises the the auto-ducking event. - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - HRESULT - - - - Sends a notification about a pending system unducking event. - - A string containing the session instance identifier of the terminating communications session that intiated the ducking. - The number of active communications sessions. If there are n sessions, they are numbered from 0 to n-1. - HRESULT - - - - The interface provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device. - - - - - The OnDeviceStateChanged method indicates that the state of an audio endpoint device has - changed. - - The device id that identifies the audio endpoint device. - Specifies the new state of the endpoint device. - HRESULT - - - - The OnDeviceAdded method indicates that a new audio endpoint device has been added. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDeviceRemoved method indicates that an audio endpoint device has been removed. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDefaultDeviceChanged method notifies the client that the default audio endpoint - device for a particular device role has changed. - - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnPropertyValueChanged method indicates that the value of a property belonging to an - audio endpoint device has changed. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - HRESULT - - - - Represents an audio endpoint device - (see also ). - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - Obtain an instance of the by using the constructor. - - - - - Initializes a new instance of the class based on an - by calling its method. - - The used to obtain an instance. - device - - - - Gets the data flow of the associated device. - - - The data flow of the associated device. - - - - - Indicates whether the endpoint is associated with a rendering device or a capture device. - - A variable into which the method writes the data-flow direction of the endpoint device. - HRESULT - Use the property instead. - - - - Provides data for the event. - - - - - Gets the object of the audio session that was created. - - - - - Initializes a new instance of the class. - - The object of the audio session that was created. - must not be null. - - - - Provides data for the and the event. - For more information, see . - - - - - A string containing the session instance identifier of the communications session that raises the auto-ducking event. - - - - - The number of active communications sessions. If there are n sessions, the sessions are numbered from 0 to –1. - - - - - Initializes a new instance of the class. - - The session instance identifier of the communications session that raises the the auto-ducking event. - number of active communications sessions. - sessionID is null or empty. - countCommunicationSessions is less than zero. - - - - The interface represents the volume controls on the audio stream to or from an - audio endpoint device. - For more information, see - . - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Gets all registered . - - - - - Gets the number of available channels. - - - - - - Gets or sets the MasterVolumeLevel in decibel. - - - - - - - Gets or sets the MasterVolumeLevel as a normalized value in the range from 0.0 to 1.0. - - - - - - - Gets or sets the muting state of the audio stream that enters or leaves the - audio endpoint device. True indicates that the audio endpoint devie is muted. False indicates that the audio endpoint device is not muted. - - - - - - - Gets all available channels. - - - - - Returns a new instance based on a instance. - - instance to create the for. - A new instance based on the specified . - - - - Registers a client's notification callback - interface. - - The callback instance that the client is registering for notification callbacks. - HRESULT - - When notifications are no longer needed, the client can call the - method to terminate the - notifications. - - - - - Registers a client's notification callback - interface. - - The callback instance that the client is registering for notification callbacks. - - When notifications are no longer needed, the client can call the - method to terminate the - notifications. - - - - - Deletes the registration of a client's - notification callback interface that the client registered in a previous call to the - method. - - - The callback instance to unregister. The client passed this same object to the endpoint volume - object in the previous call to the method. - - HRESULT - - - - Deletes the registration of a client's - notification callback interface that the client registered in a previous call to the - method. - - - The callback instance to unregister. The client passed this same object to the endpoint volume - object in the previous call to the method. - - - - - Gets the number of channels in the audio stream that enters - or leaves the audio endpoint device. - - Retrieves the number of channels in the audio stream. - HRESULT - - - - Gets the number of channels in the audio stream that enters - or leaves the audio endpoint device. - - The number of channels in the audio stream. - - - - Sets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - The new master volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - The new master volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - - - Sets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - The new master volume level. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - The new master volume level. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - - - Gets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - A - float variable into which the method writes the volume level in decibels. To get the - range of volume levels obtained from this method, call the - method. - - HRESULT - - - - Gets the master volume level, in decibels, of the audio - stream that enters or leaves the audio endpoint device. - - - Volume level in decibels. To get the range of volume levels obtained from this - method, call the method. - - - - - Gets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - A float - variable into which the method writes the volume level. The level is expressed as a - normalized value in the range from 0.0 to 1.0. - - HRESULT - - - - Gets the master volume level of the audio stream - that enters or leaves the audio endpoint device. The volume level is expressed as a - normalized, audio-tapered value in the range from 0.0 to 1.0. - - - Volume level. The level is expressed as a normalized value in the range from - 0.0 to 1.0. - - - - - Sets the volume level, in decibels, of the specified - channel of the audio stream that enters or leaves the audio endpoint device. - - - The new volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Sets the volume level, in decibels, of the specified - channel of the audio stream that enters or leaves the audio endpoint device. - - - The new volume level in decibels. To obtain the range and - granularity of the volume levels that can be set by this method, call the - method. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - - - Sets the normalized, audio-tapered volume level - of the specified channel in the audio stream that enters or leaves the audio endpoint - device. - - - The volume level. The volume level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Sets the normalized, audio-tapered volume level - of the specified channel in the audio stream that enters or leaves the audio endpoint - device. - - - The volume level. The volume level is expressed as a normalized - value in the range from 0.0 to 1.0. - - EventContext which can be accessed in the event handler. - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - - - Gets the volume level, in decibels, of the specified - channel in the audio stream that enters or leaves the audio endpoint device. - - - A float variable into which the method writes the - volume level in decibels. To get the range of volume levels obtained from this method, - call the method. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Gets the volume level, in decibels, of the specified - channel in the audio stream that enters or leaves the audio endpoint device. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - Volume level in decibels. To get the range of volume levels obtained from this - method, call the method. - - - - - Gets the normalized, audio-tapered volume level - of the specified channel of the audio stream that enters or leaves the audio endpoint - device. - - - A float variable into which the method writes the volume - level. The level is expressed as a normalized value in the range from 0.0 to - 1.0. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - HRESULT - - - - Gets the normalized, audio-tapered volume level - of the specified channel of the audio stream that enters or leaves the audio endpoint - device. - - - The channel number. If the audio stream contains n channels, the channels are numbered from 0 to - n–1. - - - Volume level of a specific channel. The level is expressed as a normalized - value in the range from 0.0 to 1.0. - - - - - Sets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - True mutes the stream. False turns off muting. - EventContext which can be accessed in the event handler. - HRESULT - - - - Sets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - EventContext which can be accessed in the event handler. - True mutes the stream. False turns off muting. - - - - Gets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - - A Variable into which the method writes the muting state. - If is true, the stream is muted. If false, the stream is not muted. - - HRESULT - - - - Gets the muting state of the audio stream that enters or leaves the - audio endpoint device. - - If the method returns true, the stream is muted. If false, the stream is not muted. - - - - Gets information about the current step in the volume - range. - - - A variable into which the method writes the current step index. This index is a value in the - range from 0 to – 1, where 0 represents the minimum volume level and - – 1 represents the maximum level. - - - A variable into which the method writes the number of steps in the volume range. This number - remains constant for the lifetime of the object instance. - - HRESULT - - - - Gets information about the current step in the volume - range. - - - A variable into which the method writes the current step index. This index is a value in the - range from 0 to – 1, where 0 represents the minimum volume level and - – 1 represents the maximum level. - - - A variable into which the method writes the number of steps in the volume range. This number - remains constant for the lifetime of the object instance. - - - - - Increments, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Increments, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - - - - Decrements, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - HRESULT - - - - Decrements, by one step, the volume level of the audio stream - that enters or leaves the audio endpoint device. - - EventContext which can be accessed in the event handler. - - - - Queries the audio endpoint device for its - hardware-supported functions. - - - A variable into which the method writes a hardware support mask that indicates the - hardware capabilities of the audio endpoint device. - - HRESULT - - - - Queries the audio endpoint device for its - hardware-supported functions. - - A hardware support mask that indicates the hardware capabilities of the audio endpoint device. - - - - Gets the volume range, in decibels, of the audio stream that - enters or leaves the audio endpoint device. - - - Minimum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Maximum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Volume increment in decibels. This increment remains - constant for the lifetime of the object instance. - - HREUSLT - - - - Gets the volume range, in decibels, of the audio stream that - enters or leaves the audio endpoint device. - - - Minimum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Maximum volume level in decibels. This value remains constant - for the lifetime of the object instance. - - - Volume increment in decibels. This increment remains - constant for the lifetime of the object instance. - - - - - Provides an implementation of the interface. - - - - - Occurs when the volume level or the muting state of the audio endpoint device has changed. - - - - - The method notifies the client that the volume level or muting state of the audio endpoint device has changed. - - Pointer to the volume-notification data. - HRESULT; If the method succeeds, it returns . If it fails, it returns an error code. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - The data which describes a change in the volume level or muting state of an audio endpoint device. - The native pointer to the . - - - - Gets the event context value. - - - The event context value. - - - Context value for the method. This member is the value of the - event-context GUID that was provided as an input parameter to the method call - that changed the endpoint volume level or muting state. For more information, see - . - - - - - Gets a value indicating whether the audio stream is currently muted. - - - true if the audio stream is currently muted; otherwise, false. - - - - - Gets the current master volume level of the audio stream. The volume level is - normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 - is the maximum level. Within this range, the relationship of the normalized volume level - to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve. - - - - - Gets the number of channels. - - - The number of channels. - - - - - Gets the volume level for each channel is normalized to the range from 0.0 to 1.0, where 0.0 - is the minimum volume level and 1.0 is the maximum level. Within this range, the - relationship of the normalized volume level to the attenuation of signal amplitude is - described by a nonlinear, audio-tapered curve. - - - - - Represents a single audio endpoint volume channel. - - - - - Gets the parent instance. - - - The parent instance. - - - - - Gets the index of the audio endpoint channel. - - - The index of the audio endpoint channel. - - - - - Initializes a new instance of the class. - - The underlying which provides access to the audio endpoint volume. - The zero-based index of the channel. - - - - Gets or sets the volume in decibel. - - - The volume in decibel. - - - - - Gets or sets the volume as a normalized value in the range from 0.0 to 1.0. - - - The volume as a normalized value in the range from 0.0 to 1.0. - - - - - The class enables a client to write output data to a rendering endpoint buffer. - - - For more information, see - . - - - - - Initializes a new instance of the class. - - Pointer to the instance. - - - - Returns a new instance of the class. This is done by calling the - method of the class. - - - The instance which should be used to create the new - instance. - - A new instance of the class. - - - - Retrieves a pointer to the next available space in the rendering endpoint buffer into - which the caller can write a data packet. - - - The number of audio frames in the data packet that the caller plans to write to the requested space in the buffer. - If the call succeeds, the size of the buffer area pointed to by return value matches the size specified in - . - - - A pointer variable into which the method writes the starting address of the buffer area into which the caller - will write the data packet. - - - - - Retrieves a pointer to the next available space in the rendering endpoint buffer into - which the caller can write a data packet. - - - The number of audio frames in the data packet that the caller plans to write to the requested space in the buffer. - If the call succeeds, the size of the buffer area pointed to by matches the size - specified in . - - - Pointer variable into which the method writes the starting address of the buffer area into which - the caller will write the data packet. - - HRESULT - - - - Releases the buffer space acquired in the previous call to the - method. - - - The number of audio frames written by the client to the data packet. - The value of this parameter must be less than or equal to the size of the data packet, as specified in the - numFramesRequested parameter passed to the method. - - The buffer-configuration flags. - HRESULT - - - - Releases the buffer space acquired in the previous call to the - method. - - - The number of audio frames written by the client to the data packet. - The value of this parameter must be less than or equal to the size of the data packet, as specified in the - numFramesRequested parameter passed to the method. - - The buffer-configuration flags. - - - - The structure describes a change in the volume level or muting state of an audio endpoint device. - For more information, see . - - - - - The event context value. - - - Context value for the method. This member is the value of the - event-context GUID that was provided as an input parameter to the method call - that changed the endpoint volume level or muting state. For more information, see - . - - - - - A value indicating whether the audio stream is currently muted. true if the audio stream is currently muted; - otherwise, false. - - - - - Specifies the current master volume level of the audio stream. The volume level is - normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 - is the maximum level. Within this range, the relationship of the normalized volume level - to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve. - - - - - The number of channels. - - - - - The first element of an array which specifies the volume level of each channel. Use the - method to get all channel volumes. - - - - - Gets all channel volumes. - - - The volume level for each channel is normalized to the range from 0.0 to 1.0, where 0.0 - is the minimum volume level and 1.0 is the maximum level. Within this range, the - relationship of the normalized volume level to the attenuation of signal amplitude is - described by a nonlinear, audio-tapered curve. - - - - - The are hardware support flags for an audio endpoint device. - - For more information, see . - - - - None - - - - - The audio endpoint device supports a hardware volume control. - - - - - The audio endpoint device supports a hardware mute control. - - - - - The audio endpoint device supports a hardware peak meter. - - - - - The interface provides notifications of changes in the volume level and muting state of an audio endpoint device. - - - - - Notifies the client that the volume level or muting state of the audio endpoint device has changed. - - Pointer to the volume-notification data. - HRESULT; If the method succeeds, it returns . If it fails, it returns an error code. - - - - Enables a client to create and initialize an audio stream between an audio application and the audio engine (for a - shared-mode stream) or the hardware buffer of an audio endpoint device (for an exclusive-mode stream). For more - information, see - . - - - - - IID of the IAudioClient-interface. - - - - - Initializes a new instance of the class. - - Native pointer. - Use the method to create a new instance. - - - - Gets the default interval between periodic processing passes by the audio engine. The time is expressed in - 100-nanosecond units. - - - - - Gets the minimum interval between periodic processing passes by the audio endpoint device. The time is expressed in - 100-nanosecond units. - - - - - Gets the maximum capacity of the endpoint buffer. - - - - - Gets the number of frames of padding in the endpoint buffer. - - - - - Gets the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - - - Gets the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - - - - Returns a new instance of the class. - - Device which should be used to create the instance. - instance. - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - The format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - HRESULT - - For more information, see - . - - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - Pointer to the format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - HRESULT - - For more information, see - . - - - - - Initializes the audio stream. - - - The sharing mode for the connection. Through this parameter, the client tells the audio engine - whether it wants to share the audio endpoint device with other clients. - - Flags to control creation of the stream. - - The buffer capacity as a time value (expressed in 100-nanosecond units). This parameter - contains the buffer size that the caller requests for the buffer that the audio application will share with the - audio engine (in shared mode) or with the endpoint device (in exclusive mode). If the call succeeds, the method - allocates a buffer that is a least this large. - - - The device period. This parameter can be nonzero only in exclusive mode. In shared mode, - always set this parameter to 0. In exclusive mode, this parameter specifies the requested scheduling period for - successive buffer accesses by the audio endpoint device. If the requested device period lies outside the range that - is set by the device's minimum period and the system's maximum period, then the method clamps the period to that - range. If this parameter is 0, the method sets the device period to its default value. To obtain the default device - period, call the method. If the - stream flag is set and - is set as the , then - must be nonzero and equal to . - - - The format descriptor. For more information, see - . - - - A value that identifies the audio session that the stream belongs to. If the - identifies a session that has been previously opened, the method adds the stream to that - session. If the GUID does not identify an existing session, the method opens a new session and adds the stream to - that session. The stream remains a member of the same session for its lifetime. Use to - use the default session. - - - For more information, see - . - - - - - Retrieves the size (maximum capacity) of the endpoint buffer. - - Retrieves the number of audio frames that the buffer can hold. - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - HRESULT - - - - Returns the size (maximum capacity) of the endpoint buffer. - - The number of audio frames that the buffer can hold. - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - HRESULT - - - - Retrieves the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - Retrieves a value representing the latency. The time is expressed in 100-nanosecond units. - - Rendering clients can use this latency value to compute the minimum amount of data that - they can write during any single processing pass. To write less than this minimum is to - risk introducing glitches into the audio stream. For more information, see - . - - HRESULT - - - - Retrieves the maximum latency for the current stream and can - be called any time after the stream has been initialized. - - - Rendering clients can use this latency value to compute the minimum amount of data that - they can write during any single processing pass. To write less than this minimum is to - risk introducing glitches into the audio stream. For more information, see - . - - A value representing the latency. The time is expressed in 100-nanosecond units. - - - - Retrieves the number of frames of padding in the endpoint buffer. - - Retrieves the frame count (the number of audio frames of padding in the buffer). - HRESULT - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - - - - Retrieves the number of frames of padding in the endpoint - buffer. - - The frame count (the number of audio frames of padding in the buffer). - - The size of one frame = (number of bits per sample)/8 * (number of channels) - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - Retrieves the supported format that is closest to the format that the client specified - through the parameter. If is - , the will be always null. - - - HRESULT code. If the method returns 0 (= ), the endpoint device supports the specified - . If the method returns - 1 (= ), the method succeeded with a to the specified - . If the method returns - 0x88890008 (= ), the method succeeded but the specified format - is not supported in exclusive mode. If the method returns anything else, the method failed. - - - For more information, see - . - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - Retrieves the supported format that is closest to the format that the client specified - through the parameter. If is - , the will be always null. - - - True if the is supported. False if the - is not supported. - - - For more information, see - . - - - - - Indicates whether the audio endpoint device - supports a particular stream format. - - - The sharing mode for the stream format. Through this parameter, the client indicates whether it - wants to use the specified format in exclusive mode or shared mode. - - The stream format to test whether it is supported by the or not. - - True if the is supported. False if the - is not supported. - - - For more information, see - . - - - - - Retrieves the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - Retrieves the mix format that the audio engine uses for its internal processing of - shared-mode streams. - - - For more information, see - . - - HRESULT - - - - Retrieves the stream format that the audio engine uses for its - internal processing of shared-mode streams. - - - For more information, see - . - - The mix format that the audio engine uses for its internal processing of shared-mode streams. - - - - Retrieves the length of the periodic interval separating - successive processing passes by the audio engine on the data in the endpoint buffer. - - - Retrieves a time value specifying the default interval between periodic processing - passes by the audio engine. The time is expressed in 100-nanosecond units. - - - Retrieves a time value specifying the minimum interval between periodic processing - passes by the audio endpoint device. The time is expressed in 100-nanosecond units. - - - Use the and the properties instead of - the method. - For more information, see - . - - HRESULT - - - - Starts the audio stream. - - HRESULT - - For more information, see - . - - - - - Starts the audio stream. - - - For more information, see - . - - - - - Stops the audio stream. - - HRESULT - - For more information, see - . - - - - - Stops the audio stream. - - - For more information, see - . - - - - - Resets the audio stream. - - HRESULT - - For more information, see - . - - - - - Resets the audio stream. - - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - HRESULT - - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - For more information, see - . - - - - - Sets the event handle that the system signals when an audio - buffer is ready to be processed by the client. - - The event handle. - - For more information, see - . - - - - - Accesses additional services from the audio client object. - - - The interface ID for the requested service. For a list of all available values, see - . - - - A pointer variable into which the method writes the address of an instance of the - requested interface. Through this method, the caller obtains a counted reference to the interface. The caller is - responsible for releasing the interface, when it is no longer needed, by calling the interface's Release method. If - the GetService call fails, *ppv is . - - HRESULT - - For more information, see - . - - - - - Accesses additional services from the audio client object. - - - The interface ID for the requested service. For a list of all available values, see - . - - - A pointer into which the method writes the address of an instance of the requested interface. - Through this method, the caller obtains a counted reference to the interface. The caller is responsible for - releasing the interface, when it is no longer needed, by calling the interface's Release method. - - - For more information, see - . - - - - - AudioClient share mode - - - - - The device will be opened in shared mode and use the WAS format. - - - - - The device will be opened in exclusive mode and use the application specified format. - - - - - Represents a collection of multimedia device resources. - - - - - Initializes a new instance of the class. - - The native pointer. - Use the method to create an instance of the class. - - - - Gets the number of devices in the device collection. - - - - - Gets the element at the specified index. - - - - - - The method retrieves a count of the devices in the device collection. - - The number of devices in the device collection. - - - - The method retrieves a count of the devices in the device collection. - - Variable into which the method writes the number of devices in the device collection. - HRESULT - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - The object of the specified item in the device collection. - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - A pointer variable into which the method writes the address of the object of the specified item in the device collection. - HRESULT - - - - Returns an enumerator that iterates through the . - - Enumerator for the . - - - - Returns an enumerator that iterates through the . - - Enumerator for the . - - - - The object provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device. - - - - - Occurs when the state of an audio endpoint device has changed. - - - - - Occurs when a new audio endpoint device has been added. - - - - - Occurs when an audio endpoint device has been removed. - - - - - Occurs when the default audio endpoint device for a particular device role has changed. - - - - - Occurs when the value of a property belonging to an audio endpoint device has changed. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class based on an existing . - - - - - - The OnDeviceStateChanged method indicates that the state of an audio endpoint device has - changed. - - The device id that identifies the audio endpoint device. - Specifies the new state of the endpoint device. - HRESULT - - - - The OnDeviceAdded method indicates that a new audio endpoint device has been added. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDeviceRemoved method indicates that an audio endpoint device has been removed. - - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnDefaultDeviceChanged method notifies the client that the default audio endpoint - device for a particular device role has changed. - - The data-flow direction of the endpoint device. - The device role of the audio endpoint device. - The device id that identifies the audio endpoint device. - HRESULT - - - - The OnPropertyValueChanged method indicates that the value of a property belonging to an - audio endpoint device has changed. - - The device id that identifies the audio endpoint device. - The that specifies the changed property. - HRESULT - - - - Disposes und unregisters the . - - In order to unregister the , this method calls the method. - - - - Finalizes an instance of the class. - - - - - The object enables a client to control the master volume level of an audio session. - For more information, see . - - - - - Creates a new instance by calling the method of the - specified . - - - The which should be used to create the -instance - with. - - A new instance of the class. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets or sets the master volume level for the audio session. Valid volume levels are in the range 0.0 (=0%) to 1.0 (=100%). - - - - - Gets or sets the muting state for the audio session. True indicates that muting is enabled. False indicates that it is disabled. - - - - - Sets the master volume level for the audio session. - - - The new master volume level. Valid volume levels are in the range 0.0 to 1.0. - EventContext which can be accessed in the event handler. - HRESULT - - - - Retrieves the client volume level for the audio session. - - - A variable into which the method writes the client volume level. The volume level is a value in the range 0.0 to 1.0. - HRESULT - - - - Sets the muting state for the audio session. - - - The new muting state. TRUE enables muting. FALSE disables muting. - EventContext which can be accessed in the event handler. - HRESULT - - - - The GetMute method retrieves the current muting state for the audio session. - - - A variable into which the method writes the muting state. TRUE indicates that muting is enabled. FALSE indicates that it is disabled. - HRESULT - - - - Encapsulates the generic features of a multimedia device resource. - - - - - Initializes a new instance of the class. - - Native pointer. - Use the class to create a new instance. - - - - Gets the propertystore associated with the . - - Warning: This PropertyStore is only readable. Use the OpenPropertyStore-Method to get - writeable PropertyStore. - - - - Gets the device id. For information, see . - - - - - Gets the friendly name of the device. - - This value is stored in the . - - - - Gets the AudioEndpointPath of the device. - - - This value is stored in the . - Use this value as the deviceid for XAudio2.8 device selection. - - - - - Gets the device state of the device. - - - - - Gets the data flow of the device. - - - The data flow of the device. - - - - - Gets the device format. - - Specifies the device format, which is the format that the user has selected for the stream that flows between the audio engine and the audio endpoint device when the device operates in shared mode. - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - A pointer variable into which the method writes the address of the interface specified by parameter . - HRESULT - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - A pointer variable into which the method writes the address of the interface specified by parameter . - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - for the . - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - A pointer variable into which the method writes the address of the IPropertyStore interface of the device's property store. - HRESULT - - - - Retrieves an endpoint ID string that identifies the audio endpoint device. - - The variable which will receive the id of the device. - HRESULT - - - - Retrieves the current device state. - - The variable which will receive the of the device. - HRESULT - - - - Disposes the and its default property store (see property). - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns the of the . - - The . - - - - CoreAudioAPI COM Exception - - - - - Throws an if the represents an error. - - The error code. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class. - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Defines constants that indicate the direction in which audio data flows between an audio endpoint device and an application. - - - - - Audio rendering stream. Audio data flows from the application to the audio endpoint device, which renders the stream. - - - - - Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, to the application. - - - - - Audio rendering or capture stream. Audio data can flow either from the application to the audio endpoint device, or from the audio endpoint device to the application. - - - - - Indicates the current state of an audio endpoint device. - - - - - The audio endpoint device is active. That is, the audio adapter that connects to the endpoint device is present and enabled. In addition, if the endpoint device plugs into a jack on the adapter, then the endpoint device is plugged in. - - - - - The audio endpoint device is disabled. The user has disabled the device in the Windows multimedia control panel, Mmsys.cpl. For more information, see Remarks. - - - - - he audio endpoint device is not present because the audio adapter that connects to the endpoint device has been removed from the system, or the user has disabled the adapter device in Device Manager. - - - - - The audio endpoint device is unplugged. The audio adapter that contains the jack for the endpoint device is present and enabled, but the endpoint device is not plugged into the jack. Only a device with jack-presence detection can be in this state. - - - - - Includes audio endpoint devices in all states—active, disabled, not present, and unplugged. - - - - - Encapsulates the generic features of a multimedia device resource. - - - - - Creates a COM object with the specified interface. - - The interface identifier. This parameter is a reference to a GUID that identifies the interface that the caller requests be activated. The caller will use this interface to communicate with the COM object. - The execution context in which the code that manages the newly created object will run. - Use as the default value. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd371405%28v=vs.85%29.aspx for more details. - Pointer to a pointer variable into which the method writes the address of the interface specified by parameter . - HRESULT - - - - Retrieves an interface to the device's property store. - - The storage-access mode. This parameter specifies whether to open the property store in read mode, write mode, or read/write mode. - Pointer to a pointer variable into which the method writes the address of the IPropertyStore interface of the device's property store. - HRESULT - - - - Retrieves an endpoint ID string that identifies the audio endpoint device. - - The variable which will receive the id of the device. - HRESULT - - - - Retrieves the current device state. - - The variable which will receive the of the device. - HRESULT - - - - Represents a collection of multimedia device resources. - - - - - The method retrieves a count of the devices in the device collection. - - Variable into which the method writes the number of devices in the device collection. - HRESULT - - - - The method retrieves a pointer to the specified item in the device collection. - - The device number. If the collection contains n devices, the devices are numbered 0 to n– 1. - The object of the specified item in the device collection. - HRESULT - - - - Provides methods for enumerating multimedia device resources. - - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - Pointer to a pointer variable into which the method writes the address of the COM object of the device-collection object. - HRESULT - - - - The method retrieves the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - Pointer to a pointer variable into which the method writes the address of the COM object of the endpoint object for the default audio endpoint device. - HRESULT - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - Pointer to a pointer variable into which the method writes the address of the IMMDevice interface for the specified device. Through this method, the caller obtains a counted reference to the interface. - HREUSLT - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - HRESULT - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - HRESULT - - - - Defines constants that indicate the role that the system has assigned to an audio endpoint device. - - - - - Games, system notification sounds, and voice commands. - - - - - Music, movies, narration, and live music recording. - - - - - Voice communications (talking to another person). - - - - - Specifies how to open a property store. - - - - - Readable only. - - - - - Writeable but not readable. - - - - - Read- and writeable. - - - - - Provides methods for enumerating multimedia device resources. - - - - - Returns the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. - - - - Returns the default audio endpoint for the specified data-flow direction and role. If no device is available the method returns null. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. If no device is available the method returns null. - - - - Generates a collection of all active audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - which contains the enumerated devices. - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - which contains the enumerated devices. - - - - Initializes a new instance of the class. - - - - - Gets the with the specified device id. - - - The . - - The device identifier. - - - - - Returns the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - instance of the endpoint object for the default audio endpoint device. - - - - The method retrieves the default audio endpoint for the specified data-flow direction and role. - - The data-flow direction for the endpoint device. - The role of the endpoint device. - A pointer variable into which the method writes the address of the COM object of the endpoint object for the default audio endpoint device. - HRESULT - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - which contains the enumerated devices. - - - - Generates a collection of audio endpoint devices that meet the specified criteria. - - The data-flow direction for the endpoint device. - The state or states of the endpoints that are to be included in the collection. - A pointer variable into which the method writes the address of the COM object of the device-collection object. - HRESULT - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - instance for specified device. - - - - Retrieves an audio endpoint device that is identified by an endpoint ID string. - - Endpoint ID. The caller typically obtains this string from the property or any method of the . - A pointer variable into which the method writes the address of the IMMDevice interface for the specified device. Through this method, the caller obtains a counted reference to the interface. - HREUSLT - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - - - - Registers a client's notification callback interface. - - Implementation of the which is should receive the notificaitons. - HRESULT - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - - - - Deletes the registration of a notification interface that the client registered in a previous call to the method. - - Implementation of the which should be unregistered from any notifications. - HRESULT - - - - Is used to create buffer objects, manage devices, and set up the environment. This object supersedes and adds new methods. - Obtain a instance by calling the method. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Ascertains whether the device driver is certified for DirectX. - - Receives a value which indicates whether the device driver is certified for DirectX. - DSResult - - - - Ascertains whether the device driver is certified for DirectX. - - A value which indicates whether the device driver is certified for DirectX. On emulated devices, the method returns . - - - - Used to create buffer objects, manage devices, and set up the environment. - - - - - Returns a new instance of the class. - - The device to use for the initialization. - The new instance of the class. - - - - Returns a new instance of the class. - - The device to use for the initialization. - The new instance of the class. - - - - Gets the capabilities. - - - - - Initializes a new instance of the class. - - The native pointer of the DirectSound COM object. - - - - Checks whether the specified is supported. - - The wave format. - A value indicating whether the specified is supported. If true, the is supported; Otherwise false. - - - - Sets the cooperative level of the application for this sound device. - - Handle to the application window. - The requested level. - - - - Sets the cooperative level of the application for this sound device. - - Handle to the application window. - The requested level. - DSResult - - - - Creates a sound buffer object to manage audio samples. - - A structure that describes the sound buffer to create. - Must be . - A variable that receives the IDirectSoundBuffer interface of the new buffer object. - For more information, see . - - - - Creates a sound buffer object to manage audio samples. - - A structure that describes the sound buffer to create. - Must be . - A variable that receives the IDirectSoundBuffer interface of the new buffer object. - DSResult - For more information, see . - - - - Retrieves the capabilities of the hardware device that is represented by the device object. - - - Receives the capabilities of this sound device. - DSResult - Use the property instead. - - - - Creates a new secondary buffer that shares the original buffer's memory. - - Type of the buffer to duplicate. - The buffer to duplicate. - The duplicated buffer. - For more information, see . - - - - Creates a new secondary buffer that shares the original buffer's memory. - - Address of the IDirectSoundBuffer or IDirectSoundBuffer8 interface of the buffer to duplicate. - Address of a variable that receives the IDirectSoundBuffer interface pointer for the new buffer. - DSResult - For more information, see . - - - - Has no effect. See remarks. - - This method was formerly used for compacting the on-board memory of ISA sound cards. - DSResult - - - - Has no effect. See remarks. - - This method was formerly used for compacting the on-board memory of ISA sound cards. - - - - Retrieves the speaker configuration. - - Retrieves the speaker configuration. - DSResult - - - - Retrieves the speaker configuration. - - The speaker configuration. - - - - Specifies the speaker configuration of the device. - - The speaker configuration. - DSResult - - In Windows Vista and later versions of Windows, is a NOP. For Windows Vista and later versions, the speaker configuration is a system setting that should not be modified by an application. End users can set the speaker configuration through control panels. - For more information, see . - - - - - Specifies the speaker configuration of the device. - - The speaker configuration. - - In Windows Vista and later versions of Windows, is a NOP. For Windows Vista and later versions, the speaker configuration is a system setting that should not be modified by an application. End users can set the speaker configuration through control panels. - For more information, see . - - - - - Initializes a device object that was created by using the CoCreateInstance function. - - The globally unique identifier (GUID) specifying the sound driver to which this device object binds. Pass null to select the primary sound driver. - DSResult - - - - Initializes a device object that was created by using the CoCreateInstance function. - - The globally unique identifier (GUID) specifying the sound driver to which this device object binds. Pass null to select the primary sound driver. - - - - Combines a value with a value. - - Must be . - The value to combine with the . - Combination out of the and the value. - Must be stereo.; speakerConfiguration - - - - Used to manage sound buffers. - - - - - Left only. - - - - - 50% left, 50% right. - - - - - Right only. - - - - - The default frequency. For more information, see . - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the capabilities of the buffer object. - - - - - Gets the status of the sound buffer. - - - - - Retrieves the capabilities of the buffer object. - - Receives the capabilities of this sound buffer. - DSResult - - - - Retrieves the capabilities of the buffer object. - - The capabilities of this sound buffer. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - Priority for the sound, used by the voice manager when assigning hardware mixing resources. The lowest priority is 0, and the highest priority is 0xFFFFFFFF. If the buffer was not created with the flag, this value must be 0. - - - - Causes the sound buffer to play, starting at the play cursor. - - Flags specifying how to play the buffer. - Priority for the sound, used by the voice manager when assigning hardware mixing resources. The lowest priority is 0, and the highest priority is 0xFFFFFFFF. If the buffer was not created with the flag, this value must be 0. - DSResult - - - - Causes the sound buffer to stop playing. - - For more information, see . - - - - Causes the sound buffer to stop playing. - - DSResult - For more information, see . - - - - Restores the memory allocation for a lost sound buffer. - - For more information, see . - - - - Restores the memory allocation for a lost sound buffer. - - DSResult - For more information, see . - - - - Readies all or part of the buffer for a data write and returns pointers to which data can be written. - - Offset, in bytes, from the start of the buffer to the point where the lock begins. This parameter is ignored if is specified in the parameter. - Size, in bytes, of the portion of the buffer to lock. The buffer is conceptually circular, so this number can exceed the number of bytes between and the end of the buffer. - Receives a pointer to the first locked part of the buffer. - Receives the number of bytes in the block at . If this value is less than , the lock has wrapped and points to a second block of data at the beginning of the buffer. - Receives a pointer to the second locked part of the capture buffer. If is returned, the parameter points to the entire locked portion of the capture buffer. - Receives the number of bytes in the block at . If is , this value is zero. - Flags modifying the lock event. - DSResult - - - - Readies all or part of the buffer for a data write and returns pointers to which data can be written. - - Offset, in bytes, from the start of the buffer to the point where the lock begins. This parameter is ignored if is specified in the parameter. - Size, in bytes, of the portion of the buffer to lock. The buffer is conceptually circular, so this number can exceed the number of bytes between and the end of the buffer. - Receives a pointer to the first locked part of the buffer. - Receives the number of bytes in the block at . If this value is less than , the lock has wrapped and points to a second block of data at the beginning of the buffer. - Receives a pointer to the second locked part of the capture buffer. If is returned, the parameter points to the entire locked portion of the capture buffer. - Receives the number of bytes in the block at . If is , this value is zero. - Flags modifying the lock event. - - - - Releases a locked sound buffer. - - Address of the value retrieved in the audioPtr1 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr1. - Address of the value retrieved in the audioPtr2 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr2. - DSResult - - - - Releases a locked sound buffer. - - Address of the value retrieved in the audioPtr1 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr1. - Address of the value retrieved in the audioPtr2 parameter of the method. - Number of bytes written to the portion of the buffer at audioPtr2. - - - - Retrieves the position of the play and write cursors in the sound buffer. - - Receives the offset, in bytes, of the play cursor. - Receives the offset, in bytes, of the write cursor. - DSResult - - - - Retrieves the position of the play and write cursors in the sound buffer. - - Receives the offset, in bytes, of the play cursor. - Receives the offset, in bytes, of the write cursor. - - - - Sets the position of the play cursor, which is the point at which the next byte of data is read from the buffer. - - Offset of the play cursor, in bytes, from the beginning of the buffer. - - - - Sets the position of the play cursor, which is the point at which the next byte of data is read from the buffer. - - Offset of the play cursor, in bytes, from the beginning of the buffer. - DSResult - - - - Initializes a sound buffer object if it has not yet been initialized. - - The device object associated with this buffer. - A structure that contains the values used to initialize this sound buffer. - DSResult - - - - Initializes a sound buffer object if it has not yet been initialized. - - The device object associated with this buffer. - A structure that contains the values used to initialize this sound buffer. - - - - Retrieves the status of the sound buffer. - - - Receives the status of the sound buffer. - DSResult - Use the property instead. - - - - Sets the frequency at which the audio samples are played. - - Frequency, in hertz (Hz), at which to play the audio samples. A value of resets the frequency to the default value of the buffer format. - DSResult - Before setting the frequency, you should ascertain whether the frequency is supported by checking the and members of the structure for the device. Some operating systems do not support frequencies greater than 100,000 Hz. - - - - Sets the frequency at which the audio samples are played. - - Frequency, in hertz (Hz), at which to play the audio samples. A value of resets the frequency to the default value of the buffer format. - Before setting the frequency, you should ascertain whether the frequency is supported by checking the and members of the structure for the device. Some operating systems do not support frequencies greater than 100,000 Hz. - - - - Retrieves the frequency, in samples per second, at which the buffer is playing. - - A variable that receives the frequency at which the audio buffer is being played, in hertz. - DSResult - - - - Gets the frequency, in samples per second, at which the buffer is playing. - - The frequency at which the audio buffer is being played, in hertz. - - - - Sets the relative volume of the left and right channels. - - Relative volume between the left and right channels. Must be between and . - DSResult - For more information, see . - - - - Sets the relative volume of the left and right channels. - - Relative volume between the left and right channels. Must be between and . - For more information, see . - - - - Sets the relative volume of the left and right channels as a scalar value. - - Relative volume between the left and right channels. Must be between -1.0 and 1.0. - A value of -1.0 will set the volume of the left channel to 100% and the volume of the right channel to 0%. - A value of 1.0 will set the volume of the left channel to 0% and the volume of the right channel to 100%. - - - - Retrieves the relative volume of the left and right audio channels. - - A variable that receives the relative volume, in hundredths of a decibel. - DSResult - - - - Retrieves the relative volume of the left and right audio channels. - - The relative volume, in hundredths of a decibel. - - - - Gets the relative volume of the left and right channels as a scalar value. - - The relative volume between the left and right channels. A value of -1.0 indicates that the volume of the left channel is set to 100% and the volume of the right channel to 0%. - A value of 1.0 indicates that the volume of the left channel is set to 0% and the volume of the right channel is set to 100%. - - - - Sets the attenuation of the sound. - - Attenuation, in hundredths of a decibel (dB). - DSResult - - - - Sets the attenuation of the sound. - - Attenuation, in hundredths of a decibel (dB). - - - - Sets the attenuation of the sound. - - The attenuation of the sound. The attenuation is expressed as a normalized value in the range from 0.0 to 1.0. - - - - Retrieves the attenuation of the sound. - - A variable that receives the attenuation, in hundredths of a decibel. - DSResult - - - - Returns the attenuation of the sound. - - The attenuation, in hundredths of a decibel. - - - - Returns the attenuation of the sound. - - The attenuation of the sound. The attenuation is expressed as a normalized value in the range from 0.0 to 1.0. - - - - Retrieves a description of the format of the sound data in the buffer, or the buffer size needed to retrieve the format description. - - Address of a or instance that receives a description of the sound data in the buffer. To retrieve the buffer size needed to contain the format description, specify . In this case the variable at receives the size of the structure needed to receive the data. - Size, in bytes, of the structure at . If is not , this value must be equal to or greater than the size of the expected data. - A variable that receives the number of bytes written to the structure at . - DSResult - - - - Returns a description of the format of the sound data in the buffer. - - A description of the format of the sound data in the buffer. The returned description is either of the type or of the type . - - - - Sets the format of the primary buffer. Whenever this application has the input focus, DirectSound will set the primary buffer to the specified format. - - A waveformat that describes the new format for the primary sound buffer. - DSResult - - - - Sets the format of the primary buffer. Whenever this application has the input focus, DirectSound will set the primary buffer to the specified format. - - A waveformat that describes the new format for the primary sound buffer. - - - - Enables effects on a buffer. For this method to succeed, CoInitialize must have been called. Additionally, the buffer must not be playing or locked. - - Number of elements in the effectDescriptions and resultCodes arrays. If this value is 0, effectDescriptions and resultCodes must both be . Set to 0 to remove all effects from the buffer. - Address of an array of DSEFFECTDESC structures, of size effectsCount, that specifies the effects wanted on the buffer. Must be if effectsCount is 0. - Address of an array of DWORD elements, of size effectsCount. - DSResult - - - - Allocates resources for a buffer that was created with the DSBCAPS_LOCDEFER flag in the DSBUFFERDESC structure. - - Flags specifying how resources are to be allocated for a buffer created with the DSBCAPS_LOCDEFER flag. - Number of elements in the resultCodes array, or 0 if resultCodes is . - Address of an array of DWORD variables that receives information about the effects associated with the buffer. This array must contain one element for each effect that was assigned to the buffer by . - DSResult - - - - Retrieves an interface for an effect object associated with the buffer. - - Unique class identifier of the object being searched for, such as GUID_DSFX_STANDARD_ECHO. Set this parameter to GUID_All_Objects to search for objects of any class. - Index of the object within objects of that class in the path. - Unique identifier of the desired interface. - Address of a variable that receives the desired interface pointer. - DSResult - For more information, see . - - - - Gets a value indicating whether the buffer is lost. True means that the buffer is lost; Otherwise False. - - - - - Writes data to the buffer by locking the buffer, copying data to the buffer and finally unlocking it. - - The data to write to the buffer. - The zero-based offset in the at which to start copying data. - The number of bytes to write. - Returns true if writing data was successful; Otherwise false. - - - - Writes data to the buffer by locking the buffer, copying data to the buffer and finally unlocking it. - - The data to write to the buffer. - The zero-based offset in the at which to start copying data. - The number of shorts to write. - Returns true if writing data was successful; Otherwise false. - - - - Describes the capabilities of a device. - - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - - - - Flags describing device capabilities. - - - - - Minimum sample rate specification that is supported by this device's hardware secondary sound buffers. - - - - - Maximum sample rate specification that is supported by this device's hardware secondary sound buffers. - - - - - Number of primary buffers supported. This value will always be 1. - - - - - Number of buffers that can be mixed in hardware. This member can be less than the sum of and . Resource tradeoffs frequently occur. - - - - - Maximum number of static buffers. - - - - - Maximum number of streaming sound buffers. - - - - - Number of unallocated buffers. On WDM drivers, this includes . - - - - - Number of unallocated static buffers. - - - - - Number of unallocated streaming buffers. - - - - - Maximum number of 3D buffers. - - - - - Maximum number of static 3D buffers. - - - - - Maximum number of streaming 3D buffers. - - - - - Number of unallocated 3D buffers. - - - - - Number of unallocated static 3D buffers. - - - - - Number of unallocated streaming 3D buffers. - - - - - Size, in bytes, of the amount of memory on the sound card that stores static sound buffers. - - - - - Size, in bytes, of the free memory on the sound card. - - - - - Size, in bytes, of the largest contiguous block of free memory on the sound card. - - - - - The rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the method. - - - - - The processing overhead, as a percentage of main processor cycles, needed to mix software buffers. This varies according to the bus type, the processor type, and the clock speed. - - - - - Represents a directsound-device. - - - - - The guid of the default playback device. - - - - - Gets the default playback device. - - - - - Enumerates all directsound-devices. Use the method instead. - - A list, containing all enumerated directsound-devices. - - - - Gets the textual description of the DirectSound device. - - - - - Gets the module name of the DirectSound driver corresponding to this device. - - - - - The that identifies the device being enumerated. - - - - - Initializes a new instance of the class. - - The description. - The module. - The unique identifier. - - - - Performs an explicit conversion from to . - - The device. - - The of the . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Provides the functionality to enumerate directsound devices installed on the system. - - - - - Enumerates the directsound devices installed on the system. - - A readonly collection, containing all enumerated devices. - - - - Exception class which represents all DirectSound related exceptions. - - - - - Initializes a new instance of the class. - - The Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class. - - The Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Gets the which got associated with the specified . - - - - - Throws an if the is not - . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Sets up notification events for a playback or capture buffer. - - - - - Returns a new instance of the class for the specified . - - The to create a instance for. - A new instance of the class for the specified - is null. - - - - Initializes a new instance of the class based on the native pointer. - - The native pointer of the COM object. - - - - Sets the notification positions. During capture or playback, whenever the read or play cursor reaches one of the specified offsets, the associated event is signaled. - - An array of structures. - - - - Sets the notification positions. During capture or playback, whenever the read or play cursor reaches one of the specified offsets, the associated event is signaled. - - An array of structures. - DSResult - - - - Represents a primary directsound buffer. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - The buffer description which describes the buffer to create. - - The is invalid. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Represents a secondary directsound buffer. - - - - - Initializes a new instance of the class. - - A instance which provides the method. - The of the sound buffer. - The buffer size. Internally, the will be set to * 2. - or - must be a value between 4 and 0x0FFFFFFF. - - - - Initializes a new instance of the class. - - A instance which provides the method. - The buffer description which describes the buffer to create. - - - The is invalid. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Defines possible flags for the method. - - - - - The default value. - - - - - Start the lock at the write cursor. The offset parameter is ignored. - - - - - Lock the entire buffer. The bytes parameter is ignored. - - - - - Flags specifying how to play a . - - For more information, see . - - - - None - - - - - After the end of the audio buffer is reached, play restarts at the beginning of the buffer. Play continues until explicitly stopped. This flag must be set when playing a primary buffer. - - - - - Play this voice in a hardware buffer only. If the hardware has no available voices and no voice management flags are set, the call to fails. This flag cannot be combined with . - - - - - Play this voice in a software buffer only. This flag cannot be combined with or any voice management flag. - - - - - If the hardware has no available voices, a currently playing nonlooping buffer will be stopped to make room for the new buffer. The buffer prematurely terminated is the one with the least time left to play. - - - - - If the hardware has no available voices, a currently playing buffer will be stopped to make room for the new buffer. The buffer prematurely terminated will be selected from buffers that have the buffer's flag set and are beyond their maximum distance. If there are no such buffers, the method fails. - - - - - If the hardware has no available voices, a currently playing buffer will be stopped to make room for the new buffer. The buffer prematurely terminated will be the one with the lowest priority as set by the priority parameter passed to for the buffer. - - - - - The structure describes a notification position. It is used by . - - - - - Zero offset. - - - - - Causes the event to be signaled when playback or capture stops, either because the end of the buffer has been reached (and playback or capture is not looping) or because the application called the or IDirectSoundCaptureBuffer8::Stop method. - - - - - Offset from the beginning of the buffer where the notify event is to be triggered, or . - - - - - Handle to the event to be signaled when the offset has been reached. - - - - - Initializes a new instance of the struct. - - The offset from the beginning of the buffer where the notify event is to be triggered. - Handle to the event to be signaled when the offset has been reached - - - - Defines flags that describe the status of a . - - - - - The buffer is playing. If this value is not set, the buffer is stopped. - - - - - The buffer is lost and must be restored before it can be played or locked. - - - - - The buffer is being looped. If this value is not set, the buffer will stop when it reaches the end of the sound data. This value is returned only in combination with . - - - - - The buffer is playing in hardware. Set only for buffers created with the flag. - - - - - The buffer is playing in software. Set only for buffers created with the flag. - - - - - The buffer was prematurely terminated by the voice manager and is not playing. Set only for buffers created with the flag. - - - - - Describes the capabilities of a DirectSound buffer object. It is used by the property. - - For more information, see . - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - Use the method to determine the size. - - - - Flags that specify buffer-object capabilities. - - - - - Size of this buffer, in bytes. - - - - - The rate, in kilobytes per second, at which data is transferred to the buffer memory when is called. High-performance applications can use this value to determine the time required for to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate. - - - - - The processing overhead as a percentage of main processor cycles needed to mix this sound buffer. For hardware buffers, this member will be zero because the mixing is performed by the sound device. For software buffers, this member depends on the buffer format and the speed of the system processor. - - - - - Flags that specify buffer-object capabilities. - - - - - None - - - - - The buffer is a primary buffer. - - - - - The buffer is in on-board hardware memory. - - - - - The buffer uses hardware mixing. - - - - - The buffer is in software memory and uses software mixing. - - - - - The buffer has 3D control capability. - - - - - The buffer has frequency control capability. - - - - - The buffer has pan control capability. - - - - - The buffer has volume control capability. - - - - - The buffer has position notification capability. - - - - - The buffer supports effects processing. - - - - - The buffer has sticky focus. If the user switches to another application not using DirectSound, the buffer is still audible. However, if the user switches to another DirectSound application, the buffer is muted. - - - - - The buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. - For more information, see . - - - - - The buffer uses the new behavior of the play cursor when is called. For more information, see . - - - - - The sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted. Applies only to software buffers. - - - - - The buffer can be assigned to a hardware or software resource at play time, or when is called. - - - - - Force to return the buffer's true play position. This flag is only valid in Windows Vista. - - - - - Describes the characteristics of a new buffer object. - - - - - Size of the structure, in bytes. This member must be initialized before the structure is used. - - Use the or the method to - - - - Flags specifying the capabilities of the buffer. - - - - - Size of the new buffer, in bytes. For more information, see . - - Must be a value between 4 and 0x0FFFFFFF. - - - - Address of a or class specifying the waveform format for the buffer. This value must be for primary buffers. - - - - - Unique identifier of the two-speaker virtualization algorithm to be used by DirectSound3D hardware emulation. If is not set in , this member must be . - For more information, see . - - - - - Flags describing device capabilities. - - - - - The driver has been tested and certified by Microsoft. This flag is always set for WDM drivers. To test for certification, use . - - - - - The device supports all sample rates between the and member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency. - - - - - The device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected. - - - - - None - - - - - The device supports a primary buffer with 16-bit samples. - - - - - The device supports primary buffers with 8-bit samples. - - - - - The device supports monophonic primary buffers. - - - - - The device supports stereo primary buffers. - - - - - The device supports hardware-mixed secondary sound buffers with 16-bit samples. - - - - - The device supports hardware-mixed secondary buffers with 8-bit samples. - - - - - The device supports hardware-mixed monophonic secondary buffers. - - - - - The device supports hardware-mixed stereo secondary buffers. - - - - - Defines possible return values for the method. - - For more information, see or . - - - - Driver is certified for DirectSound. - - - - - Driver is not certified for DirectSound. - - - - - Not supported. - - The method returned DSERR_UNSUPPORTED. - - - - Defines cooperative levels which can be set by calling the - method. - - For more information, see . - - - - Sets the normal level. This level has the smoothest multitasking and resource-sharing behavior, but because it does - not allow the primary buffer format to change, output is restricted to the default 8-bit format. - - - - - Sets the priority level. Applications with this cooperative level can call the SetFormat and Compact methods. - - - - - For DirectX 8.0 and later, has the same effect as . For previous versions, sets the - application to the exclusive level. This means that when it has the input focus, the application will be the only - one audible; sounds from applications with the GlobalFocus flag set will be muted. With this level, it also - has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by - the most recent call to the SetFormat method, after the application gains the input focus. - - - - - Sets the write-primary level. The application has write access to the primary buffer. No secondary buffers can be - played. This level cannot be set if the DirectSound driver is being emulated for the device; that is, if the - GetCaps method returns the DSCAPS_EMULDRIVER flag in the DSCAPS structure. - - - - - Defines possible DirectSound return values. - - For more information, see . - - - - The method succeeded. - - - - - The DirectSound subsystem could not allocate sufficient memory to complete the caller's request. - - - - - The requested COM interface is not available. - - - - - The buffer was created, but another 3D algorithm was substituted. - - - - - The method succeeded, but not all the optional effects were obtained. - - - - - The function called is not supported at this time. - - - - - An undetermined error occurred inside the DirectSound subsystem. - - - - - The request failed because access was denied. - - - - - An invalid parameter was passed to the returning function. - - - - - The request failed because resources, such as a priority level, were already in use by another caller. - - - - - The buffer control (volume, pan, and so on) requested by the caller is not available. Controls must be specified when the buffer is created, using the member of . - - - - - This function is not valid for the current state of this object. - - - - - A cooperative level of or higher is required. - - - - - The specified wave format is not supported. - - - - - No sound driver is available for use, or the given GUID is not a valid DirectSound device ID. - - - - - The object is already initialized. - - - - - The buffer memory has been lost and must be restored. - - - - - Another application has a higher priority level, preventing this call from succeeding. - - - - - The method has not been called or has not been called successfully before other methods were called. - - - - - The buffer size is not great enough to enable effects processing. - - - - - A DirectSound object of class CLSID_DirectSound8 or later is required for the requested functionality. - - - - - A circular loop of send effects was detected. - - - - - The GUID specified in an audiopath file does not match a valid mix-in buffer. - - - - - The effects requested could not be found on the system, or they are in the wrong order or in the wrong location; for example, an effect expected in hardware was found in software. - - - - - The requested object was not found. - - - - - Defines possible speaker configurations. - - - - - The audio is passed through directly, without being configured for speakers. - - - - - The audio is played through headphones. - - - - - The audio is played through a single speaker. - - - - - The audio is played through quadraphonic speakers. - - - - - The audio is played through stereo speakers (default value). - - - - - The audio is played through surround speakers. - - - - - The audio is played through a home theater speaker arrangement of five surround speakers with a subwoofer. - - Obsolete 5.1 setting. Use instead. - - - - The audio is played through a home theater speaker arrangement of seven surround speakers with a subwoofer. - - Obsolete 7.1 setting. Use instead. - - - - The audio is played through a home theater speaker arrangement of seven surround speakers with a subwoofer. This value applies to Windows XP SP2 or later. - - - - - The audio is played through a home theater speaker arrangement of five surround speakers with a subwoofer. This value applies to Windows Vista or later. - - - - - The audio is played through a wide speaker arrangement of seven surround speakers with a subwoofer. ( is still defined, but is obsolete as of Windows XP SP 2. Use instead.) - - - - - The audio is played through a speaker arrangement of five surround speakers with a subwoofer. ( is still defined, but is obsolete as of Windows Vista. Use instead.) - - - - - Defines values that can be combined with the value. - - To combine the a value with the stereo value, use the method. - - - - The speakers are directed over an arc of 5 degrees. - - - - - The speakers are directed over an arc of 10 degrees. - - - - - The speakers are directed over an arc of 20 degrees. - - - - - The speakers are directed over an arc of 180 degrees. - - - - - implementation for Dmo based streams. - - - - - Creates a new instance of the class. - - Base source of the . - - - - Gets or sets the position of the stream in bytes. - - - - - Gets the length of the stream in bytes. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the . - - - - - Gets inputData to feed the Dmo MediaObject with. - - - InputDataBuffer which receives the inputData. - If this parameter is null or the length is less than the amount of inputData, a new byte array will be applied. - - The requested number of bytes. - The number of bytes read. The number of actually read bytes does not have to be the number of requested bytes. - - - - Gets the input format to use. - - The input format. - Typically this is the of the . - - - - Defines DMO-Categories for enumerating DMOs. - - - - - All DMOs. - - - - - AudioEffects - - - - - AudioCaptureEffects - - - - - Category which includes audio decoder. - - - - - Category which includes audio encoder. - - - - - Defines flags that specify search criteria when enumerating Microsoft DirectX Media Objects. - For more information, see . - - - A software key enables the developer of a DMO to control who uses the DMO. If a DMO has a software key, - applications must unlock the DMO to use it. The method for unlocking the DMO depends on the implementation. Consult - the documentation for the particular DMO. - - - - - None - - - - - The enumeration should include DMOs whose use is restricted by a software key. If this flag is absent, keyed DMOs - are omitted from the enumeration. - - - - - Encapsulates the properties of an enumerated dmo. - - - - - Gets or sets the CLSID of the dmo. - - - - - Gets or sets the friendly name of the dmo. - - - - - Error codes that are specific to Microsoft DirectX Media Objects. - - - - - Invalid stream index. - - - - - Invalid media type. - - - - - Media type was not set. One or more streams require a media type before this operation can be performed. - - - - - Data cannot be accepted on this stream. You might need to process more output data; see MediaObject::ProcessInput - (-> http://msdn.microsoft.com/en-us/library/windows/desktop/dd406959(v=vs.85).aspx). - - - - - Media type was not accepted. - - - - - Media-type index is out of range. - - - - - Encapsulates the values retrieved by the method. - - - - - Initializes a new instance of the class. - - The minimum size of an input buffer for the stream, in bytes. - The required buffer alignment, in bytes. If the stream has no alignment requirement, the value is 1 - The maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does not perform a lookahead on the stream, the value is zero. - - - - Gets the maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does not perform a - lookahead on the stream, the value is zero. - - - - - Defines flags that describe an input stream. - - - - - None. - - - - - The stream requires whole samples. Samples must not span multiple buffers, and buffers must not contain partial - samples. - - - - - Each buffer must contain exactly one sample. - - - - - All the samples in this stream must be the same size. - - - - - The DMO performs lookahead on the incoming data, and may hold multiple input buffers for this stream. - - - - - Represents a Dmo output data buffer. For more details see . - - - - - Pointer to the interface of a buffer allocated by the application. - - - - - Status flags. After processing output, the DMO sets this member to a bitwise combination - of or more flags. - - - - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a - valid time stamp, the DMO sets this member and also sets the - flag in the dwStatus member. Otherwise, ignore this member. - - - - - Reference time specifying the length of the data in the buffer. If the DMO sets this - member to a valid value, it also sets the flag in the - dwStatus member. Otherwise, ignore this member. - - - - - Initializes a new instance of the struct. - - The maxlength (in bytes) of the internally used . - - - - Gets the length of the . - - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The number of read bytes. - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - The number of read bytes. - - - - Reads a sequence of bytes from the . - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - Zero-based offset inside of the source buffer at which to begin copying data. - The number of read bytes. - - - - Resets the Buffer. Sets the length of the to zero and sets the - to . - - - - - Disposes the internally used . - - - - - The enumeration defines flags that describe an output stream. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do not contain partial - samples. - - - - - Each buffer contains exactly one sample. - - - - - All the samples in this stream are the same size. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can discard data for this stream - without copying it to an output buffer. - - - - - The stream is optional. An optional stream is discardable. Also, the application can ignore this stream entirely; - it does not have to set the media type for the stream. Optional streams generally contain additional information, - or data not needed by all applications. - - - - - Describes a media type used by a Microsoft DirectX Media Object. - - For more informatin, see . - - - - Major type GUID. Use to match any major type. - - - - - Subtype GUID. Use to match any subtype. - - - - - Encapsulates the values retrieved by the - and the - method. - - - - - Initializes a new instance of the class. - - The minimum size of an input buffer for the stream, in bytes. - The required buffer alignment, in bytes. If the stream has no alignment requirement, the value is 1. - - - - Gets the minimum size of an input buffer for this stream, in bytes. - - - - - Gets the required buffer alignment, in bytes. If the input stream has no alignment requirement, the value is 1. - - - - - Base class for all Dmo based streams. - - - - - The default inputStreamIndex to use. - - - - - The default outputStreamIndex to use. - - - - - Gets the input format of the . - - - - - Reads a sequence of bytes from the stream. - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Gets or sets the position of the stream. - - - - - Gets the length of the stream. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the . - - - - - Gets the output format of the . - - - - - Gets inputData to feed the Dmo MediaObject with. - - - InputDataBuffer which receives the inputData. - If this parameter is null or the length is less than the amount of inputData, a new byte array will be applied. - - The requested number of bytes. - The number of bytes read. The number of actually read bytes does not have to be the number of requested bytes. - - - - Creates and returns a new instance to use for processing audio data. This can be a decoder, effect, ... - - The input format of the to create. - The output format of the to create. - The created to use for processing audio data. - - - - Gets the input format to use. - - The input format. - - - - Gets the output format to use. - - The output format. - - - - Initializes the DmoStream. Important: This has to be called before using the DmoStream. - - - - - Converts a position of the inputstream to the equal position in the outputstream. - - Any position/offset of the inputstream, in bytes. - Position in the outputstream, in bytes. - - - - Translates a position of the outputstream to the equal position in the inputstream. - - Any position/offset of the outputstream, in bytes. - Position in the inputstream, in bytes. - - - - Resets the overflowbuffer. - - - - - Releases the . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The depth. - - - - - The feedback. - - - - - The frequency. - - - - - The waveform. - - - - - The delay. - - - - - The phase. - - - - - Internal parameter structure for the effect. - - - - - The gain. - - - - - The attack. - - - - - The release. - - - - - The threshold. - - - - - The ratio. - - - - - The predelay. - - - - - Base class for any DirectSoundEffect. - - Parameters type. - - - - Default ctor for a ComObject. - - Pointer of a DirectSoundEffect interface. - - - - Gets or sets the Parameters of the Effect. - - - - - Gets the name of the COM interface. Used for generating error messages. - - - - - Sets the effects parameters. - - - Object that contains the new parameters of the effect. - HRESULT - Use the property instead. - - - - Retrieves the effects parameters. - - - A variable which retrieves the set parameters of the effect. - HRESULT - Use the property instead. - - - - The IDirectSoundFXChorus interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXChorus wrapper based on a pointer to a IDirectSoundFXChorus cominterface. - - Pointer of a DirectSoundFXChorus interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXCompressor interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXCompressor wrapper based on a pointer to a IDirectSoundFXCompressor cominterface. - - Pointer of a DirectSoundFXCompressor interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXDistortion interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXDistortion wrapper based on a pointer to a IDirectSoundFXDistortion cominterface. - - Pointer of a DirectSoundFXDistortion interface. - - - - Interface name used for generating DmoExceptions. - - - - - The IDirectSoundFXEcho interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXEcho wrapper based on a pointer to a IDirectSoundFXEcho cominterface. - - Pointer of a DirectSoundFXEcho interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXFlanger interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXFlanger wrapper based on a pointer to a IDirectSoundFXFlanger cominterface. - - Pointer of a DirectSoundFXFlanger interface. - - - - Interface name used for generating DmoExceptions. - - - - - The IDirectSoundFXChorus interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXGargle wrapper based on a pointer to a IDirectSoundFXGargle cominterface. - - Pointer of a DirectSoundFXGargle interface. - - - - Interface name used for generating DmoExceptions. - - - - - The DirectSoundFXReverb interface is used to set and retrieve effect parameters. - - - - - Creates a DirectSoundFXWavesReverb wrapper based on a pointer to a IDirectSoundFXWavesReverb cominterface. - - Pointer of a DirectSoundFXWavesReverb interface. - - - - Interface name used for generating DmoExceptions. - - - - - Internal parameter structure for the effect. - - - - - The gain. - - - - - The edge. - - - - - The post eq center frequency. - - - - - The post eq bandwidth. - - - - - The pre lowpass cutoff. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The feedback. - - - - - The left delay. - - - - - The right delay. - - - - - The pan delay. - - - - - Internal parameter structure for the effect. - - - - - The wet dry mix. - - - - - The depth. - - - - - The feedback. - - - - - The frequency. - - - - - The waveform. - - - - - The delay. - - - - - The phase. - - - - - Internal parameter structure for the effect. - - - - - The rate hz. - - - - - The wave shape. - - - - - Internal parameter structure for the effect. - - - - - The in gain. - - - - - The reverb mix. - - - - - The reverb time. - - - - - The high freq rt ratio. - - - - - Provides methods for enumerating Microsoft DirectX Media Objects. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Enumerates DMOs listed in the registry. The caller can search by category, media type, or both. - - - GUID that specifies which category of DMO to search. Use Guid.Empty to search every category. - See for a list of category guids. - - Flags that specify search criteria. - Array of input-Mediatypes. - Array of output-Mediatypes. - EnumDMO - - - - Enumerates DMOs listed in the registry. - - - GUID that specifies which category of DMO to search. Use Guid.Empty to search every category. - See for a list of category guids. - - Flags that specify search criteria. - An that can be used to iterate through the enumerated DMOs. - - - - Retrieves a specified number of items in the enumeration sequence. - - Number of items to retrieve. - Array that is filled with the CLSIDs of the enumerated DMOs. - Array that is filled with the friendly names of the enumerated DMOs. - Actual number of items retrieved. - HRESULT - - - - Retrieves a specified number of items in the enumeration sequence. - - Number of items to retrieve. - Array of enumerated DMOs. - - - - Skips over a specified number of items in the enumeration sequence. - - Number of items to skip. - HRESULT - - - - Skips over a specified number of items in the enumeration sequence. - - Number of items to skip. - - - - Resets the enumeration sequence to the beginning. - - HRESULT - - - - Resets the enumeration sequence to the beginning. - - - - - This method is not implemented. - - Reserved - - - - - This method is not implemented. - - This method is not implemented an will throw an with the error code . - - - - The interface provides methods for manipulating a data buffer. - - For more information, . - - - - The SetLength method specifies the length of the data currently in the buffer. - - Size of the data, in bytes. The value must not exceed the buffer's maximum size. Call the method to obtain the maximum size. - HRESULT - - - - The method retrieves the maximum number of bytes this buffer can hold. - - A variable that receives the buffer's maximum size, in bytes. - HRESULT - - - - The method retrieves the buffer and the size of the valid data in the buffer. - - Address of a pointer that receives the buffer array. Can be if is not . - Pointer to a variable that receives the size of the valid data, in bytes. Can be if is not . - HRESULT - - - - Defines flags that describe an input buffer. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375501(v=vs.85).aspx - - - - - None - - - - - The beginning of the data is a synchronization point. - - - - - The buffer's time stamp is valid. The buffer's indicated time length is valid. - - - - - The buffer's indicated time length is valid. - - - - - InputStatusFlags. - See also: http://msdn.microsoft.com/en-us/library/windows/desktop/dd406950(v=vs.85).aspx - - - - - None - - - - - The stream accepts data. - - - - - Defines flags that describe an input stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375502(v=vs.85).aspx. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do - not contain partial samples. - - - - - Each buffer contains exactly one sample. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can - discard data for this stream without copying it to an output buffer. - - - - - The DMO performs lookahead on the incoming data, and may hold multiple input buffers for - this stream. - - - - - Defines flags that describe an output buffer. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375508(v=vs.85).aspx. - - - - - None - - - - - The beginning of the data is a synchronization point. A synchronization point is a - random access point. For encoded video, this a sample that can be used as a decoding - start point (key frame). For uncompressed audio or video, every sample is a - synchronization point. - - - - - The buffer's time stamp is valid. The buffer's indicated time length is valid. - - - - - The buffer's indicated time length is valid. - - - - - There is still input data available for processing, but the output buffer is full. - - - - - Flags that describe an output stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375509(v=vs.85).aspx. - - - - - None - - - - - The stream contains whole samples. Samples do not span multiple buffers, and buffers do - not contain partial samples. - - - - - Each buffer contains exactly one sample. - - - - - All the samples in this stream are the same size. - - - - - The stream is discardable. Within calls to IMediaObject::ProcessOutput, the DMO can - discard data for this stream without copying it to an output buffer. - - - - - The stream is optional. An optional stream is discardable. Also, the application can - ignore this stream entirely; it does not have to set the media type for the stream. - Optional streams generally contain additional information, or data not needed by all - applications. - - - - - Defines flags that specify output processing requests. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375511(v=vs.85).aspx - - - - - None - - - - - Discard the output when the pointer to the output buffer is NULL. - - - - - Defines flags for setting the media type on a stream. - See http://msdn.microsoft.com/en-us/library/windows/desktop/dd375514(v=vs.85).aspx. - - - - - None - - - - - Test the media type but do not set it. - - - - - Clear the media type that was set for the stream. - - - - - Default-Implementation of the IMediaBuffer interface. - For more information, see . - - - - - Creates a MediaBuffer and allocates the specified number of bytes in the memory. - - The number of bytes which has to be allocated in the memory. - - - - Gets the maximum number of bytes this buffer can hold. - - - - - Gets the length of the data currently in the buffer. - - - - - Frees the allocated memory of the internally used buffer. - - - - - The SetLength method specifies the length of the data currently in the buffer. - - Size of the data, in bytes. The value must not exceed the buffer's maximum size. Call the method to obtain the maximum size. - HRESULT - - - - The method retrieves the maximum number of bytes this buffer can hold. - - A variable that receives the buffer's maximum size, in bytes. - HRESULT - - - - The method retrieves the buffer and the size of the valid data in the buffer. - - Address of a pointer that receives the buffer array. Can be if is not . - Pointer to a variable that receives the size of the valid data, in bytes. Can be if is not . - HRESULT - - - - Writes a sequence of bytes to the internally used buffer. - - - Array of bytes. The Write method copies data from the specified array of bytes to the internally - used buffer. - - - Zero-based bytes offset in the specified buffer at which to begin copying bytes to the internally - used buffer. - - The number of bytes to be copied. - - - - Reads a sequence of bytes from the internally used buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - - - - Reads a sequence of bytes from the buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - - - - Reads a sequence of bytes from the buffer. - - Array of bytes to store the read bytes in. - - Zero-based byte offset in the specified buffer at which to begin storing the data read from the - buffer. - - The maximum number of bytes to read from the buffer. - Zero-based offset inside of the source buffer at which to begin copying data. - - - - Frees the allocated memory of the internally used buffer. - - - - - Frees the allocated memory of the internally used buffer. - - - - - Represents a DMO MediaObject. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the number of input streams. - - - - - Gets the number of output streams. - - - - - Creates a MediaObject from any ComObjects. - - - Internally the IUnknown::QueryInterface method of the specified COM Object gets called. - - The COM Object to cast to a . - The . - - - - Retrieves the number of input and output streams. - - A variable that receives the number of input streams. - A variable that receives the number of output streams. - HRESULT - - - - Retrieves the number of input and output streams. - - A variable that receives the number of input streams. - A variable that receives the number of output streams. - - - - Retrieves information about a specified input stream. - - Zero-based index of an input stream on the DMO. - Bitwise combination of zero or more flags. - HRESULT - - - - Retrieves information about a specified input stream. - - Zero-based index of an input stream on the DMO. - The retrieved information about the specified input stream. - - - - Retrieves information about a specified output stream. - - Zero-based index of an output stream on the DMO. - Bitwise combination of zero or more flags. - HRESULT - - - - Retrieves information about a specified output stream. - - Zero-based index of an output stream on the DMO. - The information about the specified output stream. - - - - Retrieves a preferred media type for a specified input stream. - - Zero-based index on the set of acceptable media types. - - Can be null to check whether the typeIndex argument is in range. If not, the errorcode will be - (0x80040206). - - Zero-based index of an input stream on the DMO. - HRESULT - - - - Retrieves a preferred media type for a specified input stream. - - Zero-based index on the set of acceptable media types. - Zero-based index of an input stream on the DMO. - The preferred media type for the specified input stream. - - - - Retrieves a preferred media type for a specified output stream. - - Zero-based index on the set of acceptable media types. - - Can be null to check whether the typeIndex argument is in range. If not, the errorcode will be - (0x80040206). - - Zero-based index of an output stream on the DMO. - HRESULT - - - - Retrieves a preferred media type for a specified output stream. - - Zero-based index on the set of acceptable media types. - Zero-based index of an output stream on the DMO. - The preferred media type for the specified output stream. - - - - Sets the media type on an input stream, or tests whether a media type is acceptable. - - Zero-based index of an input stream on the DMO. - The new mediatype. - Bitwise combination of zero or more flags from the enumeration. - HRESULT - - - - Clears the inputtype for a specific input stream. - - Zero-based index of an input stream on the DMO. - - - - Sets the media type on an input stream. - - Zero-based index of an input stream on the DMO. - The new mediatype. - Bitwise combination of zero or more flags from the enumeration. - - - - Sets the media type on an input stream. - - Zero-based index of an input stream on the DMO. - The format to set as the new for the specified input stream. - - - - Tests whether the given is supported. - - Zero-based index of an input stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Tests whether the given is supported. - - Zero-based index of an input stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The new . - Bitwise combination of zero or more flags from the enumeration. - HRESULT - - - - Clears the outputtype for a specific output stream. - - Zero-based index of an output stream on the DMO. - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The new . - Bitwise combination of zero or more flags from the enumeration. - - - - Sets the on an output stream, or tests whether a is acceptable. - - Zero-based index of an output stream on the DMO. - The format to set as the new for the specified output stream. - - - - Tests whether the given is supported as OutputFormat. - - Zero-based index of an output stream on the DMO. - WaveFormat - True = supported, False = not supported - - - - Tests whether the given is supported. - - Zero-based index of an output stream on the DMO. - The to test whether it is supported. - True = supported, False = not supported - - - - Retrieves the media type that was set for an input stream, if any. - - Zero-based index of an input stream on the DMO. - A variable that receives the retrieved media type of the specified input stream. - HRESULT - - - - Retrieves the media type that was set for an input stream, if any. - - Zero-based index of an input stream on the DMO. - The retrieved media type of the specified input stream. - - - - Retrieves the media type that was set for an output stream, if any. - - Zero-based index of an output stream on the DMO. - A variable that receives the retrieved media type of the specified output stream. - HRESULT - - - - Retrieves the media type that was set for an output stream, if any. - - Zero-based index of an output stream on the DMO. - The media type that was set for the specified output stream. - - - - Retrieves the buffer requirements for a specified input stream. - - Zero-based index of an input stream on the DMO. - Minimum size of an input buffer for this stream, in bytes. - - The maximum amount of data that the DMO will hold for a lookahead, in bytes. If the DMO does - not perform a lookahead on the stream, the value is zero. - - - The required buffer alignment, in bytes. If the input stream has no alignment requirement, the - value is 1. - - HRESULT - - - - This method retrieves the buffer requirements for a specified input stream. - - Zero-based index of an input stream on the DMO. - The buffer requirements for the specified input stream. - - - - This method retrieves the buffer requirements for a specified output stream. - - Zero-based index of an output stream on the DMO. - Minimum size of an output buffer for this stream, in bytes. - - The required buffer alignment, in bytes. If the output stream has no alignment requirement, the - value is 1. - - HRESULT - - - - This method retrieves the buffer requirements for a specified output stream. - - Zero-based index of an output stream on the DMO. - The buffer requirements for the specified output stream. - - - - Retrieves the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Receives the maximum latency in reference type units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - - - - Retrieves the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - The maximum latency in reference type units. Unit = REFERENCE_TIME = 100 nanoseconds - - - - Sets the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Maximum latency in reference time units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - For the definition of maximum latency, see . - - - - Sets the maximum latency on a specified input stream. - - Zero-based index of an input stream on the DMO. - Maximum latency in reference time units. Unit = REFERENCE_TIME = 100 nanoseconds - HRESULT - For the definition of maximum latency, see . - - - - This method flushes all internally buffered data. - - HRESULT - - - - This method flushes all internally buffered data. - - - - - Signals a discontinuity on the specified input stream. - - Zero-based index of an input stream on the DMO. - HRESULT - A discontinuity represents a break in the input. A discontinuity might occur because no more data is expected, the format is changing, or there is a gap in the data. - After a discontinuity, the DMO does not accept further input on that stream until all pending data has been processed. - The application should call the method until none of the streams returns the (see ) flag. - This method might fail if it is called before the client sets the input and output types on the DMO. - - - - Signals a discontinuity on the specified input stream. - - Zero-based index of an input stream on the DMO. - A discontinuity represents a break in the input. A discontinuity might occur because no more data is expected, the format is changing, or there is a gap in the data. - After a discontinuity, the DMO does not accept further input on that stream until all pending data has been processed. - The application should call the method until none of the streams returns the (see ) flag. - This method might fail if it is called before the client sets the input and output types on the DMO. - - - - Allocates any resources needed by the DMO. Calling this method is always - optional. - - HRESULT - - For more information, see . - - - - - Allocates any resources needed by the DMO. Calling this method is always - optional. - - - For more information, see . - - - - - Frees resources allocated by the DMO. Calling this method is always optional. - - HREUSLT - - For more information, see . - - - - - Frees resources allocated by the DMO. Calling this method is always optional. - - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - The queried input status. - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - A variable that receives either or . - HRESULT - - For more information, see . - - - - - Queries whether an input stream can accept more input data. - - Zero-based index of an input stream on the DMO. - If the return value is True, the input stream can accept more input data. Otherwise false. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a valid - time stamp, set the Time flag in the flags parameter. - - - Reference time specifying the duration of the data in the buffer. If the buffer has a valid - time stamp, set the TimeLength flag in the flags parameter. - - - - - Delivers a buffer to the specified input stream. - - Zero-based index of an input stream on the DMO. - The to process. - Bitwise combination of or more flags from the enumeration. - - Time stamp that specifies the start time of the data in the buffer. If the buffer has a valid - time stamp, set the Time flag in the flags parameter. - - - Reference time specifying the duration of the data in the buffer. If the buffer has a valid - time stamp, set the TimeLength flag in the flags parameter. - - HRESULT - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - Number of output buffers. - - - - Generates output from the current input data. - - Bitwise combination of or more flags from the enumeration. - An array of output buffers to process. - Number of output buffers. - Receives a reserved value (zero). The application should ignore this value. - HREUSLT - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - - Value that specifies whether to acquire or release the lock. If the value is non-zero, a lock is - acquired. If the value is zero, the lock is released. - - HRESULT - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - - Value that specifies whether to acquire or release the lock. If the value is non-zero, a lock is - acquired. If the value is zero, the lock is released. - - - - - Acquires or releases a lock on the DMO. Call this method to keep the DMO serialized when performing multiple - operations. - - A disposable object which can be used to unlock the by calling its method. - - This example shows how to use the method: - - partial class TestClass - { - public void DoStuff(MediaObject mediaObject) - { - using(var lock = mediaObject.Lock()) - { - //do some stuff - } - //the mediaObject gets automatically unlocked by the using statement after "doing your stuff" - } - } - - - - - - Used to unlock a after locking it by calling the method. - - - - - Unlocks the locked . - - - - - The structure describes the format of the data used by a stream in a Microsoft DirectX Media Object (DMO). - For more information, . - - - - - Creates a MediaType based on a given WaveFormat. Don't forget to call Free() for the returend MediaType. - - WaveFormat to create a MediaType from. - Dmo MediaType - - - - A GUID identifying the stream's major media type. This must be one of the DMO Media - Types(see ). - - - - - Subtype GUID of the stream. - - - - - If TRUE, samples are of a fixed size. This field is informational only. For audio, it is - generally set to TRUE. For video, it is usually TRUE for uncompressed video and FALSE - for compressed video. - - - - - If TRUE, samples are compressed using temporal (interframe) compression. A value of TRUE - indicates that not all frames are key frames. This field is informational only. - - - - - Size of the sample, in bytes. For compressed data, the value can be zero. - - - - - GUID specifying the format type. The pbFormat member points to the corresponding format - structure. (see ) - - - - - Size of the format block of the media type. - - - - - Pointer to the format structure. The structure type is specified by the formattype - member. The format structure must be present, unless formattype is GUID_NULL or - FORMAT_None. - - - - - Frees the allocated members of a media type structure by calling the MoFreeMediaType function. - - - - - Sets properties on the audio resampler DSP. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - - - - Specifies the channel matrix. - - An array of floating-point values that represents a channel conversion matrix. - - Use the class to build the channel-conversation-matrix and its - method to convert the channel-conversation-matrix into a - compatible array which can be passed as value for the parameter. - For more information, - . - - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - HRESULT - - - - Specifies the channel matrix. - - An array of floating-point values that represents a channel conversion matrix. - HRESULT - - Use the class to build the channel-conversation-matrix and its - method to convert the channel-conversation-matrix into a - compatible array which can be passed as value for the parameter. - For more information, - . - - - - - DirectX Media Object COM Exception - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Specifies the quality of the output. - - - Specifies the quality of the output. The valid range is 1 to 60, - inclusive. - - HRESULT - - - - Used to apply a bandpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Represents a biquad-filter. - - - - - The a0 value. - - - - - The a1 value. - - - - - The a2 value. - - - - - The b1 value. - - - - - The b2 value. - - - - - The q value. - - - - - The gain value in dB. - - - - - The z1 value. - - - - - The z2 value. - - - - - Gets or sets the frequency. - - value;The samplerate has to be bigger than 2 * frequency. - - - - Gets the sample rate. - - - - - The q value. - - - - - Gets or sets the gain value in dB. - - - - - Initializes a new instance of the class. - - The sample rate. - The frequency. - - sampleRate - or - frequency - or - q - - - - - Initializes a new instance of the class. - - The sample rate. - The frequency. - The q. - - sampleRate - or - frequency - or - q - - - - - Processes a single sample and returns the result. - - The input sample to process. - The result of the processed sample. - - - - Processes multiple samples. - - The input samples to process. - The result of the calculation gets stored within the array. - - - - Calculates all coefficients. - - - - - Represents an element inside of a . - - - - - Gets the assigned input channel of the . - - - - - Gets the assigned output channel of the . - - - - - Gets or sets the coefficient in the range from 0.0f to 1.0f. - - - - - Initializes a new instance of the class. - - The input channel. - The output channel. - - - - Provides an Fast Fourier Transform implementation including a few utils method which are commonly used in combination with FFT (e.g. the hamming window function). - - - - - Obsolete. Use the property instead. - - - - The intensity of the complex value . - sqrt(r² + i²) - - - - Implementation of the Hamming Window using double-precision floating-point numbers. - - Current index of the input signal. - Window width. - Hamming window multiplier. - - - - Hamming window implementation using single-precision floating-point numbers. - - Current index of the input signal. - Window width. - Hamming Window multiplier. - - - - Computes an Fast Fourier Transform. - - Array of complex numbers. This array provides the input data and is used to store the result of the FFT. - The exponent n. - The to use. Use as the default value. - - - - Computes an Fast Fourier Transform. - - Array of complex numbers. This array provides the input data and is used to store the result of the FFT. - The exponent n. - The to use. Use as the default value. - - - - Provides FFT calculations. - - - Usage: Use the -method to input samples to the . Use the method to - calculate the Fast Fourier Transform. - - - - - Gets the specified fft size. - - - - - Gets a value which indicates whether new data is available. - - - - - Initializes a new instance of the class. - - Number of channels of the input data. - The number of bands to use. - is less than zero. - - - - Adds a and a sample to the . The and the sample will be merged together. - - The sample of the left channel. - The sample of the right channel. - - - - Adds multiple samples to the . - - Float Array which contains samples. - Number of samples to add to the . - - - - Calculates the Fast Fourier Transform and stores the result in the . - - The output buffer. - Returns a value which indicates whether the Fast Fourier Transform got calculated. If there have not been added any new samples since the last transform, the FFT won't be calculated. True means that the Fast Fourier Transform got calculated. - - - - Calculates the Fast Fourier Transform and stores the result in the . - - The output buffer. - Returns a value which indicates whether the Fast Fourier Transform got calculated. If there have not been added any new samples since the last transform, the FFT won't be calculated. True means that the Fast Fourier Transform got calculated. - - - - Fft mode. - - - - - Forward - - - - - Backward - - - - - Defines FFT data size constants that can be used for FFT calculations. - Note that only the half of the specified size can be used for visualizations. - - - - - 64 bands. - - - - - 128 bands. - - - - - 256 bands. - - - - - 512 bands. - - - - - 1024 bands. - - - - - 2014 bands. - - - - - 4096 bands. - - - - - 8192 bands. - - - - - 16384 bands. - - - - - Used to apply a highpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply a highshelf-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - Gain value in dB. - - - - Calculates all coefficients. - - - - - Used to apply a lowpass-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply a lowshelf-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - Gain value in dB. - - - - Calculates all coefficients. - - - - - Used to apply a notch-filter to a signal. - - - - - Initializes a new instance of the class. - - The sample rate. - The filter's corner frequency. - - - - Calculates all coefficients. - - - - - Used to apply an peak-filter to a signal. - - - - - Gets or sets the bandwidth. - - - - - Initializes a new instance of the class. - - The sampleRate of the audio data to process. - The center frequency to adjust. - The bandWidth. - The gain value in dB. - - - - Calculates all coefficients. - - - - - Represents a channel conversion matrix. For more information, see - . - - - - - Defines a stereo to 5.1 surround (with rear) channel conversion matrix. - - - - - Defines a 5.1 surround (with rear) to stereo channel conversion matrix. - - - - - Defines a stereo to 5.1 surround (with side) channel conversion matrix. - - - - - Defines a 5.1 surround (with side) to stereo channel conversion matrix. - - - - - Defines a stereo to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to stereo channel conversion matrix. - - - - - Defines a mono to 5.1 surround (with rear) channel conversion matrix. - - - - - Defines a 5.1 surround (with rear) to mono channel conversion matrix. - - - - - Defines a mono to 5.1 surround (with side) channel conversion matrix. - - - - - Defines a 5.1 surround (with side) to mono channel conversion matrix. - - - - - Defines a mono to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround channel to mono conversion matrix. - - - - - Defines a stereo to mono conversion matrix. - - - - - Defines a mono to stereo conversion matrix. - - - - - Defines a 5.1 surround (with rear) to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to 5.1 surround (with rear) channel conversion matrix - - - - - Defines a 5.1 surround (with side) to 7.1 surround channel conversion matrix. - - - - - Defines a 7.1 surround to 5.1 surround (with side) channel conversion matrix - - - - - Gets a to convert between the two specified s. - - The of the input stream. - The desired of the output stream. - A to convert between the two specified s. - equals - No accurate was found. - - - - Gets a to convert between the two specified formats. - - The input waveformat. - The output waveformat. - A to convert between the two specified formats. - If no channelmask could be found, the return value is null. - - The channelmask of the input format equals the channelmask of the output format. - No accurate was found. - - - - Initializes a new instance of the class. - - The of the input signal. - The of the output signal. - Invalid /. - - - - Gets the of the input signal. - - - - - Gets the of the output signal. - - - - - Gets the number of rows of the channel conversion matrix. - - - - - Gets the number of columns of the channel conversion matrix. - - - - - Gets the input signals number of channels. - - - The property always returns the same value as the - property. - - - - - Gets the output signals number of channels. - - - The property always returns the same value as the - property. - - - - - Gets or sets a of the . - - The zero-based index of the input channel. - The zero-based index of the output channel. - The of the at the specified position. - - - - Sets the channel conversion matrix. - The x-axis of the specifies the output channels. The y-axis - of the specifies the input channels. - - Channel conversion matrix to use. - - - - Returns a one dimensional array which contains the channel conversion matrix coefficients. - - A one dimensional array which contains the channel conversion matrix coefficients - - This method is primarily used in combination with the - method. - - - - - Flips the axis of the matrix and returns the new matrix with the flipped axis. - - A matrix with flipped axis. - - This could be typically used in the following scenario: There is a - 5.1 to stereo matrix. By using the method the 5.1 to stereo matrix can be - converted into a stereo to 5.1 matrix. - - - - - Resampler based on the which can change the number of channels based on a - . Supported since Windows XP. - - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - source - or - channelMatrix - or - outputFormat - - The number of channels of the source has to be equal to the number of input channels specified by the channelMatrix. - - - - Initializes a new instance of the class. - - Underlying source which has to get resampled. - which defines how to map each channel. - The destination sample rate. - - - - Gets the channel matrix. - - If any changes to the channel matrix are made, use the method to commit them. - - - - Commits all channel-matrix-changes. - - - - - Resampler based on the DmoResampler. Supported since Windows XP. - - - - - Initializes a new instance of the class. - - which has to get resampled. - The new output samplerate specified in Hz. - - - - Initializes a new instance of the class. - - which has to get resampled. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - - - Initializes a new instance of the class. - - which has to get resampled. - Waveformat, which specifies the new format. Note, that by far not all formats are supported. - - True to ignore the position of the for more accurate seeking. The default value is True. - For more details see remarks. - - Since the resampler transforms the audio data of the to a different samplerate, - the position might differ from the actual amount of read data. In order to avoid that behavior set - to True. This will cause the property to return the number of actually read bytes. - Note that seeking the won't have any effect on the of the . - - - - Gets the new output format. - - - - - Gets or sets the position of the source. - - - - - Gets the length of the source. - - - - - Specifies the quality of the output. The valid range is from 1 to 60. - - Specifies the quality of the resampled output. The valid range is: 1 >= value <= 60. - - - - Reads a resampled sequence of bytes from the and advances the position within the - stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Disposes the allocated resources of the resampler but does not dispose the underlying source. - - - - - Disposes the . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Provides a basic fluent API for creating a source chain. - - - - - Appends a source to an already existing source. - - Input - Output - Already existing source. - Function which appends the new source to the already existing source. - The return value of the delegate. - - - - Appends a source to an already existing source. - - Input - Output - Already existing source. - Function which appends the new source to the already existing source. - Receives the return value. - The return value of the delegate. - - - - Changes the SampleRate of an already existing wave source. - - Already existing wave source whose sample rate has to be changed. - Destination sample rate. - Wave source with the specified . - - - - Changes the SampleRate of an already existing sample source. Note: This extension has to convert the - to a and back to a . - - Already existing sample source whose sample rate has to be changed. - Destination sample rate. - Sample source with the specified . - - - - Converts the specified wave source with n channels to a wave source with two channels. - Note: If the has only one channel, the - extension has to convert the to a and back to a - . - - Already existing wave source. - instance with two channels. - - - - Converts the specified sample source with n channels to a wave source with two channels. - Note: If the has more than two channels, the - extension has to convert the to a - and back to a . - - Already existing sample source. - instance with two channels. - - - - Converts the specified wave source with n channels to a wave source with one channel. - Note: If the has two channels, the extension - has to convert the to a and back to a - . - - Already existing wave source. - instance with one channel. - - - - Converts the specified sample source with n channels to a wave source with one channel. - Note: If the has only one channel, the - extension has to convert the to a and back to a - . - - Already existing sample source. - instance with one channels - - - - Appends a new instance of the class to the audio chain. - - The underlying which should be looped. - The new instance instance. - - - - Converts a SampleSource to either a Pcm (8, 16, or 24 bit) or IeeeFloat (32 bit) WaveSource. - - Sample source to convert to a wave source. - Bits per sample. - Wave source - - - - Converts a to IeeeFloat (32bit) . - - The to convert to a . - The wrapped around the specified . - - - - Converts a to a . - - The to convert to a . - The wrapped around the specified . - - - - Returns a thread-safe (synchronized) wrapper around the specified object. - - The object to synchronize. - Type of the argument. - The type of the data read by the Read method of the method. - A thread-safe wrapper around the specified object. - The is null. - - - - Defines a generic base for all readable audio streams. - - The type of the provided audio data. - - - - Reads a sequence of elements from the and advances the position within the - stream by the - number of elements read. - - - An array of elements. When this method returns, the contains the specified - array of elements with the values between and ( + - - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - The total number of elements read into the buffer. - - - - Provides the method. - - - - - Used to write down raw byte data. - - Byte array which contains the data to write down. - Zero-based offset in the . - Number of bytes to write. - - - - Defines the CLSID values for several common mediafoundation audio decoders. - - - - - CLSID_CMSDDPlusDecMFT - - - - - CLSID_CMSMPEGAudDecMFT - - - - - CMSAACDecMFT - - - - - CWMADecMediaObject - - - - - CALawDecMediaObject - - - - - ACM Wrapper - - - - - CWMAudioSpdTxDMO - - - - - CWMSPDecMediaObject - - - - - Wrapper - - - - - IMA ADPCM ACM Wrapper - - - - - CMP3DecMediaObject - - - - - ADPCM ACM Wrapper - - - - - see http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx - - - - - The is a generic decoder for all installed Mediafoundation codecs. - - - - - Initializes a new instance of the class. - - Uri which points to an audio source which can be decoded. - - - - Initializes a new instance of the class. - - Stream which provides the audio data to decode. - - - - Initializes a new instance of the class. - - Stream which provides the audio data to decode. - - - - Reads a sequence of bytes from the and advances the position within the - stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Disposes the . - - - - - Gets the format of the decoded audio data provided by the method. - - - - - Gets or sets the position of the output stream, in bytes. - - - - - Gets the total length of the decoded audio, in bytes. - - - - - Gets a value which indicates whether the seeking is supported. True means that seeking is supported. False means - that seeking is not supported. - - - - - Disposes the and its internal resources. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - A generic encoder for all installed Mediafoundation-Encoders. - - - - - Creates an new instance of the class. - - Mediatype of the source to encode. - Stream which will be used to store the encoded data. - The format of the encoded data. - See container type. For a list of all available container types, see . - - - - Gets the total duration of all encoded data. - - - - - Gets the underlying stream which operates as encoding target. - - - - - Gets the media type of the encoded data. - - - - - Gets the which is used to write to the . - - - - - Gets the destination stream which is used to store the encoded audio data. - - - - - Releases all resources used by the encoder and finalizes encoding. - - - - - Encodes raw audio data. - - A byte-array which contains raw data to encode. - The zero-based byte offset in buffer at which to begin encoding bytes to the underlying stream. - The number of bytes to encode. - - - - Sets and initializes the targetstream for the encoding process. - - Stream which should be used as the targetstream. - Mediatype of the raw input data to encode. - Mediatype of the encoded data. - Container type which should be used. - - - - Disposes the . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - Encodes the whole with the specified . The encoding process - stops as soon as the method of the specified - returns 0. - - The encoder which should be used to encode the audio data. - The which provides the raw audio data to encode. - - - - Returns a new instance of the class, configured as mp3 encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as mp3 encoder. - - - - Returns a new instance of the class, configured as mp3 encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as mp3 encoder. - - - - Returns a new instance of the class, configured as wma encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as wma encoder. - - - - Returns a new instance of the class, configured as wma encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as wma encoder. - - - - Returns a new instance of the class, configured as aac encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The file to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as aac encoder. - - - - Returns a new instance of the class, configured as aac encoder. - - The input format, of the data to encode. - The bitrate to use. The final bitrate can differ from the specified value. - The stream to write to. - For more information about supported input and output formats, see . - A new instance of the class, configured as aac encoder. - - - - Tries to find the which fits best the requested format specified by the parameters: - , , and - . - - The audio subtype. For more information, see the class. - The requested sample rate. - The requested number of channels. - The requested bit rate. - - A which fits best the requested format. If no mediatype could be found the - method returns null. - - - - - Returns all s available for encoding the specified . - - The audio subtype to search available s for. - Available s for the specified . If the returns an empty array, no encoder for the specified was found. - - - - Enables the application to defer the creation of an object. This interface is exposed by activation objects. - - For more information, see . - - - - Initializes a new instance of the class. - - The underlying native pointer. - - - - Creates the object associated with this activation object. - - Interface identifier (IID) of the requested interface. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Creates the object associated with this activation object. - - - - The type of the com object to create. - Interface identifier (IID) of the requested interface. - An instance of the requested interface. - - - - Creates the object associated with this activation object. - - Interface identifier (IID) of the requested interface. - A pointer to the requested interface. The caller must release the interface. - - - - Shuts down the created object. - - - HRESULT - - - - Shuts down the created object. - - - - - Detaches the created object from the activation object. - - - HRESULT - - - - Detaches the created object from the activation object. - - - - - Gets the name of the MFT. - - - - - Gets the available input types. - - - - - Gets the available output types. - - - - - Contains media type information for registering a Media Foundation transform (MFT). - - - - - The major media type. - - - - - The media subtype. - - - - - Represents a byte stream from some data source, which might be a local file, a network file, or some other source. The interface supports the typical stream operations, such as reading, writing, and seeking. - - - - - Gets the characteristics of the . - - - - - Gets or sets the length of the stream in bytes. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class which acts as a wrapper for the specified to use it in a media foundation context. - - The stream to wrap for media foundation usage. - A value indicating whether the should be closed when the - method is being called. - - - - Retrieves the characteristics of the byte stream. - - Receives a bitwise OR of zero or more flags. - HRESULT - Use the property for easier usage with automated error handling. - - - - Retrieves the length of the stream. - - Receives the length of the stream, in bytes. If the length is unknown, this value is -1. - HRESULT - Use the property for easier usage with automated error handling. - - - - Sets the length of the stream. - - The length of the stream in bytes. - HRESULT - Use the property for easier usage with automated error handling. - - - - Retrieves the current read or write position in the stream. - - The current position, in bytes. - HRESULT - - - - Sets the current read or write position. - - New position in the stream, as a byte offset from the start of the stream. - HRESULT - - - - Gets or sets the current read/write position in bytes. - - - - - Gets a value indicating whether the has reached the end of the stream. - - - - - Queries whether the current position has reached the end of the stream. - - Receives the value if the end of the stream has been reached, or otherwise. - HREUSLT - - - - Reads data from the stream. - - Pointer to a buffer that receives the data. The caller must allocate the buffer. - Size of the buffer in bytes. - Receives the number of bytes that are copied into the buffer. - HRESULT - - - - Reads data from the stream. - - The buffer that receives the data. - The number of bytes to read. - HRESULT - buffer is null. - count is bigger than the length of the buffer. - - - - Begins an asynchronous read operation from the stream. - - Pointer to a buffer that receives the data. The caller must allocate the buffer. - Size of the buffer in bytes. - Pointer to the IMFAsyncCallback interface of a callback object. The caller must implement this interface. - Pointer to the IUnknown interface of a state object, defined by the caller. Can be Zero. - HRESULT - - - - Completes an asynchronous read operation. - - Pointer to the IMFAsyncResult interface. Pass in the same pointer that your callback object received in the IMFAsyncCallback::Invoke method. - Receives the number of bytes that were read. - HRESULT - - - - Writes data to the stream. - - Pointer to a buffer that contains the data to write. - Size of the buffer in bytes. - Receives the number of bytes that are written. - HRESULT - - - - Writes data to the stream. - - Buffer that contains the data to write. - The number of bytes to write. - The number of bytes that were written. - buffer is null. - count is bigger than the length of the buffer. - - - - Begins an asynchronous write operation to the stream. - - Pointer to a buffer containing the data to write. - Size of the buffer in bytes. - Pointer to the IMFAsyncCallback interface of a callback object. The caller must implement this interface. - Pointer to the IUnknown interface of a state object, defined by the caller. Can be Zero. - HRESULT - - - - Completes an asynchronous write operation. - - Pointer to the IMFAsyncResult interface. Pass in the same pointer that your callback object received in the IMFAsyncCallback::Invoke method. - Receives the number of bytes that were written. - HRESULT - - - - Moves the current position in the stream by a specified offset. - - Specifies the origin of the seek as a member of the enumeration. The offset is calculated relative to this position. - Specifies the new position, as a byte offset from the seek origin. - Specifies whether all pending I/O requests are canceled after the seek request completes successfully. - Receives the new position after the seek. - The new position after the seek. - - - - Moves the current position in the stream by a specified offset. - - Specifies the origin of the seek as a member of the enumeration. The offset is calculated relative to this position. - Specifies the new position, as a byte offset from the seek origin. - Specifies whether all pending I/O requests are canceled after the seek request completes successfully. - The new position after the seek. - - - - Clears any internal buffers used by the stream. If you are writing to the stream, the buffered data is written to the underlying file or device. - - HRESULT - - - - Clears any internal buffers used by the stream. If you are writing to the stream, the buffered data is written to the underlying file or device. - - - - - Closes the stream and releases any resources associated with the stream, such as sockets or file handles. This method also cancels any pending asynchronous I/O requests. - - HRESULT - - - - Closes the stream and releases any resources associated with the stream, such as sockets or file handles. This method also cancels any pending asynchronous I/O requests. - - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Defines the characteristics of a . - - - - - None - - - - - The byte stream can be read. - - - - - The byte stream can be written to. - - - - - The byte stream can be seeked. - - - - - The byte stream is from a remote source, such as a network. - - - - - The byte stream represents a file directory. - - - - - Seeking within this stream might be slow. For example, the byte stream might download from a network. - - - - - The byte stream is currently downloading data to a local cache. Read operations on the byte stream might take longer until the data is completely downloaded.This flag is cleared after all of the data has been downloaded. - If the flag is also set, it means the byte stream must download the entire file sequentially. Otherwise, the byte stream can respond to seek requests by restarting the download from a new point in the stream. - - - - - Another thread or process can open this byte stream for writing. If this flag is present, the length of the byte stream could change while it is being read. - - Requires Windows 7 or later. - - - - The byte stream is not currently using the network to receive the content. Networking hardware may enter a power saving state when this bit is set. - - Requires Windows 8 or later. - - - - Specifies the origin for a seek request. - - - - - The seek position is specified relative to the start of the stream. - - - - - The seek position is specified relative to the current read/write position in the stream. - - - - - Provides the functionality to enumerate Mediafoundation-Transforms. - - - - - Enumerates Mediafoundation-Transforms that match the specified search criteria. - - A that specifies the category of MFTs to enumerate. - For a list of MFT categories, see . - The bitwise OR of zero or more flags from the enumeration. - Specifies an input media type to match. This parameter can be null. If null, all input types are matched. - Specifies an output media type to match. This parameter can be null. If null, all output types are matched. - A that can be used to iterate through the MFTs. - - - - Enumerates Media Foundation transforms (MFTs) in the registry. - - A that specifies the category of MFTs to enumerate. - For a list of MFT categories, see . - Specifies an input media type to match. This parameter can be null. If null, all input types are matched. - Specifies an output media type to match. This parameter can be null. If null, all output types are matched. - An array of CLSIDs. For more information, see . - On Windows 7/Windows Server 2008 R2, use the method instead. - - - - Defines the characteristics of a media source. - - For more information, see . - - - - This flag indicates a data source that runs constantly, such as a live presentation. If the source is stopped and then restarted, there will be a gap in the content. - - - - - The media source supports seeking. - - - - - The source can pause. - - - - - The media source downloads content. It might take a long time to seek to parts of the content that have not been downloaded. - - - - - The media source delivers a playlist, which might contain more than one entry. - - Requires Windows 7 or later. - - - - The media source can skip forward in the playlist. Applies only if the flag is present. - - Requires Windows 7 or later. - - - - The media source can skip backward in the playlist. Applies only if the flag is present. - - Requires Windows 7 or later. - - - - The media source is not currently using the network to receive the content. Networking hardware may enter a power saving state when this bit is set. - - Requires Windows 8 or later. - - - - Defines common audio subtypes. - - - - - Advanced Audio Coding (AAC). - - - - - Not used - - - - - Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). - - - - - Encrypted audio data used with secure audio path. - - - - - Digital Theater Systems (DTS) audio. - - - - - Uncompressed IEEE floating-point audio. - - - - - MPEG Audio Layer-3 (MP3). - - - - - MPEG-1 audio payload. - - - - - Windows Media Audio 9 Voice codec. - - - - - Uncompressed PCM audio. - - - - - Windows Media Audio 9 Professional codec over S/PDIF. - - - - - Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. - - - - - Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. - - - - - Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. - - - - - Dolby Digital (AC-3). - - - - - MPEG-4 and AAC Audio Types - - - - - Dolby Audio Types - - - - - Dolby Audio Types - - - - - μ-law coding - - - - - Adaptive delta pulse code modulation (ADPCM) - - - - - Dolby Digital Plus formatted for HDMI output. - - - - - MSAudio1 - unknown meaning - Reference : wmcodecdsp.h - - - - - IMA ADPCM ACM Wrapper - - - - - WMSP2 - unknown meaning - Reference: wmsdkidl.h - - - - - Currently no flags are defined. - - - - - None - - - - - Implemented by the Microsoft Media Foundation sink writer object. - - - - - Stream index to selected all streams. - - - - - MF_SINK_WRITER_MEDIASINK constant. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class with a underlying . - - The underlying to use. - Attributes to configure the . For more information, see . Use null/nothing as the default value. - - - - Adds a stream to the sink writer. - - - The target mediatype which specifies the format of the samples that will be written to the file. It does not need to match the input format. To set the input format, call . - Receives the zero-based index of the new stream. - HRESULT - - - - Adds a stream to the sink writer. - - The target mediatype which specifies the format of the samples that will be written to the file. It does not need to match the input format. To set the input format, call . - The zero-based index of the new stream. - - - - Sets the input format for a stream on the sink writer. - - - The zero-based index of the stream. The index is returned by the method. - The input media type that specifies the input format. - An attribute store. Use the attribute store to configure the encoder. This parameter can be NULL. - HRESULT - - - - Sets the input format for a stream on the sink writer. - - The zero-based index of the stream. The index is returned by the method. - The input media type that specifies the input format. - An attribute store. Use the attribute store to configure the encoder. This parameter can be NULL. - - - - Initializes the sink writer for writing. - - - HRESULT - - - - Initializes the sink writer for writing. - - - - - Delivers a sample to the sink writer. - - - The zero-based index of the stream for this sample. - The sample to write. - HRESULT - You must call before calling this method. - - - - Delivers a sample to the sink writer. - - The zero-based index of the stream for this sample. - The sample to write. - You must call before calling this method. - - - - Indicates a gap in an input stream. - - - The zero-based index of the stream. - The position in the stream where the gap in the data occurs. The value is given in 100-nanosecond units, relative to the start of the stream. - HRESULT - - - - Indicates a gap in an input stream. - - The zero-based index of the stream. - The position in the stream where the gap in the data occurs. The value is given in 100-nanosecond units, relative to the start of the stream. - - - - Places a marker in the specified stream. - - - The zero-based index of the stream. - Pointer to an application-defined value. The value of this parameter is returned to the caller in the pvContext parameter of the caller's IMFSinkWriterCallback::OnMarker callback method. The application is responsible for any memory allocation associated with this data. This parameter can be NULL. - HRESULT - - - - Places a marker in the specified stream. - - The zero-based index of the stream. - Pointer to an application-defined value. The value of this parameter is returned to the caller in the pvContext parameter of the caller's IMFSinkWriterCallback::OnMarker callback method. The application is responsible for any memory allocation associated with this data. This parameter can be NULL. - - - - Notifies the media sink that a stream has reached the end of a segment. - - - The zero-based index of a stream, or to signal that all streams have reached the end of a segment. - HRESULT - - - - Notifies the media sink that a stream has reached the end of a segment. - - The zero-based index of a stream, or to signal that all streams have reached the end of a segment. - - - - Flushes one or more streams. - - - The zero-based index of the stream to flush, or to flush all of the streams. - HRESULT - - - - Flushes one or more streams. - - The zero-based index of the stream to flush, or to flush all of the streams. - - - - Completes all writing operations on the sink writer. - - - HRESULT - - - - Completes all writing operations on the sink writer. - - Renamed from 'Finalize' to 'FinalizeWriting' to suppress "CS0465 warning". - - - - Queries the underlying media sink or encoder for an interface. - - - The zero-based index of a stream to query, or to query the media sink itself. - A service identifier GUID, or . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls IMFGetService::GetService. - For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Queries the underlying media sink or encoder for an interface. - - The zero-based index of a stream to query, or to query the media sink itself. - A service identifier GUID, or . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls IMFGetService::GetService. - For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - A pointer to the requested interface. The caller must release the interface. - - - - Gets statistics about the performance of the sink writer. - - The zero-based index of a stream to query, or to query the media sink itself. - Receives statistics about the performance of the sink writer. - HRESULT - - - - Gets statistics about the performance of the sink writer. - - The zero-based index of a stream to query, or to query the media sink itself. - Statistics about the performance of the sink writer. - - - - Contains statistics about the performance of the sink writer. - - - - - The size of the structure, in bytes. - - - - - The time stamp of the most recent sample given to the sink writer. The sink writer updates this value each time the application calls . - - - - - The time stamp of the most recent sample to be encoded. The sink writer updates this value whenever it calls IMFTransform::ProcessOutput on the encoder. - - - - - The time stamp of the most recent sample given to the media sink. The sink writer updates this value whenever it calls IMFStreamSink::ProcessSample on the media sink. - - - - - The time stamp of the most recent stream tick. The sink writer updates this value whenever the application calls . - - - - - The system time of the most recent sample request from the media sink. The sink writer updates this value whenever it receives an MEStreamSinkRequestSample event from the media sink. The value is the current system time. - - - - - The number of samples received. - - - - - The number of samples encoded. - - - - - The number of samples given to the media sink. - - - - - The number of stream ticks received. - - - - - The amount of data, in bytes, currently waiting to be processed. - - - - - The total amount of data, in bytes, that has been sent to the media sink. - - - - - The number of pending sample requests. - - - - - The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. - - - - - The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder. - - - - - The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. - - - - - Defines flags that indicate the status of the method. - - - - - None - - - - - An error occurred. If you receive this flag, do not make any further calls to - methods. - - - - - The source reader reached the end of the stream. - - - - - One or more new streams were created. - - - - - The native format has changed for one or more streams. The native format is the format delivered by the media - source before any decoders are inserted. - - - - - The current media has type changed for one or more streams. To get the current media type, call the - method. - - - - - There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. - - - - - All transforms inserted by the application have been removed for a particular stream. This could be due to a - dynamic format change from a source or decoder that prevents custom transforms from being used because they cannot - handle the new media type. - - - - - Defines categories for Media Foundation transforms (MFTs). These categories are used to register and enumerate MFTs. - - For more information, see . - - - - Audio decoders. - - - - - Audio encoders. - - - - - Audio effects. - - - - - Video encoders. - - - - - Video decoders. - - - - - Video effects. - - - - - Video processors. - - - - - Demultiplexers. - - - - - Multiplexers. - - - - - Miscellaneous MFTs. - - - - - Defines flags for registering and enumeration Media Foundation transforms (MFTs). - - - - - None - - - - - The MFT performs synchronous data processing in software. - This flag does not apply to hardware transforms. - - - - - The MFT performs asynchronous data processing in software. See . - This flag does not apply to hardware transforms. - - - - - The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. MFTs in this category always process data asynchronously. - See . - - - - - Must be unlocked by the app before use. For more information, see . - - - - - For enumeration, include MFTs that were registered in the caller's process. - - - - - The MFT is optimized for transcoding rather than playback. - - - - - For enumeration, sort and filter the results. For more information, see . - - - - - Bitwise OR of all the flags, excluding . - - - - - Contains media type information for registering a Media Foundation transform (MFT). - - - - - The major media type. - - - - - The media subtype. - - - - - Defines flags for the method. - - - - - None - - - - - Retrieve any pending samples, but do not request any more samples from the media source. To get all of the pending samples, call with this flag until the method returns a NULL media sample pointer. - - - - - Defines the GUIDs for different types of container formats. - - - - - MPEG2 - - - - - ADTS - - - - - AC3 - - - - - 3GP - - - - - MP3 - - - - - MPEG4 - - - - - ASF - - - - - FMPEG4 - - - - - AMR - - - - - WAVE - - - - - AVI - - - - - Mediafoundation COM Exception - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not - . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Indicates the degree of similarity between the two media types. - - - - - None - - - - - The major types are the same. - - - - - The subtypes are the same, or neither media type has a subtype. - - - - - The attributes in one of the media types are a subset of the attributes in the other, and the values of these - attributes match, excluding the value of the MF_MT_USER_DATA, MF_MT_FRAME_RATE_RANGE_MIN, and - MF_MT_FRAME_RATE_RANGE_MAX attributes. - - - - - The user data is identical, or neither media type contains user data. User data is specified by the MF_MT_USER_DATA - attribute. - - - - - Represents a MediaFoundation-attribute. - - The type of the value of the - - - - Gets the key of the attribute. - - - - - Gets the value of the attribute. - - - - - Initializes a new instance of the class. - - The key. - The value. - - - - Specifies how to compare the attributes on two objects. - - - - - Check whether all the attributes in pThis exist in pTheirs and have the same data, where pThis is the object whose - method is being called and pTheirs is the object given in the pTheirs - parameter. - - - - - Check whether all the attributes in pTheirs exist in pThis and have the same data, where pThis is the object whose - method is being called and pTheirs is the object given in the pTheirs - parameter. - - - - - Check whether both objects have identical attributes with the same data. - - - - - Check whether the attributes that exist in both objects have the same data. - - - - - Find the object with the fewest number of attributes, and check if those attributes exist in the other object and - have the same data. - - - - - Provides a generic way to store key/value pairs on an object. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a initial size. - - The initial size in bytes. - - - - Gets or sets an item specified by its index. - - The index of the item. - - - - Gets or sets an item specified by its key. - - The key of the item. - - - - Gets the number of attributes that are set on this object. - - - - - Retrieves the value associated with a key. - - A that identifies which value to retrieve. - A pointer to a that receives the value. - HRESULT - - For more information, see - . - - - - - Retrieves the value associated with a key. - - A that identifies which value to retrieve. - A that receives the value. - - For more information, see - . - - - - - Retrieves the data type of the value associated with a key. - - that identifies which value to query. - The type of the item, associated with the specified . - HRESULT - - For more information, see - . - - - - - Retrieves the data type of the value associated with a key. - - that identifies which value to query. - The type of the item, associated with the specified . - - For more information, see - . - - - - - Queries whether a stored attribute value equals a specified . - - that identifies which value to query. - that contains the value to compare. - - Receives a boolean value indicating whether the attribute matches the value given in - . - - HRESULT - - For more information, see - . - - - - - Queries whether a stored attribute value equals a specified . - - that identifies which value to query. - that contains the value to compare. - A boolean value indicating whether the attribute matches the value given in . - - For more information, see - . - - - - - Compares the attributes on this object with the attributes on another object. - - The interface of the object to compare with this object. - A value, specifying the type of comparison to make. - - Receives a Boolean value. The value is if the two sets of - attributes match in the way specified by the parameter. Otherwise, the value is - . - - HRESULT - - - - Compares the attributes on this object with the attributes on another object. - - The interface of the object to compare with this object. - A value, specifying the type of comparison to make. - - Returns true if the two sets of attributes match in the way specified by the - parameter; otherwise, false. - - - - - Retrieves a UINT32 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a UINT32 value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a UINT32 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a UINT64 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a UINT64 value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a UINT64 value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a Double value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a Double value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a Double value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a Guid value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Receives a Guid value. If the key is found and the data type is , the method - copies the - value into this parameter. - - HRESULT - - - - Retrieves a Guid value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves the length of a string value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , - this parameter receives the number of characters in the string, not including the terminating NULL character. - - HRESULT - - - - Retrieves the length of a string value associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - If the key is found and the data type is , - this method returns the number of characters in the string, not including the terminating NULL character. - - - - Retrieves a wide-character string associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - Pointer to a wide-character array allocated by the caller. - The array must be large enough to hold the string, including the terminating NULL character. - If the key is found and the value is a string type, the method copies the string into this buffer. - To find the length of the string, call . - - The size of the pwszValue array, in characters. This value includes the terminating NULL character. - Receives the number of characters in the string, excluding the terminating NULL character. This parameter can be NULL. - HRESULT - - - - Retrieves a wide-character string associated with a key. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the data type is , the method returns the - associated value. - - - - - Retrieves a wide-character string associated with a key. This method allocates the - memory for the string. - - - that identifies which value to retrieve. The attribute type must be - . - - - If the key is found and the value is a string type, this parameter receives a copy of the string. The caller must free the memory for the string by calling . - - - Receives the number of characters in the string, excluding the terminating NULL character. - HRESULT - - Don't use the method. Use the method instead. - - - - - Retrieves the length of a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this parameter receives the size of the array, in bytes. - HRESULT - - - - Retrieves the length of a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this method returns the size of the array, in bytes. - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - Pointer to a buffer allocated by the caller. If the key is found and the value is a byte array, the method copies the array into this buffer. To find the required size of the buffer, call . - The size of the buffer, in bytes. - Receives the size of the byte array. This parameter can be . - HRESULT - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - The byte array associated with the . - - - - Retrieves an object associated with a key. - - that identifies which value to retrieve. The attribute type must be . - The type of the object (type of the returned object -> see return value). - The object associated with the . - Type is null. - Internally this method retrieves a byte-array with gets converted to a instance of the specified . - - - - Retrieves a byte array associated with a key. - - that identifies which value to retrieve. The attribute type must be . - If the key is found and the value is a byte array, this parameter receives a copy of the array. - Receives the size of the array, in bytes. - HRESULT - - Obsolete, use the method instead. - - - - - Retrieves an interface pointer associated with a key. - - that identifies which value to retrieve. The attribute type must be . - Interface identifier (IID) of the interface to retrieve. - Receives a pointer to the requested interface. The caller must release the interface. - HRESULT - - - - Associates an attribute value with a key. - - A that identifies the value to set. If this key already exists, the method overwrites the old value. - A that contains the attribute value. The method copies the value. The type must be one of the types listed in the enumeration. - HRESULT - - - - Associates an attribute value with a key. - - A that identifies the value to set. If this key already exists, the method overwrites the old value. - A that contains the attribute value. The method copies the value. The type must be one of the types listed in the enumeration. - - - - Removes a key/value pair from the object's attribute list. - - that identifies the value to delete. - HRESULT - - - - Removes a key/value pair from the object's attribute list. - - that identifies the value to delete. - - - - Removes all key/value pairs from the object's attribute list. - - HRESULT - - - - Removes all key/value pairs from the object's attribute list. - - - - - Associates a UINT32 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a UINT32 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a UINT64 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a UINT64 value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a Double value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a Double value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - - - - Associates a value with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - - - - Associates a wide-character string with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - HRESULT - Internally this method stores a copy of the string specified by the parameter. - - - - Associates a wide-character string with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - New value for this key. - Internally this method stores a copy of the string specified by the parameter. - - - - Associates a byte array with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - Pointer to a byte array to associate with this key. The method stores a copy of the array. - Size of the array, in bytes. - HRESULT - - - - Associates a byte array with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - The byte array to associate with the - - - - Associates an IUnknown pointer with a key. - - that identifies the value to set. If this key already exists, the method overwrites the old value. - IUnknown pointer to be associated with this key. - HRESULT - - - - Locks the attribute store so that no other thread can access it. If the attribute store is already locked by another thread, this method blocks until the other thread unlocks the object. After calling this method, call to unlock the object. - - HRESULT - - - - Locks the attribute store so that no other thread can access it. If the attribute store is already locked by another thread, this method blocks until the other thread unlocks the object. After calling this method, call to unlock the object. - - - - - Unlocks the attribute store after a call to the method. While the object is unlocked, multiple threads can access the object's attributes. - - HRESULT - - - - Unlocks the attribute store after a call to the method. While the object is unlocked, multiple threads can access the object's attributes. - - - - - Retrieves the number of attributes that are set on this object. - - Receives the number of attributes. - HRESULT - - - - Retrieves the number of attributes that are set on this object. - - Returns the number of attributes. - - - - Retrieves an attribute at the specified index. - - Index of the attribute to retrieve. To get the number of attributes, call . - Receives the that identifies this attribute. - Pointer to a that receives the value. This parameter can be . If it is not , the method fills the with a copy of the attribute value. Call to free the memory allocated by this method. - HRESULT - - - - Retrieves an attribute at the specified index. - - Index of the attribute to retrieve. To get the number of attributes, call . - Receives the that identifies this attribute. - Returns the value of the attribute specified by the . - - - - Copies all of the attributes from this object into another attribute store. - - The attribute store that recevies the copy. - HRESULT - - - - Copies all of the attributes from this object into another attribute store. - - The attribute store that recevies the copy. - - - - Determines whether the attribute store contains an attribute with the specified . - - The key of the attribute. - True if the attribute exists; otherwise, false - An unexpected error occurred. - - - - Gets the item which got associated with the specified . - - The key of the item. - The item which got associated with the specified . - The value type of the associated item is not supported. - - - - Gets the item which got associated with the specified . - - The key of the item. - Type of the returned item. - The item which got associated with the specified . - The specified is not supported. - - - - Sets the value of a property specified by its . - - The key of the property. - The value to set. - The type of the property. - The specified is not supported. - - - - Sets the value of a property specified by the key of the object. - - The type of the property. - Specifies the key of the property and the new value to set. - - - - Defines data types for key/value pairs. - - - - - Unsigned 32-bit integer. - - - - - Unsigned 64-bit integer. - - - - - Floating-point number. - - - - - value. - - - - - Wide-character string. - - - - - Byte array. - - - - - IUnknown pointer. - - - - - Represents a block of memory that contains media data. Use this interface to access the data in the buffer. - - - - - Gets or sets the length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - - - - - Gets the allocated size of the buffer, in bytes. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class with the specified maximum . - - The size of the in bytes. The specified will be the of the constructed . - The caller needs to release the allocated memory by disposing the . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - Receives a pointer to the start of the buffer. - Receives the maximum amount of data that can be written to the buffer. The same value is returned by the method. - Receives the length of the valid data in the buffer, in bytes. The same value is returned by the method. - HRESULT - When you are done accessing the buffer, call to unlock the buffer. You must call once for each call to . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - Receives the maximum amount of data that can be written to the buffer. The same value is returned by the method. - Receives the length of the valid data in the buffer, in bytes. The same value is returned by the method. - A pointer to the start of the buffer. - When you are done accessing the buffer, call to unlock the buffer. You must call once for each call to . - - - - Gives the caller access to the memory in the buffer, for reading or writing. - - A disposable object which provides the information returned by the method. Call its method to unlock the . - - This example shows how to use the method: - - partial class TestClass - { - public void DoStuff(MFMediaBuffer mediaBuffer) - { - using(var lock = mediaBuffer.Lock()) - { - //do some stuff - } - //the mediaBuffer gets automatically unlocked by the using statement after "doing your stuff" - } - } - - - - - - Unlocks a buffer that was previously locked. Call this method once for every call to . - - HRESULT - - - - Unlocks a buffer that was previously locked. Call this method once for every call to . - - - - - Retrieves the length of the valid data in the buffer. - - - Receives the length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - HRESULT - - - - Retrieves the length of the valid data in the buffer. - - - The length of the valid data, in bytes. If the buffer does not contain any valid data, the value is zero. - - - - Sets the length of the valid data in the buffer. - - - Length of the valid data, in bytes. This value cannot be greater than the allocated size of the buffer, which is returned by the method. - HRESULT - - - - Sets the length of the valid data in the buffer. - - - Length of the valid data, in bytes. This value cannot be greater than the allocated size of the buffer, which is returned by the method. - - - - Retrieves the allocated size of the buffer. - - - Receives the allocated size of the buffer, in bytes. - HRESULT - - - - Retrieves the allocated size of the buffer. - - - The allocated size of the buffer, in bytes. - - - - Used to unlock a after locking it by calling the method. - - - - - Gets a pointer to the start of the buffer. - - - - - Gets the maximum amount of data that can be written to the buffer. - - - - - Gets the length of the valid data in the buffer, in bytes. - - - - - Unlocks the locked . - - - - - Represents a description of a media format. - - - - - Creates an empty . - - Returns an empty . - - - - Creates a new based on a specified . - - which should be "converted" to a . - Returns a new . - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets or sets the number of channels. - - - - - Gets or sets the number of bits per sample. - - - - - Gets or sets the number of samples per second (for one channel each). - - - - - Gets or sets the channelmask. - - - - - Gets or sets the average number of bytes per second. - - - - - Gets or sets the audio subtype. - - - - - Gets or sets the major type. - - - - - Gets a value, indicating whether the media type is a temporally compressed format. - Temporal compression uses information from previously decoded samples when - decompressing the current sample. - - - - - Gets the major type of the format. - - Receives the major type . - The major type describes the broad category of the format, such as audio or video. For a list of possible values, see . - HRESULT - - - - Gets the major type of the format. - - The major type . The major type describes the broad category of the format, such as audio or video. For a list of possible values, see . - - - - Queries whether the media type is a temporally compressed format. Temporal compression - uses information from previously decoded samples when decompressing the current sample. - - Receives a Boolean value. The value is TRUE if the format uses temporal compression, or FALSE if the format does not use temporal compression. - HRESULT - - - - Queries whether the media type is a temporally compressed format. Temporal compression - uses information from previously decoded samples when decompressing the current sample. - - if the format uses temporal compression. if the format does not use temporal compression. - - - - Compares two media types and determines whether they are identical. If they are not - identical, the method indicates how the two formats differ. - - The to compare. - Receives a bitwise OR of zero or more flags, indicating the degree of similarity between the two media types. - HRESULT - - - - Compares two media types and determines whether they are identical. If they are not - identical, the method indicates how the two formats differ. - - The to compare. - A bitwise OR of zero or more flags, indicating the degree of similarity between the two media types. - - - - Retrieves an alternative representation of the media type. Currently only the DirectShow - AM_MEDIA_TYPE structure is supported. - - that specifies the representation to retrieve. The following values are defined. - Receives a pointer to a structure that contains the representation. The method allocates the memory for the structure. The caller must release the memory by calling . - HRESULT - For more information, see . - - - - Retrieves an alternative representation of the media type. Currently only the DirectShow - AM_MEDIA_TYPE structure is supported. - - that specifies the representation to retrieve. The following values are defined. - A pointer to a structure that contains the representation. The method allocates the memory for the structure. The caller must release the memory by calling . - For more information, see . - - - - Frees memory that was allocated by the method. - - that was passed to the method. - Pointer to the buffer that was returned by the method. - HRESULT - For more information, see . - - - - Frees memory that was allocated by the method. - - that was passed to the method. - Pointer to the buffer that was returned by the method. - For more information, see . - - - - Converts the to a . - - Contains a flag from the enumeration. - The which got created based on the . - - - - Represents a media sample, which is a container object for media data. For video, a sample typically contains one video frame. For audio data, a sample typically contains multiple audio samples, rather than a single sample of audio. - - - - - Initializes a new instance of the class. - - Calls the MFCreateSample function. - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To get attibutes from a sample, use the object, which - inherits. - - Receives the value . - HRESULT - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To get attibutes from a sample, use the object, which - inherits. - - Returns the . - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To set attibutes on a sample, use the object, which - IMFSample inherits. - - Must be . - HRESULT - - - - Currently no flags are defined. Instead, metadata for samples is defined using - attributes. To set attibutes on a sample, use the object, which - IMFSample inherits. - - Must be . - - - - Retrieves the presentation time of the sample. - - Presentation time, in 100-nanosecond units. - HRESULT - - - - Retrieves the presentation time of the sample. - - Presentation time, in 100-nanosecond units. - - - - Sets the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - HRESULT - - - - Sets the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - - - - Retrieves the presentation time of the sample. - - Receives the presentation time, in 100-nanosecond units. - HRESULT - - - - Retrieves the presentation time of the sample. - - The presentation time, in 100-nanosecond units. - - - - Sets the duration of the sample. - - Duration of the sample, in 100-nanosecond units. - HRESULT - - - - Sets the duration of the sample. - - Duration of the sample, in 100-nanosecond units. - - - - Retrieves the number of buffers in the sample. - - Receives the number of buffers in the sample. A sample might contain zero buffers. - HRESULT - - - - Retrieves the number of buffers in the sample. - - The number of buffers in the sample. A sample might contain zero buffers. - - - - Gets a buffer from the sample, by index. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - Receives the instance. The caller must release the object. - HRESULT - - Note: In most cases, it is safer to use the method. - If the sample contains more than one buffer, the method replaces them with a single buffer, copies the original data into that buffer, and returns the new buffer to the caller. - The copy operation occurs at most once. On subsequent calls, no data is copied. - - - - - Gets a buffer from the sample, by index. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - The instance. The caller must release the object. - - Note: In most cases, it is safer to use the method. - If the sample contains more than one buffer, the method replaces them with a single buffer, copies the original data into that buffer, and returns the new buffer to the caller. - The copy operation occurs at most once. On subsequent calls, no data is copied. - - - - - Converts a sample with multiple buffers into a sample with a single buffer. - - Receives a instance. The caller must release the instance. - HRESULT - - - - Converts a sample with multiple buffers into a sample with a single buffer. - - A instance. The caller must release the instance. - - - - Adds a buffer to the end of the list of buffers in the sample. - - The to add. - HRESULT - - - - Adds a buffer to the end of the list of buffers in the sample. - - The to add. - - - - Removes a buffer at a specified index from the sample. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - HRESULT - - - - Removes a buffer at a specified index from the sample. - - Index of the buffer. To find the number of buffers in the sample, call . Buffers are indexed from zero. - - - - Removes all of the buffers from the sample. - - HRESULT - - - - Removes all of the buffers from the sample. - - - - - Retrieves the total length of the valid data in all of the buffers in the sample. The length is calculated as the sum of the values retrieved by the method. - - Receives the total length of the valid data, in bytes. - HRESULT - - - - Retrieves the total length of the valid data in all of the buffers in the sample. The length is calculated as the sum of the values retrieved by the method. - - The total length of the valid data, in bytes. - - - - Copies the sample data to a buffer. This method concatenates the valid data from all of the buffers of the sample, in order. - - The object of the destination buffer. - The buffer must be large enough to hold the valid data in the sample. - To get the size of the data in the sample, call . - HRESULT - - - - Copies the sample data to a buffer. This method concatenates the valid data from all of the buffers of the sample, in order. - - The object of the destination buffer. - The buffer must be large enough to hold the valid data in the sample. - To get the size of the data in the sample, call . - - - - Implemented by the Microsoft Media Foundation source reader object. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Initializes a new instance of the class based on a given . - - The URL. - - - - Gets a value indicating whether this instance can seek. - - - true if this instance can seek; otherwise, false. - - - - - Gets the media source characteristics. - - - The media source characteristics. - - - - - Queries whether a stream is selected. - - The stream to query. For more information, see . - Receives if the stream is selected and will generate data. Receives if the stream is not selected and will not generate data. - HRESULT - - - - Queries whether a stream is selected. - - The stream to query. For more information, see . - if the stream is selected and will generate data; if the stream is not selected and will not generate data. - - - - Selects or deselects one or more streams. - - The stream to set. For more information, see . - Specify to select streams or to deselect streams. If a stream is deselected, it will not generate data. - HRESULT - - - - Selects or deselects one or more streams. - - The stream to set. For more information, see . - Specify to select streams or to deselect streams. If a stream is deselected, it will not generate data. - - - - Gets a format that is supported natively by the media source. - - Specifies which stream to query. For more information, see . - The zero-based index of the media type to retrieve. - Receives the . The caller must dispose the object. - HRESULT - - - - Gets a format that is supported natively by the media source. - - Specifies which stream to query. For more information, see . - The zero-based index of the media type to retrieve. - The . The caller must dispose the . - - - - Gets the current media type for a stream. - - Specifies which stream to query. For more information, see . - Receives the . The caller must dispose the . - HRESULT - - - - Gets the current media type for a stream. - - Specifies which stream to query. For more information, see . - The . The caller must dispose the . - - - - Sets the media type for a stream. - This media type defines the format that the produces as output. It can differ from the native format provided by the media source. See Remarks for more information. - - The stream to configure. For more information, see . - Reserved. Set to . - The media type to set. - HRESULT - - - - Sets the media type for a stream. - This media type defines the format that the produces as output. It can differ from the native format provided by the media source. See Remarks for more information. - - The stream to configure. For more information, see . - The media type to set. - - - - Seeks to a new position in the media source. - - A GUID that specifies the time format. The time format defines the units for the varPosition parameter. Pass for "100-nanosecond units". Some media sources might support additional values. - The position from which playback will be started. The units are specified by the parameter. If the parameter is , set the variant type to . - HRESULT - - - - Seeks to a new position in the media source. - - A GUID that specifies the time format. The time format defines the units for the varPosition parameter. Pass for "100-nanosecond units". Some media sources might support additional values. - The position from which playback will be started. The units are specified by the parameter. If the parameter is , set the variant type to . - - - - Reads the next sample from the media source. - - Index of the stream.The stream to pull data from. For more information, see . - A bitwise OR of zero or more flags from the enumeration. - Receives the zero-based index of the stream. - Receives a bitwise OR of zero or more flags from the enumeration. - Receives the time stamp of the sample, or the time of the stream event indicated in . The time is given in 100-nanosecond units. - Receives the instance or null. If this parameter receives a non-null value, the caller must release the received . - - HRESULT - - - - - Reads the next sample from the media source. - - Index of the stream.The stream to pull data from. For more information, see . - A bitwise OR of zero or more flags from the enumeration. - Receives the zero-based index of the stream. - Receives a bitwise OR of zero or more flags from the enumeration. - Receives the time stamp of the sample, or the time of the stream event indicated in . The time is given in 100-nanosecond units. - The instance or null. If this parameter receives a non-null value, the caller must release the received . - - - - Flushes one or more streams. - - The stream to flush. For more information, see . - HRESULT - - - - Flushes one or more streams. - - The stream to flush. For more information, see . - - - - Queries the underlying media source or decoder for an interface. - - The stream or object to query. For more information, see . - A service identifier . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls the IMFGetService::GetService method. For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - Receives a pointer to the requested interface. The caller must release the interface. - - HRESULT - - - - - Queries the underlying media source or decoder for an interface. - - The stream or object to query. For more information, see . - A service identifier . If the value is , the method calls QueryInterface to get the requested interface. Otherwise, the method calls the IMFGetService::GetService method. For a list of service identifiers, see . - The interface identifier (IID) of the interface being requested. - A pointer to the requested interface. The caller must release the interface. - - - - Gets an attribute from the underlying media source. - - The stream or object to query. For more information, see . - A that identifies the attribute to retrieve. For more information, see . - Receives a that receives the value of the attribute. Call the method to free the . - HRESULT - - - - Gets an attribute from the underlying media source. - - The stream or object to query. For more information, see . - A that identifies the attribute to retrieve. For more information, see . - A that receives the value of the attribute. Call the method to free the . - - - - Defines flags that specify how to convert an audio media type. - - - - - Convert the media type to a class if possible, or a class otherwise. - - - - - Convert the media type to a class.. - - - - - Defines multi media error codes. - - - - - No error. - - - - - Unspecified error. - - - - - Invalid device id. - - - - - Driver failed enable. - - - - - Device already allocated. - - - - - Device handle is invalid. - - - - - No device driver present. - - - - - Memory allocation error. - - - - - Function isn't supported. - - - - - Error value out of range. - - - - - Invalid flag passed. - - - - - Invalid parameter passed. - - - - - Handle being used simultaneously on another thread (eg callback). - - - - - Specified alias not found. - - - - - Bad registry database. - - - - - Registry key not found. - - - - - Registry read error. - - - - - Registry write error. - - - - - Registry delete error. - - - - - Registry value not found. - - - - - Driver does not call DriverCallback. - - - - - More data to be returned. - - - - - Unsupported wave format. - - - - - Still something playing. - - - - - Header not prepared. - - - - - Device is synchronous. - - - - - Defines the states of a . - - - - - The is currently recording. - - - - - The is currently stopped. - - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Captures audio data from a audio device (through Wasapi Apis). To capture audio from an output device, use the class. - Minimum supported OS: Windows Vista (see property). - - - - - Gets a value indicating whether the class is supported on the current platform. - If true, it is supported; otherwise false. - - - - - Reference time units per millisecond. - - - - - Reference time units per second. - - - - - Occurs when new data got captured and is available. - - - - - Occurs when stopped capturing audio. - - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - Latency = 100ms. - EventSync = true. - SharedMode = Shared. - - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - Latency = 100ms. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - DefaultFormat = null. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - - - - Initializes a new instance of the class. - CaptureThreadPriority = AboveNormal. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - - - - Initializes a new instance of the class. SynchronizationContext = null. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - ThreadPriority of the capturethread which runs in background and provides the audiocapture itself. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - - - - Initializes a new instance of the class. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. Don't use this in combination with exclusive mode. - Specifies how to open the audio device. Note that if exclusive mode is used, the device can only be used once on the whole system. Don't use exclusive mode in combination with eventSync. - Latency of the capture specified in milliseconds. - ThreadPriority of the capturethread which runs in background and provides the audiocapture itself. - The default WaveFormat to use for the capture. If this parameter is set to null, the best available format will be chosen automatically. - The to use to fire events on. - The current platform does not support Wasapi. For more details see: . - The parameter is set to true while the is set to . - - - - Initializes WasapiCapture and prepares all resources for recording. - Note that properties like Device, etc. won't affect WasapiCapture after calling Initialize. - - - - - Start recording. - - - - - Stop recording. - - - - - Gets the RecordingState. - - - - - Gets or sets the capture device to use. - Set this property before calling Initialize. - - - - - Gets the OutputFormat. - - - - - Random ID based on internal audioclients memory address for debugging purposes. - - - - - Returns the default device. - - The default device. - - - - Returns the stream flags to use for the audioclient initialization. - - The stream flags to use for the audioclient initialization. - - - - Stops the capture and frees all resources. - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Provides audio loopback capture through Wasapi. That enables a client to capture the audio stream that is being played by a rendering endpoint device (e.g. speakers, headset, etc.). - Minimum supported OS: Windows Vista (see property). - Read more about loopback recording here: http://msdn.microsoft.com/en-us/library/windows/desktop/dd316551(v=vs.85).aspx. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified in milliseconds. - - The latency specified in milliseconds. The default value is 100ms. - - - - Initializes a new instance of the class with the specified in milliseconds - and the to use. - - The latency specified in milliseconds. The default value is 100ms. - The default to use. - Note: The is just a suggestion. If the driver does not support this format, - any other format will be picked. After calling , the - property will return the actually picked . - - - - Initializes a new instance of the class with the specified in milliseconds, - the to use and the of the internal capture thread. - - The latency specified in milliseconds. The default value is 100ms. - The default to use. - Note: The is just a suggestion. If the driver does not support this format, - any other format will be picked. After calling , the - property will return the actually picked . - The , the internal capture thread will run on. - - - - Returns the default rendering device. - - Default rendering device. - - - - Returns the stream flags to use for the audioclient initialization. - - - The stream flags to use for the audioclient initialization. - - - - - Captures audio from a audio device (through WaveIn Apis). - - - - - Gets or sets the which should be used for capturing audio. - The property has to be set before initializing. The systems default recording device is used - as default value - of the property. - - The value must not be null. - - - - Gets or sets the latency of the wavein specified in milliseconds. - The property has to be set before initializing. - - - - - Initializes a new instance of the class using the a default format (44.1kHz, 16 bit, 2 channels, pcm). - - - - - Initializes a new instance of the class. - - The default format to use. The final format must not equal the specified . - waveFormat - - - - Occurs when new data got captured and is available. - - - - - Occurs when the recording stopped. - - - - - Gets the format of the captured audio data. - - - - - Initializes the instance. - - has to be . Call to stop. - - - - Starts recording. - - - - - Stops recording. - - - - - Gets the current . - - - - - Creates and returns the WaveOut handle. - - The waveformat to use. - A valid WaveOut handle. - - - - Disposes and stops the instance. - - - - - Disposes and stops the instance. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Represents a -device. - - - - - Enumerates the WaveIn devices installed on the system. - - A an iterator to iterate through all enumerated WaveIn devices. - - - - Gets the default WaveOut device. - - - - - Initializes a new instance of the class. - - The device identifier. - - - - Gets the device identifier. - - - - - Gets the name of the device. - - - - - Gets the version of the driver. - - - - - Gets the standard formats that are supported. - - - - - Gets the supported formats. - - - - - Provides data for the event. - - - - - Gets the available data. - - - - - Gets the number of available bytes. - - - - - Gets the zero-based offset inside of the array at which the available data starts. - - - - - Gets the format of the available . - - - - - Initializes a new instance of the class. - - A byte array which contains the data. - The offset inside of the array at which the available data starts. - The number of available bytes. - The format of the . - - data - or - format - - - offset must not be less than zero. - bytecount must not be or equal to zero. - - - - - Defines a interface for capturing audio. - - - - - Occurs when new data got captured and is available. - - - - - Occurs when the recording stopped. - - - - - Gets the format of the captured audio data. - - - - - Initializes the instance. - - - - - Starts capturing. - - - - - Stops capturing. - - - - - Gets the current . - - - - - Provides audioplayback through DirectSound. - - - - - Initializes an new instance of class. - Latency = 100. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - Latency of the playback specified in milliseconds. - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - - - Initializes an new instance of class. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - The synchronizationcontext which is used to raise any events like the "Stopped"-event. - If the passed value is not null, the events will be called async through the SynchronizationContext.Post() method. - - - - - Random ID based on the internal directsounds memory address for debugging purposes. - - - - - Latency of the playback specified in milliseconds. - - - - - Gets or sets the device to use for the playing the waveform-audio data. Note that the - method has to get called - - - - - Occurs when the playback gets stopped. - - - - - Initializes and prepares all resources for playback. - Note that all properties like , ,... won't affect - after calling . - - The source to prepare for playback. - - - - Starts the playback. - Note: has to get called before calling Play. - If PlaybackState is Paused, Resume() will be called automatically. - - - - - Stops the playback and frees all allocated resources. - After calling the caller has to call again before another playback - can be started. - - - - - Resumes the paused playback. - - - - - Pauses the playback. - - - - - Gets the current of the playback. - - - - - The volume of the playback. Valid values are from 0.0 (0%) to 1.0 (100%). - - - Note that the if you for example set a volume of 33% => 0.33, the actual volume will be something like 0.33039999. - - - - - The currently initialized source. - To change the WaveSource property, call . - - - - - Disposes the instance and stops the playbacks. - - - - - Disposes and stops the instance. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - http: //msdn.microsoft.com/en-us/library/dd743869%28VS.85%29.aspx - - - - - WaveHeaderFlags: http://msdn.microsoft.com/en-us/library/aa909814.aspx#1 - - - - - pointer to locked data buffer (lpData) - - - - - length of data buffer (dwBufferLength) - - - - - used for input only (dwBytesRecorded) - - - - - for client's use (dwUser) - - - - - assorted flags (dwFlags) - - - - - loop control counter (dwLoops) - - - - - PWaveHdr, reserved for driver (lpNext) - - - - - reserved for driver - - - - - uMsg - http: //msdn.microsoft.com/en-us/library/dd743869%28VS.85%29.aspx - - - - - Defines standard formats for MmDevices. - - - - - 11.025 kHz, Mono, 8-bit - - - - - 11.025 kHz, Stereo, 8-bit - - - - - 11.025 kHz, Mono, 16-bit - - - - - 11.025 kHz, Stereo, 16-bit - - - - - 22.05 kHz, Mono, 8-bit - - - - - 22.05 kHz, Stereo, 8-bit - - - - - 22.05 kHz, Mono, 16-bit - - - - - 22.05 kHz, Stereo, 16-bit - - - - - 44.1 kHz, Mono, 8-bit - - - - - 44.1 kHz, Stereo, 8-bit - - - - - 44.1 kHz, Mono, 16-bit - - - - - 44.1 kHz, Stereo, 16-bit - - - - - 44.1 kHz, Mono, 8-bit - - - - - 44.1 kHz, Stereo, 8-bit - - - - - 44.1 kHz, Mono, 16-bit - - - - - 44.1 kHz, Stereo, 16-bit - - - - - 48 kHz, Mono, 8-bit - - - - - 48 kHz, Stereo, 8-bit - - - - - 48 kHz, Mono, 16-bit - - - - - 48 kHz, Stereo, 16-bit - - - - - 96 kHz, Mono, 8-bit - - - - - 96 kHz, Stereo, 8-bit - - - - - 96 kHz, Mono, 16-bit - - - - - 96 kHz, Stereo, 16-bit - - - - - Defines functionalities supported by a device. - - - - - None - - - - - Supports pitch control. - - - - - Supports playback rate control. - - - - - Supports volume control. - - - - - Supports separate left and right volume control. - - - - - The driver is synchronous and will block while playing a buffer. - - - - - Returns sample-accurate position information. - - - - - DirectSound - - Not documented on msdn. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Provides audioplayback through Wasapi. - Minimum supported OS: Windows Vista (see property). - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - Latency = 100ms. - EventSync = False. - ShareMode = Shared. - - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - PlaybackThreadPriority = AboveNormal. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - - - Initializes an new instance of class. - EventSyncContext = SynchronizationContext.Current. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - ThreadPriority of the playbackthread which runs in background and feeds the device - with data. - - - - - Initializes an new instance of class. - - True, to use eventsynchronization instead of a simple loop and sleep behavior. - - Specifies how to open the audio device. Note that if exclusive mode is used, only one single - playback for the specified device is possible at once. - - Latency of the playback specified in milliseconds. - - of the playbackthread which runs in background and feeds the device - with data. - - - The which is used to raise any events like the -event. - If the passed value is not null, the events will be called async through the method. - - - - - Gets a value which indicates whether Wasapi is supported on the current Platform. True means that the current - platform supports ; False means that the current platform does not support - . - - - - - Sets a value indicating whether the Desktop Window Manager (DWM) has to opt in to or out of Multimedia Class Schedule Service (MMCSS) - scheduling while the current process is alive. - - - True to instruct the Desktop Window Manager to participate in MMCSS scheduling; False to opt out or end participation in MMCSS scheduling. - - DWM will be scheduled by the MMCSS as long as any process that called DwmEnableMMCSS to enable MMCSS is active and has not previously called DwmEnableMMCSS to disable MMCSS. - - - - Gets or sets the stream routing options. - - - The stream routing options. - - - The flag can only be used - if the is the default device. - That behavior can be changed by overriding the method. - - - - - Gets or sets the which should be used for playback. - The property has to be set before initializing. The systems default playback device is used - as default value - of the property. - - - Make sure to set only activated render devices. - - - - - Gets a random ID based on internal audioclients memory address for debugging purposes. - - - - - Gets or sets the latency of the playback specified in milliseconds. - The property has to be set before initializing. - - - - - Occurs when the playback stops. - - - - - Initializes WasapiOut instance and prepares all resources for playback. - Note that properties like , ,... won't affect WasapiOut after calling - . - - The source to prepare for playback. - - - - Starts the playback. - Note: has to get called before calling Play. - If is , will be - called automatically. - - - - - Stops the playback and frees most of allocated resources. - - - - - Resumes the paused playback. - - - - - Pauses the playback. - - - - - Gets the current of the playback. - - - - - Gets or sets the volume of the playback. - Valid values are in the range from 0.0 (0%) to 1.0 (100%). - - - - - The currently initialized source. - To change the WaveSource property, call . - - - The value of the WaveSource might not be the value which was passed to the method, because - WasapiOut (depending on the waveformat of the source) has to use a DmoResampler. - - - - - Gets or sets a value indicating whether should try to use all available channels. - - - - - Stops the playback (if playing) and cleans up all used resources. - - - - - Updates the stream routing options. - - - If the current is not the default device, - the flag will be removed. - - - - - Disposes and stops the instance. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Defines options for wasapi-streamrouting. - - - - - Disable stream routing. - - - - - Use stream routing when the device format has changed. - - - - - Use stream routing when the default device has changed. - - - - - Use stream routing when the current device was disconnected. - - - - - Combination of , and . - - - - - Provides audioplayback through the WaveOut api. - - - - - Initializes a new instance of the class with a latency of 100 ms. - - - - - Initializes a new instance of the class. - - Latency of the playback specified in milliseconds. - latency must not be less or equal to zero. - - - - Gets or sets the which should be used for playback. - The property has to be set before initializing. The systems default playback device is used - as default value - of the property. - - The value must not be null. - - - - Gets or sets the latency of the playback specified in milliseconds. - The property has to be set before initializing. - - - - - Starts the playback. - Note: has to get called before calling Play. - If is , will be - called automatically. - - - - - Pauses the playback. - - - - - Resumes the paused playback. - - - - - Stops the playback and frees most of allocated resources. - - - - - Initializes WaveOut instance and prepares all resources for playback. - Note that properties like , ,... won't affect WaveOut after calling - . - - The source to prepare for playback. - - - - Gets or sets the volume of the playback. - Valid values are in the range from 0.0 (0%) to 1.0 (100%). - - - - - The currently initialized source. - To change the WaveSource property, call . - - - The value of the WaveSource might not be the value which was passed to the method, - because - WaveOut uses the class to control the volume of the playback. - - - - - Gets the current of the playback. - - - - - Occurs when the playback stops. - - - - - Stops the playback (if playing) and cleans up all used resources. - - - - - Gets or sets a value indicating whether should try to use all available channels. - - - - - Creates and returns the WaveOut handle. - - The waveformat to use. - A valid WaveOut handle. - - - - Disposes and stops the instance. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Finalizes an instance of the class. - - - - - Represents a -device. - - - - - Enumerates the WaveOut devices installed on the system. - - A an iterator to iterate through all enumerated WaveOut devices. - - - - Gets the default WaveOut device. - - - - - Initializes a new instance of the class. - - The device identifier. - - - - Gets the device identifier. - - - - - Gets the name of the device. - - - - - Gets the supported functionalities of the device. - - - - - Gets the version of the driver. - - - - - Gets the standard formats that are supported. - - - - - Gets the supported formats. - - - - - Defines a interface for audio playbacks. - - - - - Starts the audio playback. - - - - - Pauses the audio playback. - - - - - Resumes the audio playback. - - - - - Stops the audio playback. - - - - - Initializes the for playing a . - - which provides waveform-audio data to play. - - - - Gets or sets the volume of the playback. The value of this property must be within the range from 0.0 to 1.0 where 0.0 equals 0% (muted) and 1.0 equals 100%. - - - - - Gets the which provides the waveform-audio data and was used to the . - - - - - Gets the of the . The playback state indicates whether the playback is currently playing, paused or stopped. - - - - - Occurs when the playback stops. - - - - - Defines playback states. - - - - - Playback is stopped. - - - - - Playback is playing. - - - - - Playback is paused. - - - - - Provides data for any stopped operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The associated exception. Can be null. - - - - Gets a value which indicates whether the operation stopped due to an error. True means that that the operation - stopped due to an error. False means that the operation did not stop due to an error. - - - - - Gets the associated which caused the operation to stop. - - Can be null. - - - - Cached wave source. - - - - - Initializes a new instance of the class. - - Source which will be copied to a cache. - - - - Creates a stream to buffer data in. - - An empty stream to use as buffer. - - - - Reads a sequence of bytes from the cache and advances the position within the cache by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the cache. - - - The zero-based byte offset in the at which to begin storing the data - read from the cache. - - The maximum number of bytes to read from the cache. - The total number of bytes read into the . - - - - Gets the Waveformat of the data stored in the cache. - - - - - Gets or sets the position. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the amount of bytes stored in the cache. - - - - - Disposes the cache. - - - - - Disposes the internal used cache. - - - - - - Finalizes an instance of the class. - - - - - NOT RELEASED YET! Provides conversion between a set of input and output channels using a . - - - - - Initializes a new instance of the class. - - The which provides input data. - The which defines the mapping of the input channels to the output channels. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the output format. - - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Defines possible values for the property. - Default value is . - - - - - 180° Phase. - - - - - 90° Phase. - Default value for . - - - - - 0° Phase. - - - - - -90° Phase. - - - - - -180° Phase. - - - - - Defines possible values for the property. - Default value is WaveformSin (used for ). - - - - - Sine - Default value for . - - - - - Trinagle - - - - - Represents the dmo chorus effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the number of milliseconds the input is delayed before it is played back, in the range from 0 to 20. The default value is 16 ms. - - - - - Gets or sets the percentage by which the delay time is modulated by the low-frequency oscillator, in hundredths of a percentage point. Must be in the range from 0 through 100. The default value is 10. - - - - - Gets or sets the percentage of output signal to feed back into the effect's input, in the range from -99 to 99. The default value is 25. - - - - - Gets or sets the frequency of the LFO, in the range from 0 to 10. The default value is 1.1. - - - - - Gets or sets the waveform shape of the LFO. By default, the waveform is a sine. - - - - - Gets or sets the phase differential between left and right LFOs. The default value is Phase90. - - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0 through 100 (all wet). The default value is 50. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - 180° Phase - - - - - 90° Phase - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - -180° Phase - - - - - -90° Phase - - - - - 0° Phase - - - - - Default value for the property. - - - - - Sine waveform - - - - - Triangle waveform - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo compressor effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the time before compression reaches its full value, in the range from 0.01 ms to 500 ms. The default value is 10 ms. - - - - - Gets or sets the output gain of signal after compression, in the range from -60 dB to 60 dB. The default value is 0 dB. - - - - - Gets or sets the time after is reached before attack phase is started, in milliseconds, in the range from 0 ms to 4 ms. The default value is 4 ms. - - - - - Gets or sets the compression ratio, in the range from 1 to 100. The default value is 3, which means 3:1 compression. - - - - - Gets or sets the speed at which compression is stopped after input drops below fThreshold, in the range from 50 ms to 3000 ms. The default value is 200 ms. - - - - - Gets or sets the point at which compression begins, in decibels, in the range from -60 dB to 0 dB. The default value is -20 dB. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo distortion effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the amount of signal change after distortion, in the range from -60 dB through 0 dB. The default value is -18 dB. - - - - - Gets or sets the percentage of distortion intensity, in the range in the range from 0 % through 100 %. The default value is 15 percent. - - - - - Gets or sets the center frequency of harmonic content addition, in the range from 100 Hz through 8000 Hz. The default value is 2400 Hz. - - - - - Gets or sets the width of frequency band that determines range of harmonic content addition, in the range from 100 Hz through 8000 Hz. The default value is 2400 Hz. - - - - - Gets or sets the filter cutoff for high-frequency harmonics attenuation, in the range from 100 Hz through 8000 Hz. The default value is 8000 Hz. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo echo effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from - 0 through 100 (all wet). The default value is 50. - - - - - Gets or sets the percentage of output fed back into input, in the range from 0 - through 100. The default value is 50. - - - - - Gets or sets the delay for left channel, in milliseconds, in the range from 1 - through 2000. The default value is 500 ms. - - - - - Gets or sets the delay for right channel, in milliseconds, in the range from 1 - through 2000. The default value is 500 ms. - - - - - Gets or sets the value that specifies whether to swap left and right delays with each successive echo. - The default value is false, meaning no swap. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Base class for all DMO effects. - - DMO effect itself. - Parameter struct of the DMO effect. - - - - Creates a new instance of class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Creates an MediaObject from the effect DMO. - - The input format of the to create. - The output format of the to create. - - The created to use for processing audio data. - - - - - Gets the output format of the effect. - - The output format of the effect. - - - - Gets the underlying effect. - - - - - Gets or sets whether the effect is enabled. - - - - - Sets the value for one of the effects parameter and updates the effect. - - Type of the . - Name of the field to set the value for. - Value to set. - - - - Reads a sequence of bytes from the stream and applies the Dmo effect to them (only if the property is set to true). - - An array of bytes. When this method returns, the buffer contains the read bytes. - The zero-based byte offset in buffer at which to begin storing the data read from the stream. - The maximum number of bytes to be read from the stream - The actual number of read bytes. - - - - Represents the dmo flanger effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0 through 100 (all wet). The default value is 50. - - - - - Gets or sets the percentage by which the delay time is modulated by the low-frequency oscillator (LFO), in hundredths of a percentage point. Must be in the range from 0 through 100. The default value is 100. - - - - - Gets or sets the percentage of output signal to feed back into the effect's input, in the range from -99 to 99. The default value is -50. - - - - - Gets or sets the frequency of the LFO, in the range from 0 to 10. The default value is 0.25. - - - - - Gets or sets the waveform shape of the LFO. By default, the waveform is a sine. - - - - - Gets or sets the number of milliseconds the input is delayed before it is played back, in the range from 0ms to 4ms. The default value is 2 ms. - - - - - Gets or sets the phase differential between left and right LFOs. The default value is . - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents the dmo gargle effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the rate of modulation, in Hertz. Must be in the range from 20Hz through 1000Hz. The default value is 20Hz. - - - - - Gets or sets the shape of the modulation waveform. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - Use the enumeration instead. - - - - Square Waveform. - - Use the enumeration instead. - - - - Triangle Waveform - - Use the enumeration instead. - - - - Represents the dmo waves reverb effect in form of an implementation. - - - - - Creates a new instance of the class. - - The base source, which feeds the effect with data. - - - - Creates and returns a new instance of the native COM object. - - A new instance of the native COM object. - - - - Gets or sets the input gain of signal, in decibels (dB), in the range from -96 dB through 0 dB. The default value is 0 dB. - - - - - Gets or sets the reverb mix, in dB, in the range from -96 dB through 0 dB. The default value is 0 dB. - - - - - Gets or sets the reverb time, in milliseconds, in the range from 0.001 through 3000. The default value is 1000. - - - - - Gets or sets the high-frequency reverb time ratio, in the range from 0.001 through 0.999. The default value is 0.001. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Default value for the property. - - - - - Maximum value for the property. - - - - - Minimum value for the property. - - - - - Represents an equalizer which can be dynamically modified by adding, removing or modifying - . - - - - - Initializes a new instance of the class based on an underlying wave stream. - - The underlying wave stream. - - - - Gets a list which contains all used by the equalizer. - - - None of the - - - - - Returns a new instance of the class with 10 preset . - - The underlying sample source which provides the data for the equalizer. - A new instance of the class with 10 preset . - - - - Returns a new instance of the class with 10 preset . - - The underlying sample source which provides the data for the equalizer. - The bandwidth to use for the 10 . The default value is 18. - - The default gain to use for the 10 . The default value is zero - which means that the data, passed through the equalizer won't be affected by the . - - A new instance of the class with 10 preset . - - - - Reads a sequence of samples from the underlying , applies the equalizer - effect and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Represents an EqualizerFilter for a single channel. - - - - - Initializes a new instance of the class. - - The sampleRate of the audio data to process. - The center frequency to adjust. - The bandWidth. - The gain value in dB. - - - - Gets or sets the gain value in dB. - - - - - Gets or sets the bandwidth. - - - - - Gets the frequency. - - - - - Gets the samplerate. - - - - - Returns a copy of the . - - A copy of the - - - - Processes an array of input samples. - - The input samples to process. - The zero-based offset in the buffer to start at. - The number of samples to process. - Specifies the channel to process as a zero-based index. - The total number of channels. - - - - Represents an EqualizerFilter which holds an for each channel. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The number of channels to use. - The channel filter which should be used for all channels. - - - - Gets all underlying as a dictionary where the key represents the channel - index and the value to itself. - - - - - Gets the average frequency of all . - - - - - Gets or sets the average gain value of all . - - - When using the setter of the property, the new gain value will be applied to all - . - - - - - Returns an enumerator that iterates through the . - - - A that can be used to iterate through the . - - - - - Returns an enumerator that iterates through a . - - - An object that can be used to iterate through the . - - - - - Returns a new instance of the class. - - The number of channels to use. - The samplerate of the data to process. - The frequency of the filter. - The bandwidth. - The gain value. - A new instance of the class. - - - - Defines possible values for the property. - The default value is . - - - - - 180° Phase. - - - - - 90° Phase. - Default value for . - - - - - 0° Phase. - - - - - -90° Phase. - - - - - -180° Phase. - - - - - Defines possible values for the property. - The default value is . - - - - - Triangle. - - - - - Sine. Default value. - - - - - Defines possible values for the property. - The default value is . - - - - - Triangle - Default value. - - - - - Square - - - - - A pitch shifting effect. - - - The internal pitch shifting code is based on the implementation of - Stephan M. Bernsee smb@dspdimension.com (see http://www.dspdimension.com) and - Michael Knight madmik3@gmail.com (http://sites.google.com/site/mikescoderama/) who - translated Stephan's code to C#. - - Both gave the explicit permission to republish the code as part of CSCore under the MS-PL. - Big thanks! - - - - - Gets or sets the pitch shift factor. - - - A pitch shift factor value which is between 0.5 - (one octave down) and 2. (one octave up). A value of exactly 1 does not change - the pitch. - - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - - - - Reads a sequence of samples from the , applies the pitch shifting to them - and advances the position within the stream by the number of samples read. - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source including the applied pitch shift. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides the ability use an implementation of the interface fade waveform-audio data. - - - - - Initializes a new instance of the class. - - The underlying source to use. - - - - Gets or sets the fade strategy to use. - - - - - Reads a sequence of samples from the class and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Compared to the , the property of the accepts any value. - - - - - Initializes a new instance of the class. - - The underlying base source. - - - - Gets or sets the volume. A value of 1.0 will set the volume to 100%. A value of 0.0 will set the volume to 0%. - - Since there is no validation of the value, this property can be used to set the gain value to any value. - - - - Gets or sets a value indicating whether the method should clip overflows. The default value is true. - - - true if the method should clip overflows; otherwise, false. - - Clipping the overflows means, that all samples which are not in the range from -1 to 1, will be clipped to that range. - For example if a sample has a value of 1.3, it will be clipped to a value of 1.0. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. After reading the samples, the specified gain value will get applied and the overflows will be clipped (optionally). - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides a mechanism for fading in/out audio. - - - The - and the -property must be set before the - can be used. - - - - - Gets a value which indicates whether the current volume equals the target volume. If not, the - property returns false. - - - - - Gets or sets the sample rate to use. - - - - - Gets or sets the number of channels. - - - - - Occurs when the fading process has reached its target volume. - - - - - Applies the fading algorithm to the waveform-audio data. - - Float-array which contains IEEE-Float samples. - Zero-based offset of the . - The number of samples, the fading algorithm has to be applied on. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration in milliseconds. - - - - Stops the fading. - - - - - Provides a linear fading algorithm. - - - - - Gets the current volume. - - - - - Gets the target volume. - - - - - Occurs when the fading process has reached its target volume. - - - - - Gets a value which indicates whether the class is fading. - True means that the class is fading audio data. - False means that the equals the . - - - - - Gets or sets the sample rate to use. - - - - - Gets or sets the number of channels. - - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration. - - - - Starts fading a specified volume another volume. - - - The start volume in the range from 0.0 to 1.0. If no value gets specified, the default volume will be used. - The default volume is typically 100% or the current volume. - - The target volume in the range from 0.0 to 1.0. - The duration in milliseconds. - - - - Stops the fading. - - - - - Applies the fading algorithm to the . - - Float-array which contains IEEE-Float samples. - Zero-based offset of the . - The number of samples, the fading algorithm has to be applied on. - - - - Provides data for the event. - - - - - Gets the individual peak value for each channel. - - - - - Gets the master peak value. - - - - - Initializes a new instance of the class. - - The channel peak values. - The master peak value. - is null or empty. - - - - Represents a peak meter. - - - - - Gets the average value of all . - - - - - Gets the peak values for all channels. - - - - - Obsolete - - - - - Gets or sets the interval at which to raise the event. - The interval is specified in milliseconds. - - - - - Event which gets raised when a new peak value is available. - - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Sets all ChannelPeakValues to zero and resets the amount of processed blocks. - - - - - Converts a 32-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 32-bit POCM instance which has to get converted to a . - is null. - The format of the is not 32-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a 32-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 32-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 32-bit IeeeFloat . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 32-bit IeeeFloat . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 24-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 24-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a 8-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 8-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a 32-bit IeeeFloat to a . - - - - - Initializes a new instance of the class. - - The underlying 32-bit IeeeFloat instance which has to get converted to a . - is null. - The format of the is not 32-bit IeeeFloat. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a 16-bit PCM . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a 16-bit PCM . - is null. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Converts a to a . - - - - - The underlying source which provides samples. - - - - - The buffer to use for reading from the . - - - - - Initializes a new instance of the class. - - The underlying which has to get converted to a . - The of the Output-. - The of the Output-. - The is null. - Invalid number of bits per sample specified by the argument. - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the of the output waveform-audio data. - - - - - Gets or sets the current position. - - - - - Gets the length of the waveform-audio data. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the instance. - - - - - Disposes the underlying . - - Not used. - - - - Calls . - - - - - Converts a 16-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 16-bit POCM instance which has to get converted to a . - is null. - The format of the is not 16-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a 24-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 24-bit POCM instance which has to get converted to a . - is null. - The format of the is not 24-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a 8-bit PCM to a . - - - - - Initializes a new instance of the class. - - The underlying 8-bit POCM instance which has to get converted to a . - is null. - The format of the is not 8-bit PCM. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Converts a to a . - - - - - The underlying source which provides the raw data. - - - - - The buffer to use for reading from the . - - - - - Initializes a new instance of the class. - - The underlying instance which has to get converted to a . - The argument is null. - - - - Reads a sequence of samples from the and advances the position within the stream by the - number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position in samples. - - - - - Gets the length of the waveform-audio data in samples. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the . - - - - - Disposes the . - - Not used. - - - - Finalizes an instance of the class. - - - - - Returns an implementation of the interface which converts the specified to a . - - The instance to convert. - Returns an implementation of the interface which converts the specified to a . - is null. - The of the is not supported. - - - - A thread-safe (synchronized) wrapper around the specified a . - - The type of the underlying . - The type of the data read by the method. - - - - Initializes a new instance of the class. - - The underlying source to synchronize. - - - - Gets the output of the . - - - - - Gets or sets the position of the . - - - - - Gets the length of the . - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets the . - - - - - Reads a sequence of elements from the and advances its position by the - number of elements read. - - - An array of elements. When this method returns, the contains the specified - array of elements with the values between and ( + - - 1) replaced by the elements read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of elements to read from the current source. - The total number of elements read into the buffer. - - - - Defines an explicit conversation of a to its - . - - Instance of the . - The of the . - - - - Disposes the and releases all allocated resources. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Disposes the and releases all allocated resources. - - - - - Finalizes an instance of the class. - - - - - Buffered WaveSource which overrides the allocated memory after the internal buffer got full. - - - - - Gets or sets a value which specifies whether the method should clear the specified buffer with zeros before reading any data. - - - - - Gets the maximum size of the buffer in bytes. - - - The maximum size of the buffer in bytes. - - - - - Initializes a new instance of the class with a default buffersize of 5 seconds. - - The WaveFormat of the source. - - - - Initializes a new instance of the class. - - The WaveFormat of the source. - Buffersize in bytes. - - - - Adds new data to the internal buffer. - - A byte-array which contains the data. - Zero-based offset in the (specified in bytes). - Number of bytes to add to the internal buffer. - Number of added bytes. - - - - Reads a sequence of bytes from the internal buffer of the and advances the position within the internal buffer by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the internal buffer. - - - The zero-based byte offset in the at which to begin storing the data - read from the internal buffer. - - The maximum number of bytes to read from the internal buffer. - The total number of bytes read into the . - - - - Gets the of the waveform-audio data. - - - - - Not supported. - - - - - Gets the number of stored bytes inside of the internal buffer. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the and its internal buffer. - - - - - Disposes the and its internal buffer. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Default destructor which calls . - - - - - Reads data from the and stores the read data in a buffer. - - - - - Initializes a new instance of the class. - - The to buffer. - Size of the buffer. - is out of range. - - - - Reads a sequence of bytes from internal buffer and advances the position by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the . - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the . - The total number of bytes read into the buffer. - BufferSource - - - - Resets/Clears the buffer. - - BufferSource - - - - Gets or sets the position of the source. - - - BufferSource - - - - - Gets the length of the source. - - - - - Disposes the and releases all allocated resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Fire the event after every block read. - - - - - Occurs when the method reads a block. - - If the method reads n during a single call, the event will get fired n times. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. Fires the event for each block it reads (one block = (number of channels) samples). - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides data for the event. - - - - - Gets the sample of the left channel. - - - - - Gets the sample of the right channel. - - - - - Gets the samples of all channels if the number of is greater or equal to three. - - If the number of is less than three, the value of the property is null. - - - - Gets the number of channels. - - - - - Initializes a new instance of the class. - - The samples. - The index inside of the -array. - The number of channels. - - - - Provides data for the event. - - Type of the array. - - - - Gets the number of read elements. - - - - - Gets the array which contains the read data. - - - - - Initializes a new instance of the class. - - The read data. - The number of read elements. - - - - Converts a mono source to a stereo source. - - - - - Initializes a new instance of the class. - - The underlying mono source. - The has more or less than one channel. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets the of the waveform-audio data. - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Notifies the client when a certain amount of data got read. - - Can be used as some kind of a timer for playbacks,... - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source is null. - - - - Gets or sets the interval in blocks. One block equals one sample for each channel. - - - - - Gets or sets the interval in milliseconds. - - - - - Occurs when a specified amount of data got read. - - - The - or the -property specifies how many samples have to get - read to trigger the event. - - - - - Reads a sequence of samples from the and advances the position within the - stream by - the number of samples read. When the [(number of total samples read) / (number of channels)] % - = 0, the event gets triggered. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides control over the balance between the left and the right channel of an audio source. - - - - - Gets or sets the balance. The valid range is from -1 to 1. -1 will mute the right channel, 1 will mute left channel. - - The value is not within the specified range. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - Source has to be stereo. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - The zero-based offset in the at which to begin storing the data - read from the current stream. - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - Read samples has to be a multiple of two. - - - - Notifies the client when a specific number of samples got read and when the method got called. - - Compared to the , none of both events won't provide the read data. - - - - Initializes a new instance of the class. - - Underlying base source which provides audio data. - source - - - - Gets or sets the interval (in which to fire the event) in blocks. One block equals one - sample for each channel. - - - - - Gets or sets the interval (in which to fire the event) in milliseconds. - - - - - Occurs when the method got called. - - - - - Occurs when a specified amount of data got read. - - - The - or the -property specifies how many samples have to get - read to trigger the event. - - - - - Reads a sequence of samples from the and advances the position within the - stream by - the number of samples read. Triggers the event and if the [(number of total samples read) / - (number of channels)] % - = 0, the event gets triggered. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - - The total number of samples read into the buffer. - - - - - Provides the ability to adjust the volume of an audio stream. - - - - - The epsilon which is used to compare for almost-equality of the volume in . - - - - - Gets or sets the volume specified by a value in the range from 0.0 to 1.0. - - - - - Initializes a new instance of the class. - - The underlying base source. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. After reading the samples, the volume of the read samples gets manipulated. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Represents an implementation of the interface which provides the data provided by a specified object. - - - - - Occurs when new data is available. - - - - - Gets the underlying instance. - - - - - Initializes a new instance of the class with a default bufferSize of 5 seconds. - - The soundIn which provides recorded data. - - Note that soundIn has to be already initialized. - Note that old data ("old" gets specified by the bufferSize) gets overridden. - For example, if the bufferSize is about 5 seconds big, data which got recorded 6 seconds ago, won't be available anymore. - - - - - Initializes a new instance of the class. - - The soundIn which provides recorded data. - Size of the internal buffer in bytes. - - Note that soundIn has to be already initialized. - Note that old data ("old" gets specified by the bufferSize) gets overridden. - For example, if the bufferSize is about 5 seconds big, data which got recorded 6 seconds ago, won't be available anymore. - - - - - Reads a sequence of bytes from the internal stream which holds recorded data and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets the of the recorded data. - - - - - Gets or sets the current position in bytes. This property is currently not supported. - - - - - Gets the length in bytes. This property is currently not supported. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets a value which indicates whether the method should always provide the requested amount of data. - For the case that the internal buffer can't offer the requested amount of data, the rest of the requested bytes will be filled up with zeros. - - - - - Disposes the . - - - - - Disposes the . - - Not used. - - - - Destructor of the class which calls the method. - - - - - Converts a stereo source to a mono source. - - - - - Initializes a new instance of the class. - - The underlying stereo source. - The has more or less than two channels. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets the of the waveform-audio data. - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - A Stream which can be used for endless looping. - - - - - Initializes a new instance of the class. - - The underlying . - - - - Gets or sets whether looping is enabled. - - - - - Occurs when the underlying reaches its end. - If the property is set to true, the Position of the - will be reseted to zero. - - - - - Reads from the underlying . If the - does not provide any more data, its position gets reseted to zero. - - Buffer which receives the read data. - Zero-based offset offset in the at which to begin storing data. - The maximum number of bytes to read. - Actual number of read bytes. - - - - Generates a sine wave. - - - - - Gets or sets the frequency of the sine wave. - - - - - Gets or sets the amplitude of the sine wave. - - - - - Gets or sets the phase of the sine wave. - - - - - 1000Hz, 0.5 amplitude, 0.0 phase - - - - - Initializes a new instance of the class. - - Specifies the frequency of the sine wave in Hz. - Specifies the amplitude of the sine wave. Use a value between 0 and 1. - Specifies the initial phase. Use a value between 0 and 1. - - - - Reads a sequence of samples from the . - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Not supported. - - - - - Not supported. - - - - - Gets a value indicating whether the supports seeking. - - - - - Not used. - - - - - Defines all known encoding types. Primary used in the class. See - . - - - - WAVE_FORMAT_UNKNOWN, Microsoft Corporation - - - WAVE_FORMAT_PCM Microsoft Corporation - - - WAVE_FORMAT_ADPCM Microsoft Corporation - - - WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation - - - WAVE_FORMAT_VSELP Compaq Computer Corp. - - - WAVE_FORMAT_IBM_CVSD IBM Corporation - - - WAVE_FORMAT_ALAW Microsoft Corporation - - - WAVE_FORMAT_MULAW Microsoft Corporation - - - WAVE_FORMAT_DTS Microsoft Corporation - - - WAVE_FORMAT_DRM Microsoft Corporation - - - WAVE_FORMAT_WMAVOICE9 - - - WAVE_FORMAT_OKI_ADPCM OKI - - - WAVE_FORMAT_DVI_ADPCM Intel Corporation - - - WAVE_FORMAT_IMA_ADPCM Intel Corporation - - - WAVE_FORMAT_MEDIASPACE_ADPCM Videologic - - - WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp - - - WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation - - - WAVE_FORMAT_DIGISTD DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. - - - WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation - - - WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. - - - WAVE_FORMAT_CU_CODEC Hewlett-Packard Company - - - WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America - - - WAVE_FORMAT_SONARC Speech Compression - - - WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc - - - WAVE_FORMAT_ECHOSC1 Echo Speech Corporation - - - WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. - - - WAVE_FORMAT_APTX Audio Processing Technology - - - WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. - - - WAVE_FORMAT_PROSODY_1612, Aculab plc - - - WAVE_FORMAT_LRC, Merging Technologies S.A. - - - WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories - - - WAVE_FORMAT_GSM610, Microsoft Corporation - - - WAVE_FORMAT_MSNAUDIO, Microsoft Corporation - - - WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation - - - WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited - - - WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. - - - WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. - - - WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited - - - WAVE_FORMAT_NMS_VBXADPCM - - - WAVE_FORMAT_CS_IMAADPCM - - - WAVE_FORMAT_ECHOSC3 - - - WAVE_FORMAT_ROCKWELL_ADPCM - - - WAVE_FORMAT_ROCKWELL_DIGITALK - - - WAVE_FORMAT_XEBEC - - - WAVE_FORMAT_G721_ADPCM - - - WAVE_FORMAT_G728_CELP - - - WAVE_FORMAT_MSG723 - - - WAVE_FORMAT_MPEG, Microsoft Corporation - - - WAVE_FORMAT_RT24 - - - WAVE_FORMAT_PAC - - - WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag - - - WAVE_FORMAT_LUCENT_G723 - - - WAVE_FORMAT_CIRRUS - - - WAVE_FORMAT_ESPCM - - - WAVE_FORMAT_VOXWARE - - - WAVE_FORMAT_CANOPUS_ATRAC - - - WAVE_FORMAT_G726_ADPCM - - - WAVE_FORMAT_G722_ADPCM - - - WAVE_FORMAT_DSAT_DISPLAY - - - WAVE_FORMAT_VOXWARE_BYTE_ALIGNED - - - WAVE_FORMAT_VOXWARE_AC8 - - - WAVE_FORMAT_VOXWARE_AC10 - - - WAVE_FORMAT_VOXWARE_AC16 - - - WAVE_FORMAT_VOXWARE_AC20 - - - WAVE_FORMAT_VOXWARE_RT24 - - - WAVE_FORMAT_VOXWARE_RT29 - - - WAVE_FORMAT_VOXWARE_RT29HW - - - WAVE_FORMAT_VOXWARE_VR12 - - - WAVE_FORMAT_VOXWARE_VR18 - - - WAVE_FORMAT_VOXWARE_TQ40 - - - WAVE_FORMAT_SOFTSOUND - - - WAVE_FORMAT_VOXWARE_TQ60 - - - WAVE_FORMAT_MSRT24 - - - WAVE_FORMAT_G729A - - - WAVE_FORMAT_MVI_MVI2 - - - WAVE_FORMAT_DF_G726 - - - WAVE_FORMAT_DF_GSM610 - - - WAVE_FORMAT_ISIAUDIO - - - WAVE_FORMAT_ONLIVE - - - WAVE_FORMAT_SBC24 - - - WAVE_FORMAT_DOLBY_AC3_SPDIF - - - WAVE_FORMAT_MEDIASONIC_G723 - - - WAVE_FORMAT_PROSODY_8KBPS - - - WAVE_FORMAT_ZYXEL_ADPCM - - - WAVE_FORMAT_PHILIPS_LPCBB - - - WAVE_FORMAT_PACKED - - - WAVE_FORMAT_MALDEN_PHONYTALK - - - WAVE_FORMAT_GSM - - - WAVE_FORMAT_G729 - - - WAVE_FORMAT_G723 - - - WAVE_FORMAT_ACELP - - - - WAVE_FORMAT_RAW_AAC1 - - - - WAVE_FORMAT_RHETOREX_ADPCM - - - WAVE_FORMAT_IRAT - - - WAVE_FORMAT_VIVO_G723 - - - WAVE_FORMAT_VIVO_SIREN - - - WAVE_FORMAT_DIGITAL_G723 - - - WAVE_FORMAT_SANYO_LD_ADPCM - - - WAVE_FORMAT_SIPROLAB_ACEPLNET - - - WAVE_FORMAT_SIPROLAB_ACELP4800 - - - WAVE_FORMAT_SIPROLAB_ACELP8V3 - - - WAVE_FORMAT_SIPROLAB_G729 - - - WAVE_FORMAT_SIPROLAB_G729A - - - WAVE_FORMAT_SIPROLAB_KELVIN - - - WAVE_FORMAT_G726ADPCM - - - WAVE_FORMAT_QUALCOMM_PUREVOICE - - - WAVE_FORMAT_QUALCOMM_HALFRATE - - - WAVE_FORMAT_TUBGSM - - - WAVE_FORMAT_MSAUDIO1 - - - - Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation - - - - - Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation - - - - - Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS - - - - - Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) - - - - WAVE_FORMAT_UNISYS_NAP_ADPCM - - - WAVE_FORMAT_UNISYS_NAP_ULAW - - - WAVE_FORMAT_UNISYS_NAP_ALAW - - - WAVE_FORMAT_UNISYS_NAP_16K - - - WAVE_FORMAT_CREATIVE_ADPCM - - - WAVE_FORMAT_CREATIVE_FASTSPEECH8 - - - WAVE_FORMAT_CREATIVE_FASTSPEECH10 - - - WAVE_FORMAT_UHER_ADPCM - - - WAVE_FORMAT_QUARTERDECK - - - WAVE_FORMAT_ILINK_VC - - - WAVE_FORMAT_RAW_SPORT - - - WAVE_FORMAT_ESST_AC3 - - - WAVE_FORMAT_IPI_HSX - - - WAVE_FORMAT_IPI_RPELP - - - WAVE_FORMAT_CS2 - - - WAVE_FORMAT_SONY_SCX - - - WAVE_FORMAT_FM_TOWNS_SND - - - WAVE_FORMAT_BTV_DIGITAL - - - WAVE_FORMAT_QDESIGN_MUSIC - - - WAVE_FORMAT_VME_VMPCM - - - WAVE_FORMAT_TPC - - - WAVE_FORMAT_OLIGSM - - - WAVE_FORMAT_OLIADPCM - - - WAVE_FORMAT_OLICELP - - - WAVE_FORMAT_OLISBC - - - WAVE_FORMAT_OLIOPR - - - WAVE_FORMAT_LH_CODEC - - - WAVE_FORMAT_NORRIS - - - WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS - - - - Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx - - - MPEG_RAW_AAC - Source wmCodec.h - - - - MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). - The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. - See . - - - The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, - prior to applying spectral SBR or PS tools, if present. - No additional data is required after the WAVEFORMATEX structure. - - - - NOKIA_MPEG_ADTS_AAC - Source wmCodec.h - - - NOKIA_MPEG_RAW_AAC - Source wmCodec.h - - - VODAFONE_MPEG_ADTS_AAC - Source wmCodec.h - - - VODAFONE_MPEG_RAW_AAC - Source wmCodec.h - - - - High-Efficiency Advanced Audio Coding (HE-AAC) stream. - The format block is an HEAACWAVEFORMAT structure. See . - - - - WAVE_FORMAT_DVM - - - WAVE_FORMAT_VORBIS1 "Og" Original stream compatible - - - WAVE_FORMAT_VORBIS2 "Pg" Have independent header - - - WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header - - - WAVE_FORMAT_VORBIS1P "og" Original stream compatible - - - WAVE_FORMAT_VORBIS2P "pg" Have independent headere - - - WAVE_FORMAT_VORBIS3P "qg" Have no codebook header - - - - Raw AAC1 - - - - - Windows Media Audio Voice (WMA Voice) - - - - Extensible - - - WAVE_FORMAT_DEVELOPMENT - - - - FLAC - - - - - WARNING: If MimeType equals "-->" the picture will be downloaded from the web. - Use GetURL() the get the url to the picture. If not, data, contained by the frame will - be used. - - - - - Range from 1(worst) to 255(best). Zero -> Rating disabled. - - - - - - 1 -> ommit the counter. Default length is 4 byte. If 4 byte is not enough to hold the - number, a byte will be added(up to 8 bytes total). - - - - - Gets the formatstring of the timestamp - - length of the string which has to be parsed - - - - - Exception class for all ID3-Tag related Exceptions. - - - - - encoded with ISO-8859-1 [ISO-8859-1] or UTF-8 [UTF-8] - - - - - Defines a base class for all time converts. A time converter can be used to convert raw positions (depending on the implementation i.e. bytes or samples) to a human - readable . - - - - - A for objects. - - - - - A for objects. - - - - - Converts a back to raw elements, a source works with. The unit of these raw elements depends on the implementation. For more information, see . - - The of the source which gets used to convert the . - The to convert to raw elements. - The converted in raw elements. - - - - Converts raw elements to a value. The unit of these raw elements depends on the implementation. For more information, see . - - The of the source which gets used to convert the . - The raw elements to convert to a . - The . - - - - Specifies which to use. - - - - - Gets the type of the to use. - - - - - Gets or sets the arguments to pass to the constructor of the . For more information, see . - - - - - Gets or sets a value indicating whether a new instance of the specified should be created each time the queries the . - The default value is false. - - - - - Initializes a new instance of the class based on the type of the to use. - - Type of the to use. - timeConverterType - Specified type is no time converter.;timeConverterType - - - - Provides s for converting raw time values (e.g. bytes, samples,...) to a and back. - - - - - Gets the default instance of the factory. - - - - - Registers a new for a specific source type. - - The to register. - The source type. - timeConverter is null. - There is already a registered for the specified . - The class uses the source type to find choose the best for an . For more information, see . - - - - Unregisters a previously registered . - - The source type, that got passed to the method previously. - The specified source type could not be found. - - - - Gets the for the specified . - - The object to get the for. - The type of the . - The best for the specified . - The specified is null. - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified . - If there is no applied to the object (the ), it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Gets the for the specified source type. - - The type of the source. - The best for the specified source type. - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified source type. - If there is no applied to the object, it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Gets the for the specified . - - The to get the associated for. - The best for the specified . - - Specified type is no AudioSource.;type - or - No registered time converter for the specified source type was found. - or - Multiple possible time converters, for the specified source type, were found. Specify which time converter to use, through the . - - - The chooses the best for the specified . - If there is no applied to the object (the ), it looks up the inheritance hierarchy (interfaces included) of the object - and searches for all registered source types. If there is a match it returns the associated . If there are more or less than one match BUT no - it throws an exception. - - - - Clears the internal cache. - - - - - Defines a 3D vector. - - - - - Retrieves or sets the x component of the 3D vector. - - - - - Retrieves or sets the y component of the 3D vector. - - - - - Retrieves or sets the z component of the 3D vector. - - - - - Initializes a new instance of the structure. - - The value to use for the x, y and z component of the 3D vector. - - - - Initializes a new instance of the structure. - - The x component of the 3D vector. - The y component of the 3D vector.. - The z component of the 3D vector. - - - - Returns a string that represents the 3D vector. - - A string that represents the 3D vector. - - - - This class is based on the CUETools.NET BitReader (see http://sourceforge.net/p/cuetoolsnet/code/ci/default/tree/CUETools.Codecs/BitReader.cs) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Represents a read- and writeable buffer which can hold a specified number of elements. - - Specifies the type of the elements to store. - - - - Initializes a new instance of the class. - - Size of the buffer. - - - - Adds new data to the internal buffer. - - Array which contains the data. - Zero-based offset in the (specified in "elements"). - Number of elements to add to the internal buffer. - Number of added elements. - - - - Reads a sequence of elements from the internal buffer of the . - - - An array of elements. When this method returns, the contains the specified - array with the values between and ( + - - 1) replaced by the elements read from the internal buffer. - - - The zero-based offset in the at which to begin storing the data - read from the internal buffer. - - The maximum number of elements to read from the internal buffer. - The total number of elements read into the . - - - - Gets the size of the internal buffer. - - - - - Gets the number of buffered elements. - - - - - Clears the internal buffer. - - - - - Disposes the and releases the internal used buffer. - - - - - Disposes the and releases the internal used buffer. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Default destructor which calls the method. - - - - - Represents a complex number. - - - - - A complex number with a total length of zero. - - - - - Imaginary component of the complex number. - - - - - Real component of the complex number. - - - - - Initializes a new instance of the structure. - - The real component of the complex number. - The imaginary component of the complex number will be set to zero. - - - - Initializes a new instance of the structure. - - The real component of the complex number. - The imaginary component of the complex number. - - - - Gets the absolute value of the complex number. - - - - - Defines an implicit conversion of a complex number to a single-precision floating-point number. - - Complex number. - The absolute value of the . - - - - Defines an implicit conversion of a complex number to a double-precision floating-point number. - - Complex number. - The absolute value of the . - - - - Implements the operator ==. - - The complex1. - The complex2. - - The result of the operator. - - - - - Implements the operator !=. - - The complex1. - The complex2. - - The result of the operator. - - - - - Indicates whether the current complex value is equal to another complex value. - - A complex value to compare with this complex value. - - true if the current complex value is equal to the complex value; otherwise, false. - - - - - Determines whether the specified , is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - This class is based on the CUETools.NET project (see http://sourceforge.net/p/cuetoolsnet/) - The author "Grigory Chudov" explicitly gave the permission to use the source as part of the cscore source code which got licensed under the ms-pl. - - - - - Values that are used in activation calls to indicate the execution contexts in which an object is to be run. - - - - - The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context. - - - - - Indicates a handler dll, which runs on the same process as the caller. - - - - - Indicates a server executable, which runs on the same machine but on a different process than the caller. - - - - - Obsolete. - - - - - Indicates a server executable, which runs on a different machine than the caller. - - - - - Obsolete. - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - Indicates that code should not be allowed to be downloaded from the Directory Service (if any) or the Internet. - - - - - Reserved. - - - - - Specify if you want the activation to fail if it uses custom marshalling. - - - - - Enables the downloading of code from the directory service or the Internet. - - - - - Indicates that no log messages about activation failure should be written to the Event Log. - - - - - Indicates that activate-as-activator capability is disabled for this activation only. - - - - - Indicates that activate-as-activator capability is enabled for this activation only. - - - - - Indicates that activation should begin from the default context of the current apartment. - - - - - Activate or connect to a 32-bit version of the server; fail if one is not registered. - - - - - Activate or connect to a 64 bit version of the server; fail if one is not registered. - - - - - When this flag is specified, COM uses the impersonation token of the thread, if one is present, for the activation request made by the thread. When this flag is not specified or if the thread does not have an impersonation token, COM uses the process token of the thread's process for the activation request made by the thread. - - - - - Indicates activation is for an app container. Reserved for internal use. - - - - - Specify this flag for Interactive User activation behavior for As-Activator servers. - - - - - Used for loading Proxy/Stub DLLs. - - - - - Bitwise combination of the and the constants. - - - - - Bitwise combination of the , the and the constants. - - - - - Bitwise combination of the and the constants. - - - - - Managed implementation of the interface. See . - - - - - Initializes a new instance of the class. - - Underlying . - - - - Initializes a new instance of the class. - - Underlying . - Indicates whether the underlying stream should be disposed on . - - - - Creates a new stream object with its own seek pointer that references the same bytes as the original stream. - - When this method returns, contains the new stream object. This parameter is passed uninitialized. - HRESULT - - - - Ensures that any changes made to a stream object that is open in transacted mode are reflected in the parent storage. - - A value that controls how the changes for the stream object are committed. - HRESULT - - - - Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream. - - A reference to the destination stream. - The number of bytes to copy from the source stream. - On successful return, contains the actual number of bytes read from the source. - On successful return, contains the actual number of bytes written to the destination. - HRESULT - - - - Restricts access to a specified range of bytes in the stream. - - The byte offset for the beginning of the range. - The length of the range, in bytes, to restrict. - The requested restrictions on accessing the range. - HRESULT - - - - Reads a specified number of bytes from the stream object into memory starting at the current seek pointer. - - When this method returns, contains the data read from the stream. This parameter is passed uninitialized. - The number of bytes to read from the stream object. - A pointer to a ULONG variable that receives the actual number of bytes read from the stream object. - HRESULT - - - - Discards all changes that have been made to a transacted stream since the last Commit call. - - HRESULT - - - - Changes the seek pointer to a new location relative to the beginning of the stream, to the end of the stream, or to the current seek pointer. - - The displacement to add to dwOrigin. - The origin of the seek. The origin can be the beginning of the file, the current seek pointer, or the end of the file. - On successful return, contains the offset of the seek pointer from the beginning of the stream. - HRESULT - - - - Changes the size of the stream object. - - The new size of the stream as a number of bytes. - HRESULT - - - - Retrieves the STATSTG structure for this stream. - - When this method returns, contains a STATSTG structure that describes this stream object. This parameter is passed uninitialized. - Members in the STATSTG structure that this method does not return, thus saving some memory allocation operations. - HRESULT - - - - Removes the access restriction on a range of bytes previously restricted with the LockRegion method. - - The byte offset for the beginning of the range. - The length, in bytes, of the range to restrict. - The access restrictions previously placed on the range. - HRESULT - - - - Writes a specified number of bytes into the stream object starting at the current seek pointer. - - The buffer to write this stream to. - he number of bytes to write to the stream. - On successful return, contains the actual number of bytes written to the stream object. If the caller sets this pointer to Zero, this method does not provide the actual number of bytes written. - HRESULT - - - - Gets a value indicating whether the current stream supports reading. - - - - - Gets a value indicating whether the current stream supports seeking. - - - - - Gets a value indicating whether the current stream supports writing. - - - - - Clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - - - - Gets the length in bytes of the stream. - - - - - Gets or sets the position within the current stream. - - - - - Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. - The zero-based byte offset in buffer at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - - - Sets the position within the current stream. - - A byte offset relative to the origin parameter. - A value of type indicating the reference point used to obtain the new position. - The new position within the current stream. - - - - Sets the length of the current stream. - - The desired length of the current stream in bytes. - - - - Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - An array of bytes. This method copies count bytes from buffer to the current stream. - The zero-based byte offset in buffer at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - - - - Releases the unmanaged resources used by the Stream and optionally releases the managed resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. - - - - - Provides the managed definition of the IStream interface. - - - - - Reads a specified number of bytes from the stream object into memory starting at the current seek pointer. - - When this method returns, contains the data read from the stream. This parameter is passed uninitialized. - The number of bytes to read from the stream object. - A pointer to a ULONG variable that receives the actual number of bytes read from the stream object. - HRESULT - - - - Writes a specified number of bytes into the stream object starting at the current seek pointer. - - The buffer to write this stream to. - he number of bytes to write to the stream. - On successful return, contains the actual number of bytes written to the stream object. If the caller sets this pointer to Zero, this method does not provide the actual number of bytes written. - HRESULT - - - - Changes the seek pointer to a new location relative to the beginning of the stream, to the end of the stream, or to the current seek pointer. - - The displacement to add to dwOrigin. - The origin of the seek. The origin can be the beginning of the file, the current seek pointer, or the end of the file. - On successful return, contains the offset of the seek pointer from the beginning of the stream. - HRESULT - - - - Changes the size of the stream object. - - The new size of the stream as a number of bytes. - HRESULT - - - - Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream. - - A reference to the destination stream. - The number of bytes to copy from the source stream. - On successful return, contains the actual number of bytes read from the source. - On successful return, contains the actual number of bytes written to the destination. - HRESULT - - - - Ensures that any changes made to a stream object that is open in transacted mode are reflected in the parent storage. - - A value that controls how the changes for the stream object are committed. - HRESULT - - - - Discards all changes that have been made to a transacted stream since the last Commit call. - - HRESULT - - - - Restricts access to a specified range of bytes in the stream. - - The byte offset for the beginning of the range. - The length of the range, in bytes, to restrict. - The requested restrictions on accessing the range. - HRESULT - - - - Removes the access restriction on a range of bytes previously restricted with the LockRegion method. - - The byte offset for the beginning of the range. - The length, in bytes, of the range to restrict. - The access restrictions previously placed on the range. - HRESULT - - - - Retrieves the STATSTG structure for this stream. - - When this method returns, contains a STATSTG structure that describes this stream object. This parameter is passed uninitialized. - Members in the STATSTG structure that this method does not return, thus saving some memory allocation operations. - HRESULT - - - - Creates a new stream object with its own seek pointer that references the same bytes as the original stream. - - When this method returns, contains the new stream object. This parameter is passed uninitialized. - HRESULT - - - - Exception for Com Exceptions. - - - - - Throws an if the is not . - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Name of the Cominterface which caused the error. - - - - - Name of the member of the Cominterface which caused the error. - - - - - Initializes a new instance of the class. - - Errorcode. - Name of the interface which contains the COM-function which returned the specified . - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - The StreamingContext object that supplies the contextual information about the source or destination. - - - - Populates a with the data needed to serialize the target object. - - The to populate with data. - The destination (see StreamingContext) for this serialization. - - - - Exposes methods for enumerating, getting, and setting property values. - - - For more information, - . - - - - - Device description - key - - - - - Device interface enabled - key - - - - - Device interface CLSID - key - - - - - Device friendly name - key - - - - - Audio Endpoint Path - key - - - - - Audio Engine Device Format - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Gets the number of properties available. - - - - - Gets or sets the at the specified index. - - - The . - - The index. - The at the specified index. - - - - Gets or sets the for the specified . - - The key. - - - - Returns an enumerator that iterates through the . - - - A that can be used to iterate through the . - - - - - Returns an enumerator that iterates through the . - - - An object that can be used to iterate through the . - - - - - Gets data for a specific property. - - The zero-based index of the property. - The data of the specified property. - The is bigger or equal to . - - - - Gets data for a specific property. - - The of the property. The key can be obtained by calling the method. - The data of the specified property. - - - - Gets a property key from an item's array of properties. - - The zero-based index of the property key in the array of structures. - The . - - - - Sets a new property value, or replaces or removes an existing value. - - The index of the property. - The new property data. - The is bigger or equal to . - - - - Sets a new property value, or replaces or removes an existing value. - - The of the property. The key can be obtained by calling the method. - The new property data. - - - - Saves a property change. - - - For more information see - . - - - - - Represents a native 4 byte boolean value. - - - - - Represents the boolean value true as a . - - - - - Represents the boolean value false as a . - - - - - Initializes a new instance of the structure based on a boolean value. - - The boolean value. - - - - Returns a value indicating whether this instance is equal to a object. - - A value to compare to this instance. - true if obj has the same value as this instance; otherwise, false. - - - - Returns a value indicating whether this instance is equal to a specified object. - - An object to compare to this instance. - true if obj is a and has the same value as this instance; otherwise, false. - - - - Returns the hash code for this instance. - - A hash code for the current . - - - - Implements the operator ==. - - The left. - The right. - - The result of the operator. - - - - - Implements the operator !=. - - The left. - The right. - - The result of the operator. - - - - - Performs an implicit conversion from to . - - The value. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - if set to true [value]. - - The result of the conversion. - - - - - Converts the value of this instance to its equivalent string representation (either "True" or "False"). - - The string representation of this instance. - - - - Defines common HRESULT error codes. - - - - - S_OK - - - - - S_FALSE - - - - - E_ABORT - - - - - E_ACCESSDENIED - - - - - E_NOINTERFACE - - - - - E_FAIL - - - - - E_INVALIDARG - - - - - E_POINTER - - - - - E_NOTIMPL - - - - - E_NOTFOUND - - - - - MF_E_ATTRIBUTENOTFOUND - - - - - MF_E_SHUTDOWN - - - - - AUDCLNT_E_UNSUPPORTED_FORMAT - - - - - AUDCLNT_E_DEVICE_INVALIDATED - - - - - AUDCLNT_S_BUFFER_EMPTY - - - - - Blob - - - - - Number of bytes stored in the blob. - - - - - Pointer to a byte array which stores the data. - - - - - Returns the data stored in the . - - The data stored in the - - - - Converts the data stored in the based on an to a string and returns the string. - - Encoding used to convert the data to a string. - String of the stored data. - - - - Returns a that represents the data stored in the as hex string. - - - A that represents the data stored in the as hex string. - - - - - Specifies the FMTID/PID identifier that programmatically identifies a property. - - - For more information, see - . - - - - - A unique GUID for the property. - - - - - A property identifier (PID). - - - - - Initializes a new instance of the struct. - - The unique GUID for the property. - The property identifier (PID). - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The structure is used to store data. - - For more information, see . - - - - Value type tag. - - - - - Reserved for future use. - - - - - Reserved for future use. - - - - - Reserved for future use. - - - - - VT_I1, Version 1 - - - - - VT_UI1 - - - - - VT_I2 - - - - - VT_UI2 - - - - - VT_I4 - - - - - VT_UI4 - - - - - VT_INT, Version 1 - - - - - VT_UINT, Version 1 - - - - - VT_I8 - - - - - VT_UI8 - - - - - VT_R4 - - - - - VT_R8 - - - - - VT_BOOL - - - - - VT_ERROR - - - - - VT_DATE - - - - - VT_FILETIME - - - - - VT_BLOB - - - - - VT_PTR - - - - - Gets or sets the datatype of the . - - - - - Returns the associated value of the . The type of the returned value is defined through the property. - - The associated value of the . If the datatype is not supported, the method will return null. - Not all datatypes are supported. - - - - Releases the associated memory by calling the PropVariantClear function. - - - - - Returns a that represents the value of this instance. - - - A that represents the value of this instance. - - - - - Represents a native COM object. - - - - - Unsafe native pointer to the COM object. - - - - - Gets a value which indicates whether the got already disposed. - - - - - Native pointer to the COM object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The native pointer of the COM object. - - - - Queries supported interfaces/objects on a . - - The being requested. - The queried com interface/object. - - - - Retrieves a pointer to the supported interface on an object. - - Type of the requested . - A pointer to the requested interface. - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Releases the COM object. - - - - - Releases the COM object. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Finalizes an instance of the class. - - - - - Enables clients to get pointers to other interfaces on a given object through the method, and manage the existence of the object through the and methods. - - - - - Retrieves pointers to the supported interfaces on an object. - - The identifier of the interface being requested. - The address of a pointer variable that receives the interface pointer requested in the parameter. - This method returns S_OK if the interface is supported, and E_NOINTERFACE otherwise. If ppvObject is NULL, this method returns E_POINTER. - - - - Increments the reference count for an interface on an object. This method should be called for every new copy of a pointer to an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Decrements the reference count for an interface on an object. - - The method returns the new reference count. This value is intended to be used only for test purposes. - - - - Specifies the category of an audio stream. - - - - - Other audio stream. - - - - - Media that will only stream when the app is in the foreground. - - - - - Media that can be streamed when the app is in the background. - - - - - Real-time communications, such as VOIP or chat. - - - - - Alert sounds. - - - - - Sound effects. - - - - - Game sound effects. - - - - - Background audio for games. - - - - - Contains the new global debug configuration for XAudio2. Used with the - function. - - - - - Bitmask of enabled debug message types. For a list of possible values take look at: - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_debug_configuration(v=vs.85).aspx. - - - - - Message types that will cause an immediate break. For a list of possible values take look at: - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_debug_configuration(v=vs.85).aspx. - - - - - Indicates whether to log the thread ID with each message. - - - - - Indicates whether to log source files and line numbers. - - - - - Indicates whether to log function names. - - - - - Indicates whether to log message timestamps. - - - - - Provides information about an audio device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Gets the of the Device. - - - - - Defines an effect chain. - - - - - Number of effects in the effect chain for the voice. - - - - - Pointer to an array of structures containing pointers to XAPO instances. - - - - - Contains information about an XAPO for use in an effect chain. - - - - - Pointer to the IUnknown interface of the XAPO object. - - - - - TRUE if the effect should begin in the enabled state. Otherwise, FALSE. - - - - - Number of output channels the effect should produce. - - - - - Defines filter parameters for a source voice. - - - - - The . - - - - - Filter radian frequency calculated as (2 * sin(pi * (desired filter cutoff frequency) / sampleRate)). - The frequency must be greater than or equal to 0 and less than or equal to 1.0f. - The maximum frequency allowable is equal to the source sound's sample rate divided by - six which corresponds to the maximum filter radian frequency of 1. - For example, if a sound's sample rate is 48000 and the desired cutoff frequency is the maximum - allowable value for that sample rate, 8000, the value for Frequency will be 1. - - - - - Reciprocal of Q factor. Controls how quickly frequencies beyond Frequency are dampened. Larger values - result in quicker dampening while smaller values cause dampening to occur more gradually. - Must be greater than 0 and less than or equal to 1.5f. - - - - - Indicates the filter type. - - - Note Note that the DirectX SDK versions of XAUDIO2 do not support the LowPassOnePoleFilter or the - HighPassOnePoleFilter. - - - - - Attenuates (reduces) frequencies above the cutoff frequency. - - - - - Attenuates frequencies outside a given range. - - - - - Attenuates frequencies below the cutoff frequency. - - - - - Attenuates frequencies inside a given range. - - - - - XAudio2.8 only: Attenuates frequencies above the cutoff frequency. This is a one-pole filter, and - has no effect. - - - - - XAudio2.8 only: Attenuates frequencies below the cutoff frequency. This is a one-pole filter, and - has no effect. - - - - - Flags controlling which voice state data should be returned. - - - - - Calculate all values. - - - - - Calculate all values except . - - - - - Internal used IXAudio2EngineCallback-wrapper. The default implementation of this interface is - . - - - - - OnProcessingPassStart - - - - - OnProcessingPassEnd - - - - - OnCriticalError - - Errorcode - - - - The IXAudio2VoiceCallback interface contains methods that notify the client when certain events happen in a given - . - - - - - Called during each processing pass for each voice, just before XAudio2 reads data from the voice's buffer queue. - - - The number of bytes that must be submitted immediately to avoid starvation. This allows the implementation of - just-in-time streaming scenarios; the client can keep the absolute minimum data queued on the voice at all times, - and pass it fresh data just before the data is required. This model provides the lowest possible latency attainable - with XAudio2. For xWMA and XMA data BytesRequired will always be zero, since the concept of a frame of xWMA or XMA - data is meaningless. - Note: In a situation where there is always plenty of data available on the source voice, BytesRequired should - always report zero, because it doesn't need any samples immediately to avoid glitching. - - - - - Called just after the processing pass for the voice ends. - - - - - Called when the voice has just finished playing a contiguous audio stream. - - - - - Called when the voice is about to start processing a new audio buffer. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice finishes processing a buffer. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice reaches the end position of a loop. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when a critical error occurs during voice processing. - - - Context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - The HRESULT code of the error encountered. - - - - Specifies values for the and - . - - - - - Log nothing. - - - - - Log error messages. - - - - - Log warning messages. Note: Enabling also enables . - - - - - Log informational messages. - - - - - Log detailed informational messages. Note: Enabling also enables . - - - - - Log public API function entries and exits. - - - - - Log internal function entries and exits. Note: Enabling also enables - . - - - - - Log delays detected and other timing data. - - - - - Log usage of critical sections and mutexes. - - - - - Log memory heap usage information. - - - - - Log audio streaming information. - - - - - All - - - - - Contains performance information. Used by . - - - - - CPU cycles spent on audio processing since the last call to the or - function. - - - - - Total CPU cycles elapsed since the last call. Note: This only counts cycles on the CPU on which XAudio2 is running. - - - - - Fewest CPU cycles spent on processing any single audio quantum since the last call. - - - - - Most CPU cycles spent on processing any single audio quantum since the last call. - - - - - Total memory currently in use. - - - - - Minimum delay that occurs between the time a sample is read from a source buffer and the time it reaches the - speakers. - - - - - Total audio dropouts since the engine started. - - - - - Number of source voices currently playing. - - - - - Total number of source voices currently in existence. - - - - - Number of submix voices currently playing. - - - - - Number of resampler xAPOs currently active. - - - - - Number of matrix mix xAPOs currently active. - - - - - Not supported on Windows. Xbox 360. Number of source voices decoding XMA data. - - - - - Not supported on Windows. A voice can use more than one XMA stream. - - - - - Flags that specify how a is stopped. - - - - - None - - - - - Continue emitting effect output after the voice is stopped. - - - - - Extends the the to enable real-time audio streaming. - - - - - Initializes a new instance of the class with a default buffer size of 100ms. - - Instance of the class, used to create the . - The instance which provides audio data to play. - - - - Initializes a new instance of the class. - - Instance of the class, used to create the . - The instance which provides audio data to play. - - Buffersize of the internal buffers, in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - - - - Initializes a new instance of the class. - - Pointer to a object. - - instance which receives notifications from the - which got passed as a pointer (see the argument). - - which provides the audio data to stream. - - Buffersize of the internal used buffers in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - It is recommended to use the method instead of the this constructor. - - - - Creates an instance of the class. - - Instance of the class. - which provides the audio data to stream. - - Buffersize of the internal used buffers in milliseconds. Values in the range from 70ms to - 200ms are recommended. - - Configured instance. - - - - Occurs when the playback stops and no more data is available. - - This event occurs whenever the event occurs. - - - - Notifies the class that new data got requested. If there are any buffers which - are currently not queued and the underlying holds any more data, this data refills the - internal used buffers and provides audio data to play. - - - - - Stops and disposes the , closes the internal used waithandle and frees the - allocated memory of all used buffers. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Provides a mechanism for playing instances. - - - - - Maximum amount of instances a can - contain. - - Limited by the method. - - - - Gets the default singleton instance. - - - - - Gets the number of items which got added to the . - - - - - Disposes the . - - - - - Adds a to the . - - - The instance to add to the - . - - - - - Removes a from the . - - - The instance to remove from the - . - - - - - Disposes the and stops the internal playback thread. - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls the method. - - - - - Default implementation of the interface. - - - - - Called during each processing pass for each voice, just before XAudio2 reads data from the voice's buffer queue. - The only argument passed to the eventhandler is the number of required bytes: - The number of bytes that must be submitted immediately to avoid starvation. This allows the implementation of - just-in-time streaming scenarios; the client can keep the absolute minimum data queued on the voice at all times, - and pass it fresh data just before the data is required. This model provides the lowest possible latency attainable - with XAudio2. For xWMA and XMA data BytesRequired will always be zero, since the concept of a frame of xWMA or XMA - data is meaningless. - Note: In a situation where there is always plenty of data available on the source voice, BytesRequired should - always report zero, because it doesn't need any samples immediately to avoid glitching. - - - - - Called just after the processing pass for the voice ends. - - - - - Called when the voice has just finished playing a contiguous audio stream. - - - - - Called when the voice is about to start processing a new audio buffer. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice finishes processing a buffer. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when the voice reaches the end position of a loop. - The only argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - - - - - Called when a critical error occurs during voice processing. - The first argument passed to the eventhandler is a context pointer that was assigned to the pContext member of the - structure when the buffer was submitted. - The second argument passed to the eventhandler is the HRESULT error code of the critical error. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Contains information about the creation flags, input channels, and sample rate of a voice. - - - - - Flags used to create the voice; see the individual voice interfaces for more information. - - - - - Flags that are currently set on the voice. - - - - - The number of input channels the voice expects. - - - - - The input sample rate the voice expects. - - - - - VoiceFlags - - - - - None - - - - - No pitch control is available on the voice. - - - - - No sample rate conversion is available on the voice. The voice's outputs must have the same sample rate. - - - - - The filter effect should be available on this voice. - - - - - XAudio2.8 only: Not supported on Windows. - - - - - XAudio2.7 only: Indicates that no samples were played. - - - - - Defines a destination voice that is the target of a send from another voice and specifies whether a filter should - be used. - - - - - Either or . - - - - - The destination voice. - - - - - Creates a new instance of the structure. - - The . Must be either or . - The destination voice. Must not be null. - - - - Creates a new instance of the structure. - - The . Must be either or . - Pointer to the destination voice. Must not be . - - - - VoiceSendFlags - - - - - None. - - - - - Indicates a filter should be used on a voice send. - - - - - Defines a set of voices to receive data from a single output voice. - - - - - Number of voices to receive the output of the voice. An OutputCount value of 0 indicates the voice should not send - output to any voices. - - - - - Array of s. - - - - - Returns the voice's current state and cursor position data. - - - - - Pointer to a buffer context provided in the that is processed currently, or, - if the voice is stopped currently, to the next buffer due to be processed. - is NULL if there are no buffers in the queue. - - - - - Number of audio buffers currently queued on the voice, including the one that is processed currently. - - - - - Total number of samples processed by this voice since it last started, or since the last audio stream ended (as - marked with the flag). - This total includes samples played multiple times due to looping. - Theoretically, if all audio emitted by the voice up to this time is captured, this parameter would be the length of - the audio stream in samples. - If you specify when you call - , - this member won't be calculated, and its value is unspecified on return from - . - takes about one-third as much time to - complete when you specify . - - - - - Flags which define calculate flags for calculating the 3D audio parameters. - - - - - Enables matrix coefficient table calculation. - - - - - Enables delay time array calculation (stereo only). - - - - - Enables low pass filter (LPF) direct-path coefficient calculation. - - - - - Enables LPF reverb-path coefficient calculation. - - - - - Enables reverb send level calculation. - - - - - Enables Doppler shift factor calculation. - - - - - Enables emitter-to-listener interior angle calculation. - - - - - Fills the center channel with silence. This flag allows you to keep a 6-channel matrix so you do not have to remap the channels, but the center channel will be silent. This flag is only valid if you also set . - - - - - Applies an equal mix of all source channels to a low frequency effect (LFE) destination channel. It only applies to matrix calculations with a source that does not have an LFE channel and a destination that does have an LFE channel. This flag is only valid if you also set . - - - - - Specifies directionality for a single-channel non-Low-Frequency-Effect emitter by scaling DSP behavior with respect to the emitter's orientation. - - - For a detailed explanation of sound cones see . - - - - - X3DAUDIO_2PI - - - - - Inner cone angle in radians. This value must be within 0.0f to . - - - - - Outer cone angle in radians. This value must be within InnerAngle to . - - - - - Volume scaler on/within inner cone. This value must be within 0.0f to 2.0f. - - - - - Volume scaler on/beyond outer cone. This value must be within 0.0f to 2.0f. - - - - - LPF direct-path or reverb-path coefficient scaler on/within inner cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. - - - - - LPF direct-path or reverb-path coefficient scaler on or beyond outer cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. - - - - - Reverb send level scaler on or within inner cone. This must be within 0.0f to 2.0f. - - - - - Reverb send level scaler on/beyond outer cone. This must be within 0.0f to 2.0f. - - - - - Defines a DSP setting at a given normalized distance. - - - - - Normalized distance. This must be within 0.0f to 1.0f. - - - - - DSP control setting. - - - - - Receives the results from a call to . - See http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.x3daudio.x3daudio_dsp_settings%28v=vs.85%29.aspx for more details. - - - - - Caller provided array that will be initialized with the volume level of each source channel present in each - destination channel. The array must have at least ( × ) - elements. The array is arranged with the source channels as the column index of the array and the destination - channels as the row index of the array. - - - - - Caller provided delay time array, which receives delays for each destination channel in milliseconds. This array - must have at least elements. X3DAudio doesn't actually perform the delay. It simply - returns the - coefficients that may be used to adjust a delay DSP effect placed in the effect chain. The - member can - be NULL if the flag is not specified when calling - . - Note This member is only returned when X3DAudio is initialized for stereo output. For typical Xbox 360 usage, it - will not return any data at all. - - - - - Number of source channels. This must be initialized to the number of emitter channels before calling - . - - - - - Number of source channels. This must be initialized to the number of emitter channels before calling - . - - - - - LPF direct-path coefficient. Only calculated if the flag is specified when - calling . - When using X3DAudio with XAudio2 the value returned in the LPFDirectCoefficient member would be applied to a low - pass filter on a source voice with . - - - - - LPF reverb-path coefficient. Only calculated if the flag is specified when - calling . - - - - - Reverb send level. Only calculated if the flag is specified when calling - . - - - - - Doppler shift factor. Scales the resampler ratio for Doppler shift effect, where: - effective_frequency = DopplerFactor × original_frequency. - Only calculated if the flag is specified when calling - . - When using X3DAudio with XAudio2 the value returned in the DopplerFactor would be applied to a source voice with - . - - - - - Emitter-to-listener interior angle, expressed in radians with respect to the emitter's front orientation. - Only calculated if the flag is specified when calling - . - - - - - Distance in user-defined world units from the listener to the emitter base position. - - - - - Component of emitter velocity vector projected onto emitter-to-listener vector in user-defined world units per - second. - Only calculated if the flag is specified when calling - . - - - - - Component of listener velocity vector projected onto the emitter->listener vector in user-defined world units per - second. Only calculated if the flag is specified when calling - . - - - - - Gets the caller provided array that will be initialized with the volume level of each source channel present in each - destination channel. The array must have at least ( × ) - elements. The array is arranged with the source channels as the column index of the array and the destination - channels as the row index of the array. - - - - - Gets the caller provided delay time array, which receives delays for each destination channel in milliseconds. This array - must have at least elements. X3DAudio doesn't actually perform the delay. It simply - returns the - coefficients that may be used to adjust a delay DSP effect placed in the effect chain. This won't be calculated if the flag is not specified when calling - . - - - - - Gets the number of source channels. - - - - - Gets the number of source channels. - - - - - Gets the LPF direct-path coefficient. Only calculated if the flag is specified when - calling . - When using X3DAudio with XAudio2 the value returned in the LPFDirectCoefficient member would be applied to a low - pass filter on a source voice with . - - - - - Gets the LPF reverb-path coefficient. Only calculated if the flag is specified when - calling . - - - - - Gets the reverb send level. Only calculated if the flag is specified when calling - . - - - - - Gets the doppler shift factor. Scales the resampler ratio for Doppler shift effect, where: - effective_frequency = DopplerFactor × original_frequency. - Only calculated if the flag is specified when calling - . - When using X3DAudio with XAudio2 the value returned in the DopplerFactor would be applied to a source voice with - . - - - - - Gets the emitter-to-listener interior angle, expressed in radians with respect to the emitter's front orientation. - Only calculated if the flag is specified when calling - . - - - - - Gets the distance in user-defined world units from the listener to the emitter base position. - - - - - Gets the component of emitter velocity vector projected onto emitter-to-listener vector in user-defined world units per - second. - Only calculated if the flag is specified when calling - . - - - - - Gets the component of listener velocity vector projected onto the emitter->listener vector in user-defined world units per - second. Only calculated if the flag is specified when calling - . - - - - - Initializes a new instance of the class. - - The number of source channels. - The number of destination channels. - - - - Defines a single-point or multiple-point 3D audio source that is used with an arbitrary number of sound channels. - - - - - Gets or sets the sound cone. Used only with single-channel emitters for matrix, LPF (both direct and reverb paths), and reverb calculations. NULL specifies the emitter is omnidirectional. - - - - - Gets or sets the orientation of the front direction. This value must be orthonormal with . must be normalized when used. For single-channel emitters without cones is only used for emitter angle calculations. For multi channel emitters or single-channel with cones is used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Gets or sets the orientation of the top direction. This value must be orthonormal with . is only used with multi-channel emitters for matrix calculations. - - - - - Gets or sets the position in user-defined world units. This value does not affect . - - - - - Gets or sets the velocity vector in user-defined world units/second. This value is used only for doppler calculations. It does not affect . - - - - - Gets or sets the value to be used for the inner radius calculations. If is 0, then no inner radius is used, but may still be used. This value must be between 0.0f and FLT_MAX. - - - - - Gets or sets the value to be used for the inner radius angle calculations. This value must be between 0.0f and /4.0 (which equals 45°). - - - - - Gets or sets the number of emitters defined by the class. Must be greater than 0. - - - - - Gets or sets the distance from that channels will be placed if is greater than 1. is only used with multi-channel emitters for matrix calculations. Must be greater than or equal to 0.0f. - - - - - Gets or sets the table of channel positions, expressed as an azimuth in radians along the channel radius with respect to the front orientation vector in the plane orthogonal to the top orientation vector. An azimuth of 2* specifies a channel is a low-frequency effects (LFE) channel. LFE channels are positioned at the emitter base and are calculated with respect to only, never . must have at least elements, but can be NULL if = 1. The table values must be within 0.0f to 2*. is used with multi-channel emitters for matrix calculations. - - - - - Gets or sets the volume-level distance curve, which is used only for matrix calculations. NULL specifies a specialized default curve that conforms to the inverse square law, such that when distance is between 0.0f and × 1.0f, no attenuation is applied. When distance is greater than × 1.0f, the amplification factor is (× 1.0f)/distance. At a distance of × 2.0f, the sound will be at half volume or -6 dB, at a distance of × 4.0f, the sound will be at one quarter volume or -12 dB, and so on. and are independent of each other. does not affect LFE channel volume. - - - - - Gets or sets the LFE roll-off distance curve, or NULL to use default curve: [0.0f, ×1.0f], [ ×1.0f, 0.0f]. A NULL value for specifies a default curve that conforms to the inverse square law with distances <= clamped to no attenuation. and are independent of each other. does not affect non LFE channel volume. - - - - - Gets or sets the low-pass filter (LPF) direct-path coefficient distance curve, or NULL to use the default curve: [0.0f, 1.0f], [1.0f, 0.75f]. is only used for LPF direct-path calculations. - - - - - Gets or sets the LPF reverb-path coefficient distance curve, or NULL to use default curve: [0.0f, 0.75f], [1.0f, 0.75f]. is only used for LPF reverb path calculations. - - - - - Gets or sets the reverb send level distance curve, or NULL to use default curve: [0.0f, 1.0f], [1.0f, 0.0f]. - - - - - Gets or sets the curve distance scaler that is used to scale normalized distance curves to user-defined world units, and/or to exaggerate their effect. This does not affect any other calculations. The value must be within the range FLT_MIN to FLT_MAX. is only used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Doppler shift scaler that is used to exaggerate Doppler shift effect. is only used for Doppler calculations and does not affect any other calculations. The value must be within the range 0.0f to FLT_MAX. - - - - - Defines a point of 3D audio reception. - - - A listener's front and top vectors must be orthonormal. To be considered orthonormal, a pair of vectors must - have a magnitude of 1 +- 1x10-5 and a dot product of 0 +- 1x10-5. - - - - - Gets or sets the orientation of front direction. When is NULL OrientFront is used only for - matrix and delay calculations. When is not NULL OrientFront is used for matrix, LPF (both - direct and reverb paths), and reverb calculations. This value must be orthonormal with - when used. - - - - - Gets or sets the orientation of top direction, used only for matrix and delay calculations. This value must be - orthonormal with when used. - - - - - Gets or sets the position in user-defined world units. This value does not affect . - - - - - Gets or sets the velocity vector in user-defined world units per second, used only for doppler calculations. This - value does not affect . - - - - - Gets or sets the to use. Providing a listener cone will specify that additional calculations - are performed when determining the volume and filter DSP parameters for individual sound sources. A NULL - value specifies an omnidirectional sound and no cone processing is applied. - is only used for matrix, LPF (both direct and reverb paths), and reverb calculations. - - - - - Provides access to the X3DAudio functions. - - - - - Initializes a new instance of the class. - - Assignment of channels to speaker positions. This value must not be zero. - - - - Initializes a new instance of class. - - - Speed of sound, in user-defined world units per second. Use this value only for doppler - calculations. It must be greater than or equal to zero. - - Assignment of channels to speaker positions. This value must not be zero. - - - - Calculates DSP settings with respect to 3D parameters. - - Represents the point of reception. - Represents the sound source. - Bitwise combination of specifying which 3D parameters to calculate. - - Instance of the class that receives the calculation results. - - - - - Disposes the instance. - - - - - Destructor which calls . - - - - - X3DAUDIO_HANDLE is an opaque data structure. Because the operating system doesn't allocate any additional storage - for the 3D audio instance handle, you don't need to free or close it. - - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all - changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Fired by XAudio2 just before an audio processing pass begins. - - - - - Fired by XAudio2 just after an audio processing pass ends. - - - - - Fired if a critical system error occurs that requires XAudio2 to be closed down and restarted. - - - - - Internal default ctor. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The XAudio2 subversion to use. - - - - Gets current resource usage details, such as available memory or CPU usage. - - - - - Gets the default device which can be used to create a mastering voice. - - Using XAudio2.7 the default device is 0 (as an integer). Using XAudio2.8 the default device is null. - - - - Gets the of the XAudio2 object. - - - - - Creates a new instance of the class. - If no supported XAudio2 version is available, the CreateXAudio2 method throws an - . - - A new instance. - - - - Creates a new instance of the class. - If no supported XAudio2 version is available, the CreateXAudio2 method throws an - . - - The to use. - A new instance. - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - If successful, returns a pointer to the new object. -
- - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first - mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - If successful, returns a new object. -
- - - Creates and configures a source voice. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - If successful, returns a new object. -
- - - Creates and configures a source voice. - - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The - sample rate of a source voice must be between and - . - - If successful, returns a new object. -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - On success, returns a pointer to the new object. - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value - are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - On success, returns a new object. - - - - Creates and configures a submix voice. - - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - On success, returns a new object. - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - HRESULT - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - If successful, returns a pointer to the new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - XAudio2.8 only: The audio stream category to use for this mastering voice. - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - - Identifier of the device to receive the output audio. - Specifying the default value of NULL (for XAudio2.8) or 0 (for XAudio2.7) causes - XAudio2 to select the global default audio device. - - On XAudio2.7: Use the and the method to enumerate device. Pass its index (valid range from 0 to ) to the argument. - On XAudio2.8: Use the class to enumerate objects. Pass its to the argument. - - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - - Number of channels the mastering voice expects in its input audio. must be less - than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - If successful, returns a new object. - - - - Creates and configures a mastering voice. - - If successful, returns a new object. - - - - Starts the audio processing thread. - - HRESULT - - - - Starts the audio processing thread. - - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - - - - Returns the default device. - - The default device. - - - - Initializes the engine callback. - - - - - Represents an audio data buffer. - - - - - Maximum non-infinite LoopCount. - - - - - Infinite Loop. - - - - - MaxBufferBytes. See . - - - - - Flags that provide additional information about the audio buffer. - May be or . - - - - - Size of the audio data, in bytes. Must be no larger than for PCM data. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx. - - - - - Pointer to the audio data. - - - - - First sample in the buffer that should be played. - For XMA buffers this value must be a multiple of 128 samples. - - - - - Length of the region to be played, in samples. - A value of zero means to play the entire buffer, and, in this case, must be zero as well. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx. - - - - - First sample of the region to be looped. The value of must be less than - + . - can be less than . must be 0 if - is 0. - - - - - Length of the loop region, in samples. - The value of + must be greater than and - less than + . - must be zero if is 0. - If is not 0 then a loop length of zero indicates the entire sample should be looped. - - - - - Number of times to loop through the loop region. - This value can be between 0 and . - If LoopCount is zero no looping is performed and and must be 0. - To loop forever, set to . - - - - - Context value to be passed back in callbacks to the client. This may be . - - - - - Initializes a new instance of the structure. - - - - - - Returns a instance for the underlying . - - Call - - - - - - - Frees the allocated memory. - - - - - Frees the allocated memory. - - - - - Provides data for the , the and the - event. - - - - - Initializes a new instance of the class. - - - The context pointer that was assigned to the member - of the structure when the buffer was submitted. - - - - - Gets the context pointer that was assigned to the member of the - structure when the buffer was submitted. - - - - - Flags that provide additional information about the audio buffer. - - - - - None - - - - - Indicates that there cannot be any buffers in the queue after this buffer. The only effect of this flag is to - suppress debug output warnings caused by starvation of the buffer queue. - - - - - XAudio2CriticalErrorEventArgs - - - - - Initializes a new instance of the class. - - Errorcode - - - - Errorcode - - - - - Describes device roles of an XAudio2 Device. Used in . - - - - - Device is not used as the default device for any applications. - - - - - Device is used in audio console applications. - - - - - Device is used to play multimedia. - - - - - Device is used for voice communication. - - - - - Device is used in for games. - - - - - Devices is the default device for all applications. - - - - - The role of the device is not valid. - - - - - XAudio2EngineCallback - - - - - Fired by XAudio2 just before an audio processing pass begins. - - - - - Fired by XAudio2 just after an audio processing pass ends. - - - - - Fired if a critical system error occurs that requires XAudio2 to be closed down and restarted. - - - - - XAudio2-COMException. - - - - - Initializes a new instance of the class. - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - - The StreamingContext object that supplies the contextual information about the source or - destination. - - - - - Throws an if the is not . - - Errorcode. - - Name of the interface which contains the COM-function which returned the specified - . - - Name of the COM-function which returned the specified . - - - - A mastering voice is used to represent the audio output device. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - XAudio2.8 only: Gets the channel mask for this voice. - - - - - XAudio2.8 only: Returns the channel mask for this voice. - - - Returns the channel mask for this voice. This corresponds to the - member of the class. - - HRESULT - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - The number of bytes that must be submitted immediately to avoid starvation. - - - - Gets the number of bytes that must be submitted immediately to avoid starvation. - - - - - Defines values to use with XAudio2Create to specify available processors. - - - - - Processor 1 - - - - - Processor 2 - - - - - Processor 3 - - - - - Processor 4 - - - - - Processor 5 - - - - - Processor 6 - - - - - Processor 7 - - - - - Processor 8 - - - - - Processor 9 - - - - - Processor 10 - - - - - Processor 11 - - - - - Processor 12 - - - - - Processor 13 - - - - - Processor 14 - - - - - Processor 15 - - - - - Processor 16 - - - - - Processor 17 - - - - - Processor 18 - - - - - Processor 19 - - - - - Processor 20 - - - - - Processor 21 - - - - - Processor 22 - - - - - Processor 23 - - - - - Processor 24 - - - - - Processor 25 - - - - - Processor 26 - - - - - Processor 27 - - - - - Processor 28 - - - - - Processor 29 - - - - - Processor 30 - - - - - Processor 31 - - - - - Processor 32 - - - - - Any processor - - - - - Default processor for XAudio2.7, which is defined as . - - - - - Default processor for XAudio2.8, which is defined as . - - - - - Use a source voice to submit audio data to the XAudio2 processing pipeline.You must send voice data to a mastering - voice to be heard, either directly or through intermediate submix voices. - - - - - Gets the of the source voice. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - Flags that control how the voice is started. Must be 0. - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - Flags that control how the voice is started. Must be 0. - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Starts consumption and processing of audio by the voice. Delivers the result to any connected submix or mastering - voices, or to the output device. - - - - - Stops consumption of audio by the current voice. - - - Flags that control how the voice is stopped. Can be or - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Stops consumption of audio by the current voice. - - - - - Stops consumption of audio by the current voice. - - - Flags that control how the voice is stopped. Can be or - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Adds a new audio buffer to the voice queue. - - Pointer to an structure to queue. - Pointer to an additional XAudio2BufferWma structure used when submitting WMA data. - HRESULT - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.submitsourcebuffer(v=vs.85).aspx. - - - - - Adds a new audio buffer to the voice queue. - - structure to queue. - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.submitsourcebuffer(v=vs.85).aspx. - - - - - Removes all pending audio buffers from the voice queue. If the voice is started, the buffer that is currently - playing is not removed from the queue. - - HRESULT - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.flushsourcebuffers(v=vs.85).aspx. - - - - - Removes all pending audio buffers from the voice queue. If the voice is started, the buffer that is currently - playing is not removed from the queue. - - - See - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.flushsourcebuffers(v=vs.85).aspx. - - - - - Notifies an XAudio2 voice that no more buffers are coming after the last one that is currently in its queue. - - HRESULT - - - - Notifies an XAudio2 voice that no more buffers are coming after the last one that is currently in its queue. - - - - - Stops looping the voice when it reaches the end of the current loop region. - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Stops looping the voice when it reaches the end of the current loop region. - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Stops looping the voice when it reaches the end of the current loop region. - - - - - Returns the voice's current cursor position data. - - structure containing the state of the voice. - - - - Returns the voice's current cursor position data. - - - XAudio2.8 only: Flags controlling which voice state data should be returned. - Valid values are or . - The default value is . If you specify - , GetState - returns only the buffer state, not the sampler state. - GetState takes roughly one-third as much time to complete when you specify - . - - structure containing the state of the voice. - If the is not the parameter will be ignored. - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - Identifies this call as part of a deferred batch. For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the frequency adjustment ratio of the voice. - - - Frequency adjustment ratio. This value must be between and - the MaxFrequencyRatio parameter specified when the voice was created - - . - - - - - Returns the frequency adjustment ratio of the voi - - Current frequency adjustment ratio if successful. - - - - Reconfigures the voice to consume source data at a different sample rate than the rate specified when the voice was - created. - - - The new sample rate the voice should process submitted data at. Valid sample rates - are 1kHz to 200kHz. - - HRESULT - - - - Reconfigures the voice to consume source data at a different sample rate than the rate specified when the voice was - created. - - - The new sample rate the voice should process submitted data at. Valid sample rates - are 1kHz to 200kHz. - - - - - A submix voice is used primarily for performance improvements and effects processing. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Defines supported XAudio2 subversions. - - - - - XAudio2.7 - - - - - XAudio2.8 - - - - - Represents the base class from which , and - are derived. - - - - - Gets the XAudio2 Version. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - The to use. - - - - Gets the of the . - These details include information about the number of input channels, the sample rate and the - . - - - - - Gets or sets the of the . - - - - - Gets or sets the volume of the . The default value is 1.0. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns information about the creation flags, input channels, and sample rate of a voice. - - object containing information about the voice. - HRESULT - - - - Designates a new set of submix or mastering voices to receive the output of the voice. - - - VoiceSends structure which contains Output voices. If is null, the voice will send - its output to the current mastering voice. All of the voices in a send list must have the same input sample rate. - - HRESULT - - - - Designates a new set of submix or mastering voices to receive the output of the voice. - - - Array of s. if is null, the voice will send - its output to the current mastering voice. - All voices in the must have the same input sample rate. - - - - - Replaces the effect chain of the voice. - - - Describes the new effect chain to use. - If null is passed, the current effect chain is removed. - - HRESULT - - - - Replaces the effect chain of the voice. - - - Describes the new effect chain to use. - If null is passed, the current effect chain is removed. - - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Enables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Disables the effect at a given position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - - - - Returns the running state of the effect at a specified position in the effect chain of the voice. - - Zero-based index of an effect in the effect chain of the voice. - Returns true if the effect is enabled. If the effect is disabled, returns false. - - - - Returns whether the effect at the specified position in the effect chain is enabled. - - Zero-based index of an effect in the effect chain of the voice. - Returns true if the effect is enabled. If the effect is disabled, returns false. - - - - Sets parameters for a given effect in the voice's effect chain. - - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - Size of the array in bytes. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets parameters for a given effect in the voice's effect chain. - - Effect parameter. - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - - - - Sets parameters for a given effect in the voice's effect chain. - - Effect parameter. - Zero-based index of an effect within the voice's effect chain. - New values of the effect-specific parameters. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Returns the current effect-specific parameters of a given effect in the voice's effect chain. - - Zero-based index of an effect within the voice's effect chain. - Returns the current values of the effect-specific parameters. - Size of the array in bytes. - HRESULT - - - - Returns the current effect-specific parameters of a given effect in the voice's effect chain. - - Effect parameters. - Zero-based index of an effect within the voice's effect chain. - Effect parameters value. - - - - Sets the voice's filter parameters. - - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the voice's filter parameters. - - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Gets the voice's filter parameters. - - - structure containing the filter - information. - - HRESULT - - - - Gets the voice's filter parameters. - - structure containing the filter information. - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the filter parameters on one of this voice's sends. - - The destination voice of the send whose filter parameters will be set. - - structure containing the filter - information. - - - - - Returns the filter parameters from one of this voice's sends. - - The destination voice of the send whose filter parameters will be read. - - structure containing the filter - information. - - HRESULT - - - - Returns the filter parameters from one of this voice's sends. - - The destination voice of the send whose filter parameters will be read. - structure containing the filter information. - - - - Sets the overall volume level for the voice. - - Overall volume level to use. See Remarks for more information on volume levels. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the overall volume level for the voice. - - Overall volume level to use. See Remarks for more information on volume levels. - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Gets the current overall volume level of the voice. - - - Returns the current overall volume level of the voice. See Remarks for more information on volume - levels. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Gets the current overall volume level of the voice. - - The current overall volume level of the voice. See Remarks for more information on volume levels. - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume levels for the voice, per channel. This method is valid only for source and submix voices, because - mastering voices do not specify volume per channel. - - Number of channels in the voice. - - Array containing the new volumes of each channel in the voice. The array must have - elements. See Remarks for more information on volume levels. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns the volume levels for the voice, per channel. - These settings are applied after the effect chain is applied. - This method is valid only for source and submix voices, because mastering voices do not specify volume per channel. - - Confirms the channel count of the voice. - - Returns the current volume level of each channel in the voice. The array must have at least - elements. - See remarks for more information on volume levels. - - HRESULT - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Returns the volume levels for the voice, per channel. - These settings are applied after the effect chain is applied. - This method is valid only for source and submix voices, because mastering voices do not specify volume per channel. - - Confirms the channel count of the voice. - - Returns the current volume level of each channel in the voice. The has at least - elements. - - - The master volume level is applied at different times depending on the type of voice. - For submix and mastering voices the volume level is applied just before the voice's built in filter and effect - chain is applied. - For source voices the master volume level is applied after the voice's filter and effect - chain is applied. Volume levels are expressed as floating-point amplitude multipliers - between -2^24 and 2^24, with a maximum - gain of 144.5 dB. A volume level of 1.0 means there is no attenuation or gain and 0 means silence. - Negative levels can be used to invert the audio's phase. - - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - HRESULT - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - Identifies this call as part of a deferred batch. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/ee415807(v=vs.85).aspx. - - - - - Sets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - - Destination for which to set volume levels. - If the voice sends to a single target voice then specifying null will cause SetOutputMatrix to operate on that - target voice. - - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.setoutputmatrix(v=vs.85).aspx. - - - - - Gets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - The destination to retrieve the output matrix for. - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.getoutputmatrix(v=vs.85).aspx. - - HRESULT - - - - Gets the volume level of each channel of the final output for the voice. These channels are mapped to the input - channels of a specified destination voice. - - The destination to retrieve the output matrix for. - - Confirms the output channel count of the voice. This is the number of channels that are - produced by the last effect in the chain. - - Confirms the input channel count of the destination voice. - - Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. - The level sent from source channel S to destination channel D is specified in the form levelMatrix[SourceChannels × - D + S]. - For more details see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.getoutputmatrix(v=vs.85).aspx. - - - - - Destroys the voice. If necessary, stops the voice and removes it from the XAudio2 graph. - - - - - Disposes the and calls the method.. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Provides data for the event. - - - - - Initializes a new instance of the class. - - - The context pointer that was assigned to the member - of the structure when the buffer was submitted. - - The HRESULT code of the error encountered - - - - Gets the HRESULT code of the error encountered. - - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - This constructor already calls . Don't call it a second time. - - - - Initializes a new instance of the class. - - - Specifies whether the XAudio2 engine should be created in debug mode. Pass true to enable the debug - mode. - - - Specifies which CPU to use. Use as - default value. - - This constructor already calls . Don't call it a second time. - - - - Returns the number of available audio output devices. - - Number of available audio output devices. - HRESULT - - - - Returns the number of available audio output devices. - - Number of available audio output devices. - - - - Returns information about an audio output device. - - - Index of the device to be queried. This value must be less than the count returned by - . - - structure. - HRESULT - - - - Returns information about an audio output device. - - - Index of the device to be queried. This value must be less than the count returned by - . - - structure. - - - - Sets XAudio2 parameters and prepares XAudio2 for use. - - Flags that specify the behavior of the XAudio2 object. This value must be 0. - - Specifies which CPU to use. Use as default value. - - HRESULT - - - - Sets XAudio2 parameters and prepares XAudio2 for use. - - Flags that specify the behavior of the XAudio2 object. This value must be 0. - - Specifies which CPU to use. Use as default value. - - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. Specifying the default value of 0 (zero) - causes XAudio2 to select the global default audio device. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - Not valid for XAudio 2.7. - HRESULT - - - - Starts the audio processing thread. - - HRESULT - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Returns the default device. - - The default device. - - - - is the class for the XAudio2 object that manages all audio engine states, the audio - processing thread, the voice graph, and so forth. - - - - - The denominator of a quantum unit. In 10ms chunks (= 1/100 seconds). - - - - - Minimum sample rate is 1000 Hz. - - - - - Maximum sample rate is 200 kHz. - - - - - The minimum frequency ratio is 1/1024. - - - - - Maximum frequency ratio is 1024. - - - - - The default value for the frequency ratio is 4. - - - - - The maximum number of supported channels is 64. - - - - - Value which indicates that the default number of channels should be used. - - - - - Values which indicates that the default sample rate should be used. - - - - - Value which can be used in combination with the method to commit all changes. - - - - - Values which indicates that the made changes should be commited instantly. - - - - - Initializes a new instance of the class. - - Native pointer of the object. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - Specifies which CPU to use. Use as - default value. - - - - - Adds an from the engine callback list. - - - object to add to the engine - callback list. - - HRESULT - - - - Removes an from the engine callback list. - - - object to remove from the engine - callback list. If the given interface is present more than once in the list, only the first instance in the list - will be removed. - - - - - Creates and configures a source voice. For more information see - http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2.ixaudio2.createsourcevoice(v=vs.85).aspx. - - If successful, returns a pointer to the new object. - - Pointer to a . The following formats are supported: -
    -
  • 8-bit (unsigned) integer PCM
  • 16-bit integer PCM (optimal format for XAudio2)
  • -
  • 20-bit integer PCM (either in 24 or 32 bit containers)
  • -
  • 24-bit integer PCM (either in 24 or 32 bit containers)
  • 32-bit integer PCM
  • -
  • 32-bit float PCM (preferred format after 16-bit integer)
  • -
- The number of channels in a source voice must be less than or equal to . The sample - rate of a source voice must be between and . - - - that specify the behavior of the source voice. A flag can be - or a combination of one or more of the following. - Possible values are , and - . is not supported on Windows. - - - Highest allowable frequency ratio that can be set on this voice. The value for this - argument must be between and . - - - Client-provided callback interface, . This parameter is - optional and can be null. - - - List of structures that describe the set of destination voices for the - source voice. If is NULL, the send list defaults to a single output to the first mastering - voice created. - - - List of structures that describe an effect chain to use in the - source voice. This parameter is optional and can be null. - - HRESULT -
- - - Creates and configures a submix voice. - - On success, returns a pointer to the new object. - - Number of channels in the input audio data of the submix voice. The - must be less than or equal to . - - - Sample rate of the input audio data of submix voice. This rate must be a multiple of - . InputSampleRate must be between and - . - - - Flags that specify the behavior of the submix voice. It can be or - . - - - An arbitrary number that specifies when this voice is processed with respect to other - submix voices, if the XAudio2 engine is running other submix voices. The voice is processed after all other voices - that include a smaller value and before all other voices that include a larger - value. Voices that include the same value are - processed in any order. A submix voice cannot send to another submix voice with a lower or equal - value. This prevents audio being lost due to a submix cycle. - - - List of structures that describe the set of destination voices for the - submix voice. If is NULL, the send list will default to a single output to the first - mastering voice created. - - - List of structures that describe an effect chain to use in the - submix voice. This parameter is optional and can be null. - - HRESULT - - - - Creates and configures a mastering voice. - - If successful, returns a pointer to the new object. - - Number of channels the mastering voice expects in its input audio. must be less than - or equal to . - You can set InputChannels to , which causes XAudio2 to try to detect the system - speaker configuration setup. - - - Sample rate of the input audio data of the mastering voice. This rate must be a multiple of - . must be between - and . - You can set InputSampleRate to , with the default being determined by the current - platform. - - Flags that specify the behavior of the mastering voice. Must be 0. - - Identifier of the device to receive the output audio. Specifying the default value of NULL - causes XAudio2 to select the global default audio device. - - - structure that describes an effect chain to use in the mastering - voice, or NULL to use no effects. - - The audio stream category to use for this mastering voice. - HRESULT - - - - Starts the audio processing thread. - - HRESULT - - - - Stops the audio processing thread. - - - - - Atomically applies a set of operations that are tagged with a given identifier. - - - Identifier of the set of operations to be applied. To commit all pending operations, pass - . - - HRESULT - - - - Returns current resource usage details, such as available memory or CPU usage. - - - On success, pointer to an structure that is - returned. - - HRESULT - - - - Changes global debug logging options for XAudio2. - - structure that contains the new debug configuration. - Reserved parameter. Must me NULL. - HRESULT - - - - Returns the default device. - - The default device. - - - - Defines the format of waveform-audio data for formats having more than two channels or higher sample resolutions - than allowed by . - Can be used to define any format that can be defined by . - For more information see and - . - - - - - Returns the SubType-Guid of a . If the specified does - not contain a SubType-Guid, the gets converted to the equal SubType-Guid - using the method. - - which gets used to determine the SubType-Guid. - SubType-Guid of the specified . - - - - Gets the number of bits of precision in the signal. - Usually equal to . However, is the - container size and must be a multiple of 8, whereas can be any value not - exceeding the container size. For example, if the format uses 20-bit samples, - must be at least 24, but is 20. - - - - - Gets the number of samples contained in one compressed block of audio data. This value is used in buffer - estimation. This value is used with compressed formats that have a fixed number of samples within each block. This - value can be set to 0 if a variable number of samples is contained in each block of compressed audio data. In this - case, buffer estimation and position information needs to be obtained in other ways. - - - - - Gets a bitmask specifying the assignment of channels in the stream to speaker positions. - - - - - Subformat of the data, such as . The subformat information is similar to - that provided by the tag in the class's member. - - - - - Initializes a new instance of the class. - - - Samplerate of the waveform-audio. This value will get applied to the - property. - - - Bits per sample of the waveform-audio. This value will get applied to the - property and the property. - - - Number of channels of the waveform-audio. This value will get applied to the - property. - - Subformat of the data. This value will get applied to the property. - - - - Initializes a new instance of the class. - - - Samplerate of the waveform-audio. This value will get applied to the - property. - - - Bits per sample of the waveform-audio. This value will get applied to the - property and the property. - - - Number of channels of the waveform-audio. This value will get applied to the - property. - - Subformat of the data. This value will get applied to the property. - - Bitmask specifying the assignment of channels in the stream to speaker positions. Thie value - will get applied to the property. - - - - - Converts the instance to a raw instance by converting - the to the equal . - - A simple instance. - - - - Creates a new object that is a copy of the current instance. - - - A copy of the current instance. - - - - - Returns a string which describes the . - - A string which describes the . - - - - Defines the base for all audio streams which provide samples instead of raw byte data. - - - Compared to the , the provides samples instead of raw bytes. - That means that the and the properties - are expressed in samples. - Also the method provides samples instead of raw bytes. - - - - - Defines the base for all aggregators. - - - - - Defines the base for all aggregators. - - - - - Defines the base for all aggregators. - - The type of data, the aggregator provides. - The type of the aggreator type. - - - - Gets the underlying . - - - The underlying . - - - - - Defines the base for all audio streams which provide raw byte data. - - - Compared to the , the provides raw bytes instead of samples. - That means that the and the properties are - expressed in bytes. - Also the method provides samples instead of raw bytes. - - - - - Defines the base for all audio streams. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the current position. The unit of this property depends on the implementation of this interface. Some - implementations may not support this property. - - - - - Gets the length of the waveform-audio data. The unit of this property depends on the implementation of this - interface. Some implementations may not support this property. - - - - - Exception class for all MM-APIs like waveOut or ACM. - - - - - Throws an if the is not - . - - Errorcode. - Name of the function which returned the specified . - - - - Gets the which describes the error. - - - - - Gets the name of the function which caused the error. - - - - - Gets the name of the function which caused the error. - - - - - Initializes a new instance of the class. - - Errorcode. - Name of the function which returned the specified . - - - - Initializes a new instance of the class from serialization data. - - The object that holds the serialized object data. - The StreamingContext object that supplies the contextual information about the source or destination. - - - - Populates a with the data needed to serialize the target object. - - The to populate with data. - The destination (see StreamingContext) for this serialization. - - - - Base class for most of the sample sources. - - - - - Creates a new instance of the class. - - Underlying base source which provides audio data. - - - - Reads a sequence of samples from the and advances the position within the stream by - the number of samples read. - - - An array of floats. When this method returns, the contains the specified - float array with the values between and ( + - - 1) replaced by the floats read from the current source. - - - The zero-based offset in the at which to begin storing the data - read from the current stream. - - The maximum number of samples to read from the current source. - The total number of samples read into the buffer. - - - - Gets the of the waveform-audio data. - - - - - Gets or sets the position in samples. - - - - - Gets the length in samples. - - - - - Gets a value indicating whether the supports seeking. - - - - - Gets or sets the underlying sample source. - - - - - Gets or sets a value which indicates whether to dispose the - on calling . - - - - - Disposes the and the underlying . - - - - - Disposes the and the underlying . - - - True to release both managed and unmanaged resources; false to release only unmanaged - resources. - - - - - Destructor which calls . - - - - - Provides a few basic extensions. - - - - - Gets the length of a as a . - - The source to get the length for. - The length of the specified as a value. - - - - Gets the position of a as a value. - - The source to get the position of. - The position of the specified as a value. - The source must support seeking to get or set the position. - Use the property to determine whether the stream supports seeking. - Otherwise a call to this method may result in an exception. - - - - Sets the position of a as a value. - - The source to set the new position for. - The new position as a value. - - The source must support seeking to get or set the position. - Use the property to determine whether the stream supports seeking. - Otherwise a call to this method may result in an exception. - - - - - Converts a duration in raw elements to a value. For more information about "raw elements" see remarks. - - The instance which provides the used - to convert the duration in "raw elements" to a value. - The duration in "raw elements" to convert to a value. - The duration as a value. - - source - or - elementCount - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration in raw elements to a duration in milliseconds. For more information about "raw elements" see remarks. - - The instance which provides the used - to convert the duration in "raw elements" to a duration in milliseconds. - The duration in "raw elements" to convert to duration in milliseconds. - The duration in milliseconds. - - source - or - elementCount - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration as a to a duration in "raw elements". For more information about "raw elements" see remarks. - - - instance which provides the used to convert - the duration as a to a duration in "raw elements". - - Duration as a to convert to a duration in "raw elements". - Duration in "raw elements". - source - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - - - - Converts a duration in milliseconds to a duration in "raw elements". For more information about "raw elements" see remarks. - - instance which provides the used to convert - the duration in milliseconds to a duration in "raw elements". - Duration in milliseconds to convert to a duration in "raw elements". - - Duration in "raw elements". - - - The term "raw elements" describes the elements, an audio source uses. - What type of unit an implementation of the interface uses, depends on the implementation itself. - For example, a uses bytes while a uses samples. - That means that a provides its position, length,... in bytes - while a provides its position, length,... in samples. - - To get the length or the position of a as a value, use the - or the property. - - Internally this method uses the class. - - source - milliseconds is less than zero. - - - - Creates a new file, writes all audio data of the to the file, and then closes the file. If the target file already exists, it is overwritten. - - Source which provides the audio data to write to the file. - The file to write to. - source - - - - Writes all audio data of the to a wavestream (including a wav header). - - Source which provides the audio data to write to the . - to store the audio data in. - - source - or - stream - - Stream is not writeable.;stream - - - - Writes all audio data of the to a stream. In comparison to the method, - the method won't encode the provided audio to any particular format. No wav, aiff,... header won't be included. - - The waveSource which provides the audio data to write to the . - The to store the audio data in. - - waveSource - or - stream - - Stream is not writeable.;stream - - - - Checks the length of an array. - - Type of the array. - The array to check. This parameter can be null. - The target length of the array. - A value which indicates whether the length of the array has to fit exactly the specified . - Array which fits the specified requirements. Note that if a new array got created, the content of the old array won't get copied to the return value. - - - - Blocks the current thread until the playback of the specified instance stops or the specified timeout expires. - - The instance to wait for its playback to stop. - The number of milliseconds to wait. Pass to wait indefinitely. - true if the got stopped; false if the specified expired. - - - - Blocks the current thread until the playback of the specified instance stops. - - The instance to wait for its playback to stop. - - - - Base class for all wave aggregators. - - - - - Creates a new instance of class. - - - - - Creates a new instance of class. - - Underlying base stream. - - - - Gets or sets a value which indicates whether to dispose the - on calling . - - - - - Gets or sets the underlying base stream of the WaveAggregator. - - - - - Gets the output WaveFormat. - - - - - Reads a sequence of bytes from the and advances the position within the stream by the - number of bytes read. - - - An array of bytes. When this method returns, the contains the specified - byte array with the values between and ( + - - 1) replaced by the bytes read from the current source. - - - The zero-based byte offset in the at which to begin storing the data - read from the current stream. - - The maximum number of bytes to read from the current source. - The total number of bytes read into the buffer. - - - - Gets or sets the position of the source. - - - - - Gets the length of the source. - - - - - Gets a value indicating whether the supports seeking. - - - - - Disposes the source and releases all allocated resources. - - - - - Disposes the and releases all allocated resources. - - True to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Destructor which calls . - - - - - Defines the format of waveform-audio data. - - - - - Gets the number of channels in the waveform-audio data. Mono data uses one channel and stereo data uses two - channels. - - - - - Gets the sample rate, in samples per second (hertz). - - - - - Gets the required average data transfer rate, in bytes per second. For example, 16-bit stereo at 44.1 kHz has an - average data rate of 176,400 bytes per second (2 channels — 2 bytes per sample per channel — 44,100 samples per - second). - - - - - Gets the block alignment, in bytes. The block alignment is the minimum atomic unit of data. For PCM data, the block - alignment is the number of bytes used by a single sample, including data for both channels if the data is stereo. - For example, the block alignment for 16-bit stereo PCM is 4 bytes (2 channels x 2 bytes per sample). - - - - - Gets the number of bits, used to store one sample. - - - - - Gets the size (in bytes) of extra information. This value is mainly used for marshalling. - - - - - Gets the number of bytes, used to store one sample. - - - - - Gets the number of bytes, used to store one block. This value equals multiplied with - . - - - - - Gets the waveform-audio format type. - - - - - Initializes a new instance of the class with a sample rate of 44100 Hz, bits per sample - of 16 bit, 2 channels and PCM as the format type. - - - - - Initializes a new instance of the class with PCM as the format type. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - - - - Initializes a new instance of the class. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - Format type or encoding of the wave format. - - - - Initializes a new instance of the class. - - Samples per second. - Number of bits, used to store one sample. - Number of channels in the waveform-audio data. - Format type or encoding of the wave format. - Size (in bytes) of extra information. This value is mainly used for marshalling. - - - - Converts a duration in milliseconds to a duration in bytes. - - Duration in millisecond to convert to a duration in bytes. - Duration in bytes. - - - - Converts a duration in bytes to a duration in milliseconds. - - Duration in bytes to convert to a duration in milliseconds. - Duration in milliseconds. - - - - Indicates whether the current object is equal to another object of the same type. - - The to compare with this . - true if the current object is equal to the other parameter; otherwise, false. - - - - Returns a string which describes the . - - A string which describes the . - - - - Creates a new object that is a copy of the current instance. - - A copy of the current instance. - - - - Updates the - and the -property. - - -
-
diff --git a/parseManager/bin/Release/Merge.bat b/parseManager/bin/Release/Merge.bat index 64431bc..86a2002 100644 --- a/parseManager/bin/Release/Merge.bat +++ b/parseManager/bin/Release/Merge.bat @@ -1 +1 @@ -ILRepack.exe /target:exe /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.x" /out:MergedFile.exe parsemanagertester.exe cscore.dll \ No newline at end of file +ILRepack.exe /target:exe /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.x" /out:MergedFile.exe parsemanagertester.exe NAudio.dll \ No newline at end of file diff --git a/parseManager/bin/Release/MergedFile.exe.config b/parseManager/bin/Release/MergedFile.exe.config index 3b43e65..bd64bcf 100644 --- a/parseManager/bin/Release/MergedFile.exe.config +++ b/parseManager/bin/Release/MergedFile.exe.config @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/parseManager/bin/Release/NAudio.xml b/parseManager/bin/Release/NAudio.xml new file mode 100644 index 0000000..dcc9342 --- /dev/null +++ b/parseManager/bin/Release/NAudio.xml @@ -0,0 +1,22583 @@ + + + + NAudio + + + + + a-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts an a-law encoded byte to a 16 bit linear sample + + a-law encoded byte + Linear sample + + + + A-law encoder + + + + + Encodes a single 16 bit sample to a-law + + 16 bit PCM sample + a-law encoded byte + + + + SpanDSP - a series of DSP components for telephony + + g722_decode.c - The ITU G.722 codec, decode part. + + Written by Steve Underwood <steveu@coppice.org> + + Copyright (C) 2005 Steve Underwood + Ported to C# by Mark Heath 2011 + + Despite my general liking of the GPL, I place my own contributions + to this code in the public domain for the benefit of all mankind - + even the slimy ones who might try to proprietize my work and use it + to my detriment. + + Based in part on a single channel G.722 codec which is: + Copyright (c) CMU 1993 + Computer Science, Speech Group + Chengxiang Lu and Alex Hauptmann + + + + + hard limits to 16 bit samples + + + + + Decodes a buffer of G722 + + Codec state + Output buffer (to contain decompressed PCM samples) + + Number of bytes in input G722 data to decode + Number of samples written into output buffer + + + + Encodes a buffer of G722 + + Codec state + Output buffer (to contain encoded G722) + PCM 16 bit samples to encode + Number of samples in the input buffer to encode + Number of encoded bytes written into output buffer + + + + Stores state to be used between calls to Encode or Decode + + + + + ITU Test Mode + TRUE if the operating in the special ITU test mode, with the band split filters disabled. + + + + + TRUE if the G.722 data is packed + + + + + 8kHz Sampling + TRUE if encode from 8k samples/second + + + + + Bits Per Sample + 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. + + + + + Signal history for the QMF (x) + + + + + Band + + + + + In bit buffer + + + + + Number of bits in InBuffer + + + + + Out bit buffer + + + + + Number of bits in OutBuffer + + + + + Creates a new instance of G722 Codec State for a + new encode or decode session + + Bitrate (typically 64000) + Special options + + + + Band data for G722 Codec + + + + s + + + sp + + + sz + + + r + + + a + + + ap + + + p + + + d + + + b + + + bp + + + sg + + + nb + + + det + + + + G722 Flags + + + + + None + + + + + Using a G722 sample rate of 8000 + + + + + Packed + + + + + mu-law decoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + only 512 bytes required, so just use a lookup + + + + + Converts a mu-law encoded byte to a 16 bit linear sample + + mu-law encoded byte + Linear sample + + + + mu-law encoder + based on code from: + http://hazelware.luggle.com/tutorials/mulawcompression.html + + + + + Encodes a single 16 bit sample to mu-law + + 16 bit PCM sample + mu-law encoded byte + + + + Audio Capture Client + + + + + Gets a pointer to the buffer + + Pointer to the buffer + + + + Gets a pointer to the buffer + + Number of frames to read + Buffer flags + Pointer to the buffer + + + + Gets the size of the next packet + + + + + Release buffer + + Number of frames written + + + + Release the COM object + + + + + Windows CoreAudio AudioClient + + + + + Retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams. + Can be called before initialize + + + + + Initializes the Audio Client + + Share Mode + Stream Flags + Buffer Duration + Periodicity + Wave Format + Audio Session GUID (can be null) + + + + Retrieves the size (maximum capacity) of the audio buffer associated with the endpoint. (must initialize first) + + + + + Retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized. + + + + + Retrieves the number of frames of padding in the endpoint buffer (must initialize first) + + + + + Retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer. + (can be called before initialize) + + + + + Gets the minimum device period + (can be called before initialize) + + + + + Returns the AudioStreamVolume service for this AudioClient. + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Gets the AudioClockClient service + + + + + Gets the AudioRenderClient service + + + + + Gets the AudioCaptureClient service + + + + + Determines whether if the specified output format is supported + + The share mode. + The desired format. + True if the format is supported + + + + Determines if the specified output format is supported in shared mode + + Share Mode + Desired Format + Output The closest match format. + True if the format is supported + + + + Starts the audio stream + + + + + Stops the audio stream. + + + + + Set the Event Handle for buffer synchro. + + The Wait Handle to setup + + + + Resets the audio stream + Reset is a control method that the client calls to reset a stopped audio stream. + Resetting the stream flushes all pending data and resets the audio clock stream + position to 0. This method fails if it is called on a stream that is not stopped + + + + + Dispose + + + + + Audio Client Buffer Flags + + + + + None + + + + + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY + + + + + AUDCLNT_BUFFERFLAGS_SILENT + + + + + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR + + + + + The AudioClientProperties structure is used to set the parameters that describe the properties of the client's audio stream. + + http://msdn.microsoft.com/en-us/library/windows/desktop/hh968105(v=vs.85).aspx + + + + The size of the buffer for the audio stream. + + + + + Boolean value to indicate whether or not the audio stream is hardware-offloaded + + + + + An enumeration that is used to specify the category of the audio stream. + + + + + A bit-field describing the characteristics of the stream. Supported in Windows 8.1 and later. + + + + + AUDCLNT_SHAREMODE + + + + + AUDCLNT_SHAREMODE_SHARED, + + + + + AUDCLNT_SHAREMODE_EXCLUSIVE + + + + + AUDCLNT_STREAMFLAGS + + + + + None + + + + + AUDCLNT_STREAMFLAGS_CROSSPROCESS + + + + + AUDCLNT_STREAMFLAGS_LOOPBACK + + + + + AUDCLNT_STREAMFLAGS_EVENTCALLBACK + + + + + AUDCLNT_STREAMFLAGS_NOPERSIST + + + + + Defines values that describe the characteristics of an audio stream. + + + + + No stream options. + + + + + The audio stream is a 'raw' stream that bypasses all signal processing except for endpoint specific, always-on processing in the APO, driver, and hardware. + + + + + Audio Clock Client + + + + + Characteristics + + + + + Frequency + + + + + Get Position + + + + + Adjusted Position + + + + + Can Adjust Position + + + + + Dispose + + + + + Audio Endpoint Volume Channel + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + Volume Level + + + + + Volume Level Scalar + + + + + Audio Endpoint Volume Channels + + + + + Channel Count + + + + + Indexer - get a specific channel + + + + + Audio Endpoint Volume Notifiaction Delegate + + Audio Volume Notification Data + + + + Audio Endpoint Volume Step Information + + + + + Step + + + + + StepCount + + + + + Audio Endpoint Volume Volume Range + + + + + Minimum Decibels + + + + + Maximum Decibels + + + + + Increment Decibels + + + + + Audio Meter Information Channels + + + + + Metering Channel Count + + + + + Get Peak value + + Channel index + Peak value + + + + Audio Render Client + + + + + Gets a pointer to the buffer + + Number of frames requested + Pointer to the buffer + + + + Release buffer + + Number of frames written + Buffer flags + + + + Release the COM object + + + + + AudioSessionControl object for information + regarding an audio session + + + + + Constructor. + + + + + + Dispose + + + + + Finalizer + + + + + Audio meter information of the audio session. + + + + + Simple audio volume of the audio session (for volume and mute status). + + + + + The current state of the audio session. + + + + + The name of the audio session. + + + + + the path to the icon shown in the mixer. + + + + + The session identifier of the audio session. + + + + + The session instance identifier of the audio session. + + + + + The process identifier of the audio session. + + + + + Is the session a system sounds session. + + + + + the grouping param for an audio session grouping + + + + + + For chanigng the grouping param and supplying the context of said change + + + + + + + Registers an even client for callbacks + + + + + + Unregisters an event client from receiving callbacks + + + + + + AudioSessionEvents callback implementation + + + + + Constructor. + + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + AudioSessionManager + + Designed to manage audio sessions and in particuar the + SimpleAudioVolume interface to adjust a session volume + + + + + Session created delegate + + + + + Occurs when audio session has been added (for example run another program that use audio playback). + + + + + SimpleAudioVolume object + for adjusting the volume for the user session + + + + + AudioSessionControl object + for registring for callbacks and other session information + + + + + Refresh session of current device. + + + + + Returns list of sessions of current device. + + + + + Dispose. + + + + + Finalizer. + + + + + Specifies the category of an audio stream. + + + + + Other audio stream. + + + + + Media that will only stream when the app is in the foreground. + + + + + Media that can be streamed when the app is in the background. + + + + + Real-time communications, such as VOIP or chat. + + + + + Alert sounds. + + + + + Sound effects. + + + + + Game sound effects. + + + + + Background audio for games. + + + + + Manages the AudioStreamVolume for the . + + + + + Verify that the channel index is valid. + + + + + + + Return the current stream volumes for all channels + + An array of volume levels between 0.0 and 1.0 for each channel in the audio stream. + + + + Returns the current number of channels in this audio stream. + + + + + Return the current volume for the requested channel. + + The 0 based index into the channels. + The volume level for the channel between 0.0 and 1.0. + + + + Set the volume level for each channel of the audio stream. + + An array of volume levels (between 0.0 and 1.0) one for each channel. + + A volume level MUST be supplied for reach channel in the audio stream. + + + Thrown when does not contain elements. + + + + + Sets the volume level for one channel in the audio stream. + + The 0-based index into the channels to adjust the volume of. + The volume level between 0.0 and 1.0 for this channel of the audio stream. + + + + Dispose + + + + + Release/cleanup objects during Dispose/finalization. + + True if disposing and false if being finalized. + + + + Audio Volume Notification Data + + + + + Event Context + + + + + Muted + + + + + Guid that raised the event + + + + + Master Volume + + + + + Channels + + + + + Channel Volume + + + + + Audio Volume Notification Data + + + + + + + + + + Audio Client WASAPI Error Codes (HResult) + + + + + AUDCLNT_E_NOT_INITIALIZED + + + + + AUDCLNT_E_UNSUPPORTED_FORMAT + + + + + AUDCLNT_E_DEVICE_IN_USE + + + + + AUDCLNT_E_RESOURCES_INVALIDATED + + + + + Defined in AudioClient.h + + + + + Defined in AudioClient.h + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Retrieves the current state of the audio session. + + Receives the current session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the display name for the audio session. + + Receives a string that contains the display name. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display name to the current audio session. + + A string that contains the new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the path for the display icon for the audio session. + + Receives a string that specifies the fully qualified path of the file that contains the icon. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a display icon to the current session. + + A string that specifies the fully qualified path of the file that contains the new icon. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the grouping parameter of the audio session. + + Receives the grouping parameter ID. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Assigns a session to a grouping of sessions. + + The new grouping parameter ID. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Registers the client to receive notifications of session events, including changes in the session state. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Deletes a previous registration by the client to receive notifications. + + A client-implemented interface. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier for the audio session. + + Receives the session identifier. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the identifier of the audio session instance. + + Receives the identifier of a particular instance. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the process identifier of the audio session. + + Receives the process identifier of the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Indicates whether the session is a system sounds session. + + An HRESULT code indicating whether the operation succeeded of failed. + + + + Enables or disables the default stream attenuation experience (auto-ducking) provided by the system. + + A variable that enables or disables system auto-ducking. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Defines constants that indicate the current state of an audio session. + + + MSDN Reference: http://msdn.microsoft.com/en-us/library/dd370792.aspx + + + + + The audio session is inactive. + + + + + The audio session is active. + + + + + The audio session has expired. + + + + + Defines constants that indicate a reason for an audio session being disconnected. + + + MSDN Reference: Unknown + + + + + The user removed the audio endpoint device. + + + + + The Windows audio service has stopped. + + + + + The stream format changed for the device that the audio session is connected to. + + + + + The user logged off the WTS session that the audio session was running in. + + + + + The WTS session that the audio session was running in was disconnected. + + + + + The (shared-mode) audio session was disconnected to make the audio endpoint device available for an exclusive-mode connection. + + + + + Windows CoreAudio IAudioSessionControl interface + Defined in AudioPolicy.h + + + + + Notifies the client that the display name for the session has changed. + + The new display name for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the display icon for the session has changed. + + The path for the new display icon for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level or muting state of the session has changed. + + The new volume level for the audio session. + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the volume level of an audio channel in the session submix has changed. + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the grouping parameter for the session has changed. + + The new grouping parameter for the session. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the stream-activity state of the session has changed. + + The new session state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Notifies the client that the session has been disconnected. + + The reason that the audio session was disconnected. + An HRESULT code indicating whether the operation succeeded of failed. + + + + interface to receive session related events + + + + + notification of volume changes including muting of audio session + + the current volume + the current mute state, true muted, false otherwise + + + + notification of display name changed + + the current display name + + + + notification of icon path changed + + the current icon path + + + + notification of the client that the volume level of an audio channel in the session submix has changed + + The channel count. + An array of volumnes cooresponding with each channel index. + The number of the channel whose volume level changed. + + + + notification of the client that the grouping parameter for the session has changed + + >The new grouping parameter for the session. + + + + notification of the client that the stream-activity state of the session has changed + + The new session state. + + + + notification of the client that the session has been disconnected + + The reason that the audio session was disconnected. + + + + Windows CoreAudio IAudioSessionManager interface + Defined in AudioPolicy.h + + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves an audio session control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves a simple audio volume control. + + A new or existing session ID. + Audio session flags. + Receives an interface for the audio session. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio IAudioSessionNotification interface + Defined in AudioPolicy.h + + + + + + + session being added + An HRESULT code indicating whether the operation succeeded of failed. + + + + Windows CoreAudio ISimpleAudioVolume interface + Defined in AudioClient.h + + + + + Sets the master volume level for the audio session. + + The new volume level expressed as a normalized value between 0.0 and 1.0. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the client volume level for the audio session. + + Receives the volume level expressed as a normalized value between 0.0 and 1.0. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Sets the muting state for the audio session. + + The new muting state. + A user context value that is passed to the notification callback. + An HRESULT code indicating whether the operation succeeded of failed. + + + + Retrieves the current muting state for the audio session. + + Receives the muting state. + An HRESULT code indicating whether the operation succeeded of failed. + + + + is defined in WTypes.h + + + + + Windows CoreAudio IAudioClient interface + Defined in AudioClient.h + + + + + The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer. + + + + + The GetService method accesses additional services from the audio client object. + + The interface ID for the requested service. + Pointer to a pointer variable into which the method writes the address of an instance of the requested interface. + + + + defined in MMDeviceAPI.h + + + + + IMMNotificationClient + + + + + Device State Changed + + + + + Device Added + + + + + Device Removed + + + + + Default Device Changed + + + + + Property Value Changed + + + + + + + is defined in propsys.h + + + + + implements IMMDeviceEnumerator + + + + + MMDevice STGM enumeration + + + + + from Propidl.h. + http://msdn.microsoft.com/en-us/library/aa380072(VS.85).aspx + contains a union so we have to do an explicit layout + + + + + Creates a new PropVariant containing a long value + + + + + Helper method to gets blob data + + + + + Interprets a blob as an array of structs + + + + + Gets the type of data in this PropVariant + + + + + Property value + + + + + allows freeing up memory, might turn this into a Dispose method? + + + + + Clears with a known pointer + + + + + Multimedia Device Collection + + + + + Device count + + + + + Get device by index + + Device index + Device at the specified index + + + + Get Enumerator + + Device enumerator + + + + Property Keys + + + + + PKEY_DeviceInterface_FriendlyName + + + + + PKEY_AudioEndpoint_FormFactor + + + + + PKEY_AudioEndpoint_ControlPanelPageProvider + + + + + PKEY_AudioEndpoint_Association + + + + + PKEY_AudioEndpoint_PhysicalSpeakers + + + + + PKEY_AudioEndpoint_GUID + + + + + PKEY_AudioEndpoint_Disable_SysFx + + + + + PKEY_AudioEndpoint_FullRangeSpeakers + + + + + PKEY_AudioEndpoint_Supports_EventDriven_Mode + + + + + PKEY_AudioEndpoint_JackSubType + + + + + PKEY_AudioEngine_DeviceFormat + + + + + PKEY_AudioEngine_OEMFormat + + + + + PKEY _Devie_FriendlyName + + + + + PKEY _Device_IconPath + + + + + Collection of sessions. + + + + + Returns session at index. + + + + + + + Number of current sessions. + + + + + Windows CoreAudio SimpleAudioVolume + + + + + Creates a new Audio endpoint volume + + ISimpleAudioVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Allows the user to adjust the volume from + 0.0 to 1.0 + + + + + Mute + + + + + Represents state of a capture device + + + + + Not recording + + + + + Beginning to record + + + + + Recording in progress + + + + + Requesting stop + + + + + Audio Capture using Wasapi + See http://msdn.microsoft.com/en-us/library/dd370800%28VS.85%29.aspx + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + + + + Initializes a new instance of the class. + + The capture device. + true if sync is done with event. false use sleep. + Length of the audio buffer in milliseconds. A lower value means lower latency but increased CPU usage. + + + + Share Mode - set before calling StartRecording + + + + + Current Capturing State + + + + + Capturing wave format + + + + + Gets the default audio capture device + + The default audio capture device + + + + To allow overrides to specify different flags (e.g. loopback) + + + + + Start Capturing + + + + + Stop Capturing (requests a stop, wait for RecordingStopped event to know it has finished) + + + + + Dispose + + + + + Audio Endpoint Volume + + + + + GUID to pass to AudioEndpointVolumeCallback + + + + + On Volume Notification + + + + + Volume Range + + + + + Hardware Support + + + + + Step Information + + + + + Channels + + + + + Master Volume Level + + + + + Master Volume Level Scalar + + + + + Mute + + + + + Volume Step Up + + + + + Volume Step Down + + + + + Creates a new Audio endpoint volume + + IAudioEndpointVolume COM interface + + + + Dispose + + + + + Finalizer + + + + + Audio Meter Information + + + + + Peak Values + + + + + Hardware Support + + + + + Master Peak Value + + + + + Device State + + + + + DEVICE_STATE_ACTIVE + + + + + DEVICE_STATE_DISABLED + + + + + DEVICE_STATE_NOTPRESENT + + + + + DEVICE_STATE_UNPLUGGED + + + + + DEVICE_STATEMASK_ALL + + + + + Endpoint Hardware Support + + + + + Volume + + + + + Mute + + + + + Meter + + + + + The EDataFlow enumeration defines constants that indicate the direction + in which audio data flows between an audio endpoint device and an application + + + + + Audio rendering stream. + Audio data flows from the application to the audio endpoint device, which renders the stream. + + + + + Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, + to the application + + + + + Audio rendering or capture stream. Audio data can flow either from the application to the audio + endpoint device, or from the audio endpoint device to the application. + + + + + PROPERTYKEY is defined in wtypes.h + + + + + Format ID + + + + + Property ID + + + + + + + + + + + The ERole enumeration defines constants that indicate the role + that the system has assigned to an audio endpoint device + + + + + Games, system notification sounds, and voice commands. + + + + + Music, movies, narration, and live music recording + + + + + Voice communications (talking to another person). + + + + + MM Device + + + + + Audio Client + + + + + Audio Meter Information + + + + + Audio Endpoint Volume + + + + + AudioSessionManager instance + + + + + Properties + + + + + Friendly name for the endpoint + + + + + Friendly name of device + + + + + Icon path of device + + + + + Device ID + + + + + Data Flow + + + + + Device State + + + + + To string + + + + + Dispose + + + + + Finalizer + + + + + MM Device Enumerator + + + + + Creates a new MM Device Enumerator + + + + + Enumerate Audio Endpoints + + Desired DataFlow + State Mask + Device Collection + + + + Get Default Endpoint + + Data Flow + Role + Device + + + + Check to see if a default audio end point exists without needing an exception. + + Data Flow + Role + True if one exists, and false if one does not exist. + + + + Get device by ID + + Device ID + Device + + + + Registers a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + Unregisters a call back for Device Events + + Object implementing IMMNotificationClient type casted as IMMNotificationClient interface + + + + + + + + Called to dispose/finalize contained objects. + + True if disposing, false if called from a finalizer. + + + + Property Store class, only supports reading properties at the moment. + + + + + Property Count + + + + + Gets property by index + + Property index + The property + + + + Contains property guid + + Looks for a specific key + True if found + + + + Indexer by guid + + Property Key + Property or null if not found + + + + Gets property key at sepecified index + + Index + Property key + + + + Gets property value at specified index + + Index + Property value + + + + Creates a new property store + + IPropertyStore COM interface + + + + Property Store Property + + + + + Property Key + + + + + Property Value + + + + + Envelope generator (ADSR) + + + + + Envelope State + + + + + Idle + + + + + Attack + + + + + Decay + + + + + Sustain + + + + + Release + + + + + Creates and Initializes an Envelope Generator + + + + + Attack Rate (seconds * SamplesPerSecond) + + + + + Decay Rate (seconds * SamplesPerSecond) + + + + + Release Rate (seconds * SamplesPerSecond) + + + + + Sustain Level (1 = 100%) + + + + + Sets the attack curve + + + + + Sets the decay release curve + + + + + Read the next volume multiplier from the envelope generator + + A volume multiplier + + + + Trigger the gate + + If true, enter attack phase, if false enter release phase (unless already idle) + + + + Current envelope state + + + + + Reset to idle state + + + + + Get the current output level + + + + + Fully managed resampler, based on Cockos WDL Resampler + + + + + Creates a new Resampler + + + + + sets the mode + if sinc set, it overrides interp or filtercnt + + + + + Sets the filter parameters + used for filtercnt>0 but not sinc + + + + + Set feed mode + + if true, that means the first parameter to ResamplePrepare will specify however much input you have, not how much you want + + + + Reset + + + + + Prepare + note that it is safe to call ResamplePrepare without calling ResampleOut (the next call of ResamplePrepare will function as normal) + nb inbuffer was WDL_ResampleSample **, returning a place to put the in buffer, so we return a buffer and offset + + req_samples is output samples desired if !wantInputDriven, or if wantInputDriven is input samples that we have + + + + returns number of samples desired (put these into *inbuffer) + + + + SMB Pitch Shifter + + + + + Pitch Shift + + + + + Pitch Shift + + + + + Short Time Fourier Transform + + + + + BiQuad filter + + + + + Passes a single sample through the filter + + Input sample + Output sample + + + + Set this up as a low pass filter + + Sample Rate + Cut-off Frequency + Bandwidth + + + + Set this up as a peaking EQ + + Sample Rate + Centre Frequency + Bandwidth (Q) + Gain in decibels + + + + Set this as a high pass filter + + + + + Create a low pass filter + + + + + Create a High pass filter + + + + + Create a bandpass filter with constant skirt gain + + + + + Create a bandpass filter with constant peak gain + + + + + Creates a notch filter + + + + + Creaes an all pass filter + + + + + Create a Peaking EQ + + + + + H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) + + + + a "shelf slope" parameter (for shelving EQ only). + When S = 1, the shelf slope is as steep as it can be and remain monotonically + increasing or decreasing gain with frequency. The shelf slope, in dB/octave, + remains proportional to S for all other values for a fixed f0/Fs and dBgain. + Gain in decibels + + + + H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) + + + + + + + + + + Type to represent complex number + + + + + Real Part + + + + + Imaginary Part + + + + + Summary description for FastFourierTransform. + + + + + This computes an in-place complex-to-complex FFT + x and y are the real and imaginary arrays of 2^m points. + + + + + Applies a Hamming Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hamming window + + + + Applies a Hann Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Hann window + + + + Applies a Blackman-Harris Window + + Index into frame + Frame size (e.g. 1024) + Multiplier for Blackmann-Harris window + + + + Summary description for ImpulseResponseConvolution. + + + + + A very simple mono convolution algorithm + + + This will be very slow + + + + + This is actually a downwards normalize for data that will clip + + + + + http://tech.ebu.ch/docs/tech/tech3306-2009.pdf + + + + + WaveFormat + + + + + Data Chunk Position + + + + + Data Chunk Length + + + + + Riff Chunks + + + + + Represents an entry in a Cakewalk drum map + + + + + User customisable note name + + + + + Input MIDI note number + + + + + Output MIDI note number + + + + + Output port + + + + + Output MIDI Channel + + + + + Velocity adjustment + + + + + Velocity scaling - in percent + + + + + Describes this drum map entry + + + + + Represents a Cakewalk Drum Map file (.map) + + + + + Parses a Cakewalk Drum Map file + + Path of the .map file + + + + The drum mappings in this drum map + + + + + Describes this drum map + + + + + MP3 Frame decompressor using the Windows Media MP3 Decoder DMO object + + + + + Initializes a new instance of the DMO MP3 Frame decompressor + + + + + + Converted PCM WaveFormat + + + + + Decompress a single frame of MP3 + + + + + Alerts us that a reposition has occured so the MP3 decoder needs to reset its state + + + + + Dispose of this obejct and clean up resources + + + + + Audio Subtype GUIDs + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372553%28v=vs.85%29.aspx + + + + + Advanced Audio Coding (AAC). + + + + + Not used + + + + + Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF). + + + + + Encrypted audio data used with secure audio path. + + + + + Digital Theater Systems (DTS) audio. + + + + + Uncompressed IEEE floating-point audio. + + + + + MPEG Audio Layer-3 (MP3). + + + + + MPEG-1 audio payload. + + + + + Windows Media Audio 9 Voice codec. + + + + + Uncompressed PCM audio. + + + + + Windows Media Audio 9 Professional codec over S/PDIF. + + + + + Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. + + + + + Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. + + + + + Dolby Digital (AC-3). + + + + + MPEG-4 and AAC Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + Dolby Audio Types + http://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx + Reference : wmcodecdsp.h + + + + + μ-law coding + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Adaptive delta pulse code modulation (ADPCM) + http://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx + Reference : Ksmedia.h + + + + + Dolby Digital Plus formatted for HDMI output. + http://msdn.microsoft.com/en-us/library/windows/hardware/ff538392(v=vs.85).aspx + Reference : internet + + + + + MSAudio1 - unknown meaning + Reference : wmcodecdsp.h + + + + + IMA ADPCM ACM Wrapper + + + + + WMSP2 - unknown meaning + Reference: wmsdkidl.h + + + + + Creates an instance of either the sink writer or the source reader. + + + + + Creates an instance of the sink writer or source reader, given a URL. + + + + + Creates an instance of the sink writer or source reader, given an IUnknown pointer. + + + + + CLSID_MFReadWriteClassFactory + + + + + Media Foundation Errors + + + + RANGES + 14000 - 14999 = General Media Foundation errors + 15000 - 15999 = ASF parsing errors + 16000 - 16999 = Media Source errors + 17000 - 17999 = MEDIAFOUNDATION Network Error Events + 18000 - 18999 = MEDIAFOUNDATION WMContainer Error Events + 19000 - 19999 = MEDIAFOUNDATION Media Sink Error Events + 20000 - 20999 = Renderer errors + 21000 - 21999 = Topology Errors + 25000 - 25999 = Timeline Errors + 26000 - 26999 = Unused + 28000 - 28999 = Transform errors + 29000 - 29999 = Content Protection errors + 40000 - 40999 = Clock errors + 41000 - 41999 = MF Quality Management Errors + 42000 - 42999 = MF Transcode API Errors + + + + + MessageId: MF_E_PLATFORM_NOT_INITIALIZED + + MessageText: + + Platform not initialized. Please call MFStartup().%0 + + + + + MessageId: MF_E_BUFFERTOOSMALL + + MessageText: + + The buffer was too small to carry out the requested action.%0 + + + + + MessageId: MF_E_INVALIDREQUEST + + MessageText: + + The request is invalid in the current state.%0 + + + + + MessageId: MF_E_INVALIDSTREAMNUMBER + + MessageText: + + The stream number provided was invalid.%0 + + + + + MessageId: MF_E_INVALIDMEDIATYPE + + MessageText: + + The data specified for the media type is invalid, inconsistent, or not supported by this object.%0 + + + + + MessageId: MF_E_NOTACCEPTING + + MessageText: + + The callee is currently not accepting further input.%0 + + + + + MessageId: MF_E_NOT_INITIALIZED + + MessageText: + + This object needs to be initialized before the requested operation can be carried out.%0 + + + + + MessageId: MF_E_UNSUPPORTED_REPRESENTATION + + MessageText: + + The requested representation is not supported by this object.%0 + + + + + MessageId: MF_E_NO_MORE_TYPES + + MessageText: + + An object ran out of media types to suggest therefore the requested chain of streaming objects cannot be completed.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SERVICE + + MessageText: + + The object does not support the specified service.%0 + + + + + MessageId: MF_E_UNEXPECTED + + MessageText: + + An unexpected error has occurred in the operation requested.%0 + + + + + MessageId: MF_E_INVALIDNAME + + MessageText: + + Invalid name.%0 + + + + + MessageId: MF_E_INVALIDTYPE + + MessageText: + + Invalid type.%0 + + + + + MessageId: MF_E_INVALID_FILE_FORMAT + + MessageText: + + The file does not conform to the relevant file format specification. + + + + + MessageId: MF_E_INVALIDINDEX + + MessageText: + + Invalid index.%0 + + + + + MessageId: MF_E_INVALID_TIMESTAMP + + MessageText: + + An invalid timestamp was given.%0 + + + + + MessageId: MF_E_UNSUPPORTED_SCHEME + + MessageText: + + The scheme of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_BYTESTREAM_TYPE + + MessageText: + + The byte stream type of the given URL is unsupported.%0 + + + + + MessageId: MF_E_UNSUPPORTED_TIME_FORMAT + + MessageText: + + The given time format is unsupported.%0 + + + + + MessageId: MF_E_NO_SAMPLE_TIMESTAMP + + MessageText: + + The Media Sample does not have a timestamp.%0 + + + + + MessageId: MF_E_NO_SAMPLE_DURATION + + MessageText: + + The Media Sample does not have a duration.%0 + + + + + MessageId: MF_E_INVALID_STREAM_DATA + + MessageText: + + The request failed because the data in the stream is corrupt.%0\n. + + + + + MessageId: MF_E_RT_UNAVAILABLE + + MessageText: + + Real time services are not available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE + + MessageText: + + The specified rate is not supported.%0 + + + + + MessageId: MF_E_THINNING_UNSUPPORTED + + MessageText: + + This component does not support stream-thinning.%0 + + + + + MessageId: MF_E_REVERSE_UNSUPPORTED + + MessageText: + + The call failed because no reverse playback rates are available.%0 + + + + + MessageId: MF_E_UNSUPPORTED_RATE_TRANSITION + + MessageText: + + The requested rate transition cannot occur in the current state.%0 + + + + + MessageId: MF_E_RATE_CHANGE_PREEMPTED + + MessageText: + + The requested rate change has been pre-empted and will not occur.%0 + + + + + MessageId: MF_E_NOT_FOUND + + MessageText: + + The specified object or value does not exist.%0 + + + + + MessageId: MF_E_NOT_AVAILABLE + + MessageText: + + The requested value is not available.%0 + + + + + MessageId: MF_E_NO_CLOCK + + MessageText: + + The specified operation requires a clock and no clock is available.%0 + + + + + MessageId: MF_S_MULTIPLE_BEGIN + + MessageText: + + This callback and state had already been passed in to this event generator earlier.%0 + + + + + MessageId: MF_E_MULTIPLE_BEGIN + + MessageText: + + This callback has already been passed in to this event generator.%0 + + + + + MessageId: MF_E_MULTIPLE_SUBSCRIBERS + + MessageText: + + Some component is already listening to events on this event generator.%0 + + + + + MessageId: MF_E_TIMER_ORPHANED + + MessageText: + + This timer was orphaned before its callback time arrived.%0 + + + + + MessageId: MF_E_STATE_TRANSITION_PENDING + + MessageText: + + A state transition is already pending.%0 + + + + + MessageId: MF_E_UNSUPPORTED_STATE_TRANSITION + + MessageText: + + The requested state transition is unsupported.%0 + + + + + MessageId: MF_E_UNRECOVERABLE_ERROR_OCCURRED + + MessageText: + + An unrecoverable error has occurred.%0 + + + + + MessageId: MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS + + MessageText: + + The provided sample has too many buffers.%0 + + + + + MessageId: MF_E_SAMPLE_NOT_WRITABLE + + MessageText: + + The provided sample is not writable.%0 + + + + + MessageId: MF_E_INVALID_KEY + + MessageText: + + The specified key is not valid. + + + + + MessageId: MF_E_BAD_STARTUP_VERSION + + MessageText: + + You are calling MFStartup with the wrong MF_VERSION. Mismatched bits? + + + + + MessageId: MF_E_UNSUPPORTED_CAPTION + + MessageText: + + The caption of the given URL is unsupported.%0 + + + + + MessageId: MF_E_INVALID_POSITION + + MessageText: + + The operation on the current offset is not permitted.%0 + + + + + MessageId: MF_E_ATTRIBUTENOTFOUND + + MessageText: + + The requested attribute was not found.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_ALLOWED + + MessageText: + + The specified property type is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_TYPE_NOT_SUPPORTED + + MessageText: + + The specified property type is not supported.%0 + + + + + MessageId: MF_E_PROPERTY_EMPTY + + MessageText: + + The specified property is empty.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_EMPTY + + MessageText: + + The specified property is not empty.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_NOT_ALLOWED + + MessageText: + + The vector property specified is not allowed in this context.%0 + + + + + MessageId: MF_E_PROPERTY_VECTOR_REQUIRED + + MessageText: + + A vector property is required in this context.%0 + + + + + MessageId: MF_E_OPERATION_CANCELLED + + MessageText: + + The operation is cancelled.%0 + + + + + MessageId: MF_E_BYTESTREAM_NOT_SEEKABLE + + MessageText: + + The provided bytestream was expected to be seekable and it is not.%0 + + + + + MessageId: MF_E_DISABLED_IN_SAFEMODE + + MessageText: + + The Media Foundation platform is disabled when the system is running in Safe Mode.%0 + + + + + MessageId: MF_E_CANNOT_PARSE_BYTESTREAM + + MessageText: + + The Media Source could not parse the byte stream.%0 + + + + + MessageId: MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS + + MessageText: + + Mutually exclusive flags have been specified to source resolver. This flag combination is invalid.%0 + + + + + MessageId: MF_E_MEDIAPROC_WRONGSTATE + + MessageText: + + MediaProc is in the wrong state%0 + + + + + MessageId: MF_E_RT_THROUGHPUT_NOT_AVAILABLE + + MessageText: + + Real time I/O service can not provide requested throughput.%0 + + + + + MessageId: MF_E_RT_TOO_MANY_CLASSES + + MessageText: + + The workqueue cannot be registered with more classes.%0 + + + + + MessageId: MF_E_RT_WOULDBLOCK + + MessageText: + + This operation cannot succeed because another thread owns this object.%0 + + + + + MessageId: MF_E_NO_BITPUMP + + MessageText: + + Internal. Bitpump not found.%0 + + + + + MessageId: MF_E_RT_OUTOFMEMORY + + MessageText: + + No more RT memory available.%0 + + + + + MessageId: MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED + + MessageText: + + An MMCSS class has not been set for this work queue.%0 + + + + + MessageId: MF_E_INSUFFICIENT_BUFFER + + MessageText: + + Insufficient memory for response.%0 + + + + + MessageId: MF_E_CANNOT_CREATE_SINK + + MessageText: + + Activate failed to create mediasink. Call OutputNode::GetUINT32(MF_TOPONODE_MAJORTYPE) for more information. %0 + + + + + MessageId: MF_E_BYTESTREAM_UNKNOWN_LENGTH + + MessageText: + + The length of the provided bytestream is unknown.%0 + + + + + MessageId: MF_E_SESSION_PAUSEWHILESTOPPED + + MessageText: + + The media session cannot pause from a stopped state.%0 + + + + + MessageId: MF_S_ACTIVATE_REPLACED + + MessageText: + + The activate could not be created in the remote process for some reason it was replaced with empty one.%0 + + + + + MessageId: MF_E_FORMAT_CHANGE_NOT_SUPPORTED + + MessageText: + + The data specified for the media type is supported, but would require a format change, which is not supported by this object.%0 + + + + + MessageId: MF_E_INVALID_WORKQUEUE + + MessageText: + + The operation failed because an invalid combination of workqueue ID and flags was specified.%0 + + + + + MessageId: MF_E_DRM_UNSUPPORTED + + MessageText: + + No DRM support is available.%0 + + + + + MessageId: MF_E_UNAUTHORIZED + + MessageText: + + This operation is not authorized.%0 + + + + + MessageId: MF_E_OUT_OF_RANGE + + MessageText: + + The value is not in the specified or valid range.%0 + + + + + MessageId: MF_E_INVALID_CODEC_MERIT + + MessageText: + + The registered codec merit is not valid.%0 + + + + + MessageId: MF_E_HW_MFT_FAILED_START_STREAMING + + MessageText: + + Hardware MFT failed to start streaming due to lack of hardware resources.%0 + + + + + MessageId: MF_S_ASF_PARSEINPROGRESS + + MessageText: + + Parsing is still in progress and is not yet complete.%0 + + + + + MessageId: MF_E_ASF_PARSINGINCOMPLETE + + MessageText: + + Not enough data have been parsed to carry out the requested action.%0 + + + + + MessageId: MF_E_ASF_MISSINGDATA + + MessageText: + + There is a gap in the ASF data provided.%0 + + + + + MessageId: MF_E_ASF_INVALIDDATA + + MessageText: + + The data provided are not valid ASF.%0 + + + + + MessageId: MF_E_ASF_OPAQUEPACKET + + MessageText: + + The packet is opaque, so the requested information cannot be returned.%0 + + + + + MessageId: MF_E_ASF_NOINDEX + + MessageText: + + The requested operation failed since there is no appropriate ASF index.%0 + + + + + MessageId: MF_E_ASF_OUTOFRANGE + + MessageText: + + The value supplied is out of range for this operation.%0 + + + + + MessageId: MF_E_ASF_INDEXNOTLOADED + + MessageText: + + The index entry requested needs to be loaded before it can be available.%0 + + + + + MessageId: MF_E_ASF_TOO_MANY_PAYLOADS + + MessageText: + + The packet has reached the maximum number of payloads.%0 + + + + + MessageId: MF_E_ASF_UNSUPPORTED_STREAM_TYPE + + MessageText: + + Stream type is not supported.%0 + + + + + MessageId: MF_E_ASF_DROPPED_PACKET + + MessageText: + + One or more ASF packets were dropped.%0 + + + + + MessageId: MF_E_NO_EVENTS_AVAILABLE + + MessageText: + + There are no events available in the queue.%0 + + + + + MessageId: MF_E_INVALID_STATE_TRANSITION + + MessageText: + + A media source cannot go from the stopped state to the paused state.%0 + + + + + MessageId: MF_E_END_OF_STREAM + + MessageText: + + The media stream cannot process any more samples because there are no more samples in the stream.%0 + + + + + MessageId: MF_E_SHUTDOWN + + MessageText: + + The request is invalid because Shutdown() has been called.%0 + + + + + MessageId: MF_E_MP3_NOTFOUND + + MessageText: + + The MP3 object was not found.%0 + + + + + MessageId: MF_E_MP3_OUTOFDATA + + MessageText: + + The MP3 parser ran out of data before finding the MP3 object.%0 + + + + + MessageId: MF_E_MP3_NOTMP3 + + MessageText: + + The file is not really a MP3 file.%0 + + + + + MessageId: MF_E_MP3_NOTSUPPORTED + + MessageText: + + The MP3 file is not supported.%0 + + + + + MessageId: MF_E_NO_DURATION + + MessageText: + + The Media stream has no duration.%0 + + + + + MessageId: MF_E_INVALID_FORMAT + + MessageText: + + The Media format is recognized but is invalid.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_FOUND + + MessageText: + + The property requested was not found.%0 + + + + + MessageId: MF_E_PROPERTY_READ_ONLY + + MessageText: + + The property is read only.%0 + + + + + MessageId: MF_E_PROPERTY_NOT_ALLOWED + + MessageText: + + The specified property is not allowed in this context.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NOT_STARTED + + MessageText: + + The media source is not started.%0 + + + + + MessageId: MF_E_UNSUPPORTED_FORMAT + + MessageText: + + The Media format is recognized but not supported.%0 + + + + + MessageId: MF_E_MP3_BAD_CRC + + MessageText: + + The MPEG frame has bad CRC.%0 + + + + + MessageId: MF_E_NOT_PROTECTED + + MessageText: + + The file is not protected.%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_WRONGSTATE + + MessageText: + + The media source is in the wrong state%0 + + + + + MessageId: MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED + + MessageText: + + No streams are selected in source presentation descriptor.%0 + + + + + MessageId: MF_E_CANNOT_FIND_KEYFRAME_SAMPLE + + MessageText: + + No key frame sample was found.%0 + + + + + MessageId: MF_E_NETWORK_RESOURCE_FAILURE + + MessageText: + + An attempt to acquire a network resource failed.%0 + + + + + MessageId: MF_E_NET_WRITE + + MessageText: + + Error writing to the network.%0 + + + + + MessageId: MF_E_NET_READ + + MessageText: + + Error reading from the network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_NETWORK + + MessageText: + + Internal. Entry cannot complete operation without network.%0 + + + + + MessageId: MF_E_NET_REQUIRE_ASYNC + + MessageText: + + Internal. Async op is required.%0 + + + + + MessageId: MF_E_NET_BWLEVEL_NOT_SUPPORTED + + MessageText: + + Internal. Bandwidth levels are not supported.%0 + + + + + MessageId: MF_E_NET_STREAMGROUPS_NOT_SUPPORTED + + MessageText: + + Internal. Stream groups are not supported.%0 + + + + + MessageId: MF_E_NET_MANUALSS_NOT_SUPPORTED + + MessageText: + + Manual stream selection is not supported.%0 + + + + + MessageId: MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR + + MessageText: + + Invalid presentation descriptor.%0 + + + + + MessageId: MF_E_NET_CACHESTREAM_NOT_FOUND + + MessageText: + + Cannot find cache stream.%0 + + + + + MessageId: MF_I_MANUAL_PROXY + + MessageText: + + The proxy setting is manual.%0 + + + + duplicate removed + MessageId=17011 Severity=Informational Facility=MEDIAFOUNDATION SymbolicName=MF_E_INVALID_REQUEST + Language=English + The request is invalid in the current state.%0 + . + + MessageId: MF_E_NET_REQUIRE_INPUT + + MessageText: + + Internal. Entry cannot complete operation without input.%0 + + + + + MessageId: MF_E_NET_REDIRECT + + MessageText: + + The client redirected to another server.%0 + + + + + MessageId: MF_E_NET_REDIRECT_TO_PROXY + + MessageText: + + The client is redirected to a proxy server.%0 + + + + + MessageId: MF_E_NET_TOO_MANY_REDIRECTS + + MessageText: + + The client reached maximum redirection limit.%0 + + + + + MessageId: MF_E_NET_TIMEOUT + + MessageText: + + The server, a computer set up to offer multimedia content to other computers, could not handle your request for multimedia content in a timely manner. Please try again later.%0 + + + + + MessageId: MF_E_NET_CLIENT_CLOSE + + MessageText: + + The control socket is closed by the client.%0 + + + + + MessageId: MF_E_NET_BAD_CONTROL_DATA + + MessageText: + + The server received invalid data from the client on the control connection.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_SERVER + + MessageText: + + The server is not a compatible streaming media server.%0 + + + + + MessageId: MF_E_NET_UNSAFE_URL + + MessageText: + + Url.%0 + + + + + MessageId: MF_E_NET_CACHE_NO_DATA + + MessageText: + + Data is not available.%0 + + + + + MessageId: MF_E_NET_EOL + + MessageText: + + End of line.%0 + + + + + MessageId: MF_E_NET_BAD_REQUEST + + MessageText: + + The request could not be understood by the server.%0 + + + + + MessageId: MF_E_NET_INTERNAL_SERVER_ERROR + + MessageText: + + The server encountered an unexpected condition which prevented it from fulfilling the request.%0 + + + + + MessageId: MF_E_NET_SESSION_NOT_FOUND + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_NET_NOCONNECTION + + MessageText: + + There is no connection established with the Windows Media server. The operation failed.%0 + + + + + MessageId: MF_E_NET_CONNECTION_FAILURE + + MessageText: + + The network connection has failed.%0 + + + + + MessageId: MF_E_NET_INCOMPATIBLE_PUSHSERVER + + MessageText: + + The Server service that received the HTTP push request is not a compatible version of Windows Media Services (WMS). This error may indicate the push request was received by IIS instead of WMS. Ensure WMS is started and has the HTTP Server control protocol properly enabled and try again.%0 + + + + + MessageId: MF_E_NET_SERVER_ACCESSDENIED + + MessageText: + + The Windows Media server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_PROXY_ACCESSDENIED + + MessageText: + + The proxy server is denying access. The username and/or password might be incorrect.%0 + + + + + MessageId: MF_E_NET_CANNOTCONNECT + + MessageText: + + Unable to establish a connection to the server.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_TEMPLATE + + MessageText: + + The specified push template is invalid.%0 + + + + + MessageId: MF_E_NET_INVALID_PUSH_PUBLISHING_POINT + + MessageText: + + The specified push publishing point is invalid.%0 + + + + + MessageId: MF_E_NET_BUSY + + MessageText: + + The requested resource is in use.%0 + + + + + MessageId: MF_E_NET_RESOURCE_GONE + + MessageText: + + The Publishing Point or file on the Windows Media Server is no longer available.%0 + + + + + MessageId: MF_E_NET_ERROR_FROM_PROXY + + MessageText: + + The proxy experienced an error while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_PROXY_TIMEOUT + + MessageText: + + The proxy did not receive a timely response while attempting to contact the media server.%0 + + + + + MessageId: MF_E_NET_SERVER_UNAVAILABLE + + MessageText: + + The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.%0 + + + + + MessageId: MF_E_NET_TOO_MUCH_DATA + + MessageText: + + The encoding process was unable to keep up with the amount of supplied data.%0 + + + + + MessageId: MF_E_NET_SESSION_INVALID + + MessageText: + + Session not found.%0 + + + + + MessageId: MF_E_OFFLINE_MODE + + MessageText: + + The requested URL is not available in offline mode.%0 + + + + + MessageId: MF_E_NET_UDP_BLOCKED + + MessageText: + + A device in the network is blocking UDP traffic.%0 + + + + + MessageId: MF_E_NET_UNSUPPORTED_CONFIGURATION + + MessageText: + + The specified configuration value is not supported.%0 + + + + + MessageId: MF_E_NET_PROTOCOL_DISABLED + + MessageText: + + The networking protocol is disabled.%0 + + + + + MessageId: MF_E_ALREADY_INITIALIZED + + MessageText: + + This object has already been initialized and cannot be re-initialized at this time.%0 + + + + + MessageId: MF_E_BANDWIDTH_OVERRUN + + MessageText: + + The amount of data passed in exceeds the given bitrate and buffer window.%0 + + + + + MessageId: MF_E_LATE_SAMPLE + + MessageText: + + The sample was passed in too late to be correctly processed.%0 + + + + + MessageId: MF_E_FLUSH_NEEDED + + MessageText: + + The requested action cannot be carried out until the object is flushed and the queue is emptied.%0 + + + + + MessageId: MF_E_INVALID_PROFILE + + MessageText: + + The profile is invalid.%0 + + + + + MessageId: MF_E_INDEX_NOT_COMMITTED + + MessageText: + + The index that is being generated needs to be committed before the requested action can be carried out.%0 + + + + + MessageId: MF_E_NO_INDEX + + MessageText: + + The index that is necessary for the requested action is not found.%0 + + + + + MessageId: MF_E_CANNOT_INDEX_IN_PLACE + + MessageText: + + The requested index cannot be added in-place to the specified ASF content.%0 + + + + + MessageId: MF_E_MISSING_ASF_LEAKYBUCKET + + MessageText: + + The ASF leaky bucket parameters must be specified in order to carry out this request.%0 + + + + + MessageId: MF_E_INVALID_ASF_STREAMID + + MessageText: + + The stream id is invalid. The valid range for ASF stream id is from 1 to 127.%0 + + + + + MessageId: MF_E_STREAMSINK_REMOVED + + MessageText: + + The requested Stream Sink has been removed and cannot be used.%0 + + + + + MessageId: MF_E_STREAMSINKS_OUT_OF_SYNC + + MessageText: + + The various Stream Sinks in this Media Sink are too far out of sync for the requested action to take place.%0 + + + + + MessageId: MF_E_STREAMSINKS_FIXED + + MessageText: + + Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.%0 + + + + + MessageId: MF_E_STREAMSINK_EXISTS + + MessageText: + + The given Stream Sink already exists.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_CANCELED + + MessageText: + + Sample allocations have been canceled.%0 + + + + + MessageId: MF_E_SAMPLEALLOCATOR_EMPTY + + MessageText: + + The sample allocator is currently empty, due to outstanding requests.%0 + + + + + MessageId: MF_E_SINK_ALREADYSTOPPED + + MessageText: + + When we try to sopt a stream sink, it is already stopped %0 + + + + + MessageId: MF_E_ASF_FILESINK_BITRATE_UNKNOWN + + MessageText: + + The ASF file sink could not reserve AVIO because the bitrate is unknown.%0 + + + + + MessageId: MF_E_SINK_NO_STREAMS + + MessageText: + + No streams are selected in sink presentation descriptor.%0 + + + + + MessageId: MF_S_SINK_NOT_FINALIZED + + MessageText: + + The sink has not been finalized before shut down. This may cause sink generate a corrupted content.%0 + + + + + MessageId: MF_E_METADATA_TOO_LONG + + MessageText: + + A metadata item was too long to write to the output container.%0 + + + + + MessageId: MF_E_SINK_NO_SAMPLES_PROCESSED + + MessageText: + + The operation failed because no samples were processed by the sink.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_PROCAMP_HW + + MessageText: + + There is no available procamp hardware with which to perform color correction.%0 + + + + + MessageId: MF_E_VIDEO_REN_NO_DEINTERLACE_HW + + MessageText: + + There is no available deinterlacing hardware with which to deinterlace the video stream.%0 + + + + + MessageId: MF_E_VIDEO_REN_COPYPROT_FAILED + + MessageText: + + A video stream requires copy protection to be enabled, but there was a failure in attempting to enable copy protection.%0 + + + + + MessageId: MF_E_VIDEO_REN_SURFACE_NOT_SHARED + + MessageText: + + A component is attempting to access a surface for sharing that is not shared.%0 + + + + + MessageId: MF_E_VIDEO_DEVICE_LOCKED + + MessageText: + + A component is attempting to access a shared device that is already locked by another component.%0 + + + + + MessageId: MF_E_NEW_VIDEO_DEVICE + + MessageText: + + The device is no longer available. The handle should be closed and a new one opened.%0 + + + + + MessageId: MF_E_NO_VIDEO_SAMPLE_AVAILABLE + + MessageText: + + A video sample is not currently queued on a stream that is required for mixing.%0 + + + + + MessageId: MF_E_NO_AUDIO_PLAYBACK_DEVICE + + MessageText: + + No audio playback device was found.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE + + MessageText: + + The requested audio playback device is currently in use.%0 + + + + + MessageId: MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED + + MessageText: + + The audio playback device is no longer present.%0 + + + + + MessageId: MF_E_AUDIO_SERVICE_NOT_RUNNING + + MessageText: + + The audio service is not running.%0 + + + + + MessageId: MF_E_TOPO_INVALID_OPTIONAL_NODE + + MessageText: + + The topology contains an invalid optional node. Possible reasons are incorrect number of outputs and inputs or optional node is at the beginning or end of a segment. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_FIND_DECRYPTOR + + MessageText: + + No suitable transform was found to decrypt the content. %0 + + + + + MessageId: MF_E_TOPO_CODEC_NOT_FOUND + + MessageText: + + No suitable transform was found to encode or decode the content. %0 + + + + + MessageId: MF_E_TOPO_CANNOT_CONNECT + + MessageText: + + Unable to find a way to connect nodes%0 + + + + + MessageId: MF_E_TOPO_UNSUPPORTED + + MessageText: + + Unsupported operations in topoloader%0 + + + + + MessageId: MF_E_TOPO_INVALID_TIME_ATTRIBUTES + + MessageText: + + The topology or its nodes contain incorrectly set time attributes%0 + + + + + MessageId: MF_E_TOPO_LOOPS_IN_TOPOLOGY + + MessageText: + + The topology contains loops, which are unsupported in media foundation topologies%0 + + + + + MessageId: MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_STREAM_DESCRIPTOR + + MessageText: + + A source stream node in the topology does not have a stream descriptor%0 + + + + + MessageId: MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED + + MessageText: + + A stream descriptor was set on a source stream node but it was not selected on the presentation descriptor%0 + + + + + MessageId: MF_E_TOPO_MISSING_SOURCE + + MessageText: + + A source stream node in the topology does not have a source%0 + + + + + MessageId: MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED + + MessageText: + + The topology loader does not support sink activates on output nodes.%0 + + + + + MessageId: MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID + + MessageText: + + The sequencer cannot find a segment with the given ID.%0\n. + + + + + MessageId: MF_S_SEQUENCER_CONTEXT_CANCELED + + MessageText: + + The context was canceled.%0\n. + + + + + MessageId: MF_E_NO_SOURCE_IN_CACHE + + MessageText: + + Cannot find source in source cache.%0\n. + + + + + MessageId: MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM + + MessageText: + + Cannot update topology flags.%0\n. + + + + + MessageId: MF_E_TRANSFORM_TYPE_NOT_SET + + MessageText: + + A valid type has not been set for this stream or a stream that it depends on.%0 + + + + + MessageId: MF_E_TRANSFORM_STREAM_CHANGE + + MessageText: + + A stream change has occurred. Output cannot be produced until the streams have been renegotiated.%0 + + + + + MessageId: MF_E_TRANSFORM_INPUT_REMAINING + + MessageText: + + The transform cannot take the requested action until all of the input data it currently holds is processed or flushed.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_MISSING + + MessageText: + + The transform requires a profile but no profile was supplied or found.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT + + MessageText: + + The transform requires a profile but the supplied profile was invalid or corrupt.%0 + + + + + MessageId: MF_E_TRANSFORM_PROFILE_TRUNCATED + + MessageText: + + The transform requires a profile but the supplied profile ended unexpectedly while parsing.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED + + MessageText: + + The property ID does not match any property supported by the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG + + MessageText: + + The variant does not have the type expected for this property ID.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE + + MessageText: + + An attempt was made to set the value on a read-only property.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM + + MessageText: + + The array property value has an unexpected number of dimensions.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG + + MessageText: + + The array or blob property value has an unexpected size.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE + + MessageText: + + The property value is out of range for this transform.%0 + + + + + MessageId: MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE + + MessageText: + + The property value is incompatible with some other property or mediatype set on the transform.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set output mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE + + MessageText: + + The requested operation is not supported for the currently set input mediatype.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION + + MessageText: + + The requested operation is not supported for the currently set combination of mediatypes.%0 + + + + + MessageId: MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES + + MessageText: + + The requested feature is not supported in combination with some other currently enabled feature.%0 + + + + + MessageId: MF_E_TRANSFORM_NEED_MORE_INPUT + + MessageText: + + The transform cannot produce output until it gets more input samples.%0 + + + + + MessageId: MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG + + MessageText: + + The requested operation is not supported for the current speaker configuration.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING + + MessageText: + + The transform cannot accept mediatype changes in the middle of processing.%0 + + + + + MessageId: MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT + + MessageText: + + The caller should not propagate this event to downstream components.%0 + + + + + MessageId: MF_E_UNSUPPORTED_D3D_TYPE + + MessageText: + + The input type is not supported for D3D device.%0 + + + + + MessageId: MF_E_TRANSFORM_ASYNC_LOCKED + + MessageText: + + The caller does not appear to support this transform's asynchronous capabilities.%0 + + + + + MessageId: MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER + + MessageText: + + An audio compression manager driver could not be initialized by the transform.%0 + + + + + MessageId: MF_E_LICENSE_INCORRECT_RIGHTS + + MessageText: + + You are not allowed to open this file. Contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_OUTOFDATE + + MessageText: + + The license for this media file has expired. Get a new license or contact the content provider for further assistance.%0 + + + + + MessageId: MF_E_LICENSE_REQUIRED + + MessageText: + + You need a license to perform the requested operation on this media file.%0 + + + + + MessageId: MF_E_DRM_HARDWARE_INCONSISTENT + + MessageText: + + The licenses for your media files are corrupted. Contact Microsoft product support.%0 + + + + + MessageId: MF_E_NO_CONTENT_PROTECTION_MANAGER + + MessageText: + + The APP needs to provide IMFContentProtectionManager callback to access the protected media file.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NO_RIGHTS + + MessageText: + + Client does not have rights to restore licenses.%0 + + + + + MessageId: MF_E_BACKUP_RESTRICTED_LICENSE + + MessageText: + + Licenses are restricted and hence can not be backed up.%0 + + + + + MessageId: MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION + + MessageText: + + License restore requires machine to be individualized.%0 + + + + + MessageId: MF_S_PROTECTION_NOT_REQUIRED + + MessageText: + + Protection for stream is not required.%0 + + + + + MessageId: MF_E_COMPONENT_REVOKED + + MessageText: + + Component is revoked.%0 + + + + + MessageId: MF_E_TRUST_DISABLED + + MessageText: + + Trusted functionality is currently disabled on this component.%0 + + + + + MessageId: MF_E_WMDRMOTA_NO_ACTION + + MessageText: + + No Action is set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_ALREADY_SET + + MessageText: + + Action is already set on WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE + + MessageText: + + DRM Heaader is not available.%0 + + + + + MessageId: MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED + + MessageText: + + Current encryption scheme is not supported.%0 + + + + + MessageId: MF_E_WMDRMOTA_ACTION_MISMATCH + + MessageText: + + Action does not match with current configuration.%0 + + + + + MessageId: MF_E_WMDRMOTA_INVALID_POLICY + + MessageText: + + Invalid policy for WMDRM Output Trust Authority.%0 + + + + + MessageId: MF_E_POLICY_UNSUPPORTED + + MessageText: + + The policies that the Input Trust Authority requires to be enforced are unsupported by the outputs.%0 + + + + + MessageId: MF_E_OPL_NOT_SUPPORTED + + MessageText: + + The OPL that the license requires to be enforced are not supported by the Input Trust Authority.%0 + + + + + MessageId: MF_E_TOPOLOGY_VERIFICATION_FAILED + + MessageText: + + The topology could not be successfully verified.%0 + + + + + MessageId: MF_E_SIGNATURE_VERIFICATION_FAILED + + MessageText: + + Signature verification could not be completed successfully for this component.%0 + + + + + MessageId: MF_E_DEBUGGING_NOT_ALLOWED + + MessageText: + + Running this process under a debugger while using protected content is not allowed.%0 + + + + + MessageId: MF_E_CODE_EXPIRED + + MessageText: + + MF component has expired.%0 + + + + + MessageId: MF_E_GRL_VERSION_TOO_LOW + + MessageText: + + The current GRL on the machine does not meet the minimum version requirements.%0 + + + + + MessageId: MF_E_GRL_RENEWAL_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any renewal entries for the specified revocation.%0 + + + + + MessageId: MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND + + MessageText: + + The current GRL on the machine does not contain any extensible entries for the specified extension GUID.%0 + + + + + MessageId: MF_E_KERNEL_UNTRUSTED + + MessageText: + + The kernel isn't secure for high security level content.%0 + + + + + MessageId: MF_E_PEAUTH_UNTRUSTED + + MessageText: + + The response from protected environment driver isn't valid.%0 + + + + + MessageId: MF_E_NON_PE_PROCESS + + MessageText: + + A non-PE process tried to talk to PEAuth.%0 + + + + + MessageId: MF_E_REBOOT_REQUIRED + + MessageText: + + We need to reboot the machine.%0 + + + + + MessageId: MF_S_WAIT_FOR_POLICY_SET + + MessageText: + + Protection for this stream is not guaranteed to be enforced until the MEPolicySet event is fired.%0 + + + + + MessageId: MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT + + MessageText: + + This video stream is disabled because it is being sent to an unknown software output.%0 + + + + + MessageId: MF_E_GRL_INVALID_FORMAT + + MessageText: + + The GRL file is not correctly formed, it may have been corrupted or overwritten.%0 + + + + + MessageId: MF_E_GRL_UNRECOGNIZED_FORMAT + + MessageText: + + The GRL file is in a format newer than those recognized by this GRL Reader.%0 + + + + + MessageId: MF_E_ALL_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and required all processes that can run protected media to restart.%0 + + + + + MessageId: MF_E_PROCESS_RESTART_REQUIRED + + MessageText: + + The GRL was reloaded and the current process needs to restart.%0 + + + + + MessageId: MF_E_USERMODE_UNTRUSTED + + MessageText: + + The user space is untrusted for protected content play.%0 + + + + + MessageId: MF_E_PEAUTH_SESSION_NOT_STARTED + + MessageText: + + PEAuth communication session hasn't been started.%0 + + + + + MessageId: MF_E_PEAUTH_PUBLICKEY_REVOKED + + MessageText: + + PEAuth's public key is revoked.%0 + + + + + MessageId: MF_E_GRL_ABSENT + + MessageText: + + The GRL is absent.%0 + + + + + MessageId: MF_S_PE_TRUSTED + + MessageText: + + The Protected Environment is trusted.%0 + + + + + MessageId: MF_E_PE_UNTRUSTED + + MessageText: + + The Protected Environment is untrusted.%0 + + + + + MessageId: MF_E_PEAUTH_NOT_STARTED + + MessageText: + + The Protected Environment Authorization service (PEAUTH) has not been started.%0 + + + + + MessageId: MF_E_INCOMPATIBLE_SAMPLE_PROTECTION + + MessageText: + + The sample protection algorithms supported by components are not compatible.%0 + + + + + MessageId: MF_E_PE_SESSIONS_MAXED + + MessageText: + + No more protected environment sessions can be supported.%0 + + + + + MessageId: MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED + + MessageText: + + WMDRM ITA does not allow protected content with high security level for this release.%0 + + + + + MessageId: MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED + + MessageText: + + WMDRM ITA cannot allow the requested action for the content as one or more components is not properly signed.%0 + + + + + MessageId: MF_E_ITA_UNSUPPORTED_ACTION + + MessageText: + + WMDRM ITA does not support the requested action.%0 + + + + + MessageId: MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS + + MessageText: + + WMDRM ITA encountered an error in parsing the Secure Audio Path parameters.%0 + + + + + MessageId: MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS + + MessageText: + + The Policy Manager action passed in is invalid.%0 + + + + + MessageId: MF_E_BAD_OPL_STRUCTURE_FORMAT + + MessageText: + + The structure specifying Output Protection Level is not the correct format.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID + + MessageText: + + WMDRM ITA does not recognize the Explicite Analog Video Output Protection guid specified in the license.%0 + + + + + MessageId: MF_E_NO_PMP_HOST + + MessageText: + + IMFPMPHost object not available.%0 + + + + + MessageId: MF_E_ITA_OPL_DATA_NOT_INITIALIZED + + MessageText: + + WMDRM ITA could not initialize the Output Protection Level data.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Analog Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT + + MessageText: + + WMDRM ITA does not recognize the Digital Video Output specified by the OTA.%0 + + + + + MessageId: MF_E_CLOCK_INVALID_CONTINUITY_KEY + + MessageText: + + The continuity key supplied is not currently valid.%0 + + + + + MessageId: MF_E_CLOCK_NO_TIME_SOURCE + + MessageText: + + No Presentation Time Source has been specified.%0 + + + + + MessageId: MF_E_CLOCK_STATE_ALREADY_SET + + MessageText: + + The clock is already in the requested state.%0 + + + + + MessageId: MF_E_CLOCK_NOT_SIMPLE + + MessageText: + + The clock has too many advanced features to carry out the request.%0 + + + + + MessageId: MF_S_CLOCK_STOPPED + + MessageText: + + Timer::SetTimer returns this success code if called happened while timer is stopped. Timer is not going to be dispatched until clock is running%0 + + + + + MessageId: MF_E_NO_MORE_DROP_MODES + + MessageText: + + The component does not support any more drop modes.%0 + + + + + MessageId: MF_E_NO_MORE_QUALITY_LEVELS + + MessageText: + + The component does not support any more quality levels.%0 + + + + + MessageId: MF_E_DROPTIME_NOT_SUPPORTED + + MessageText: + + The component does not support drop time functionality.%0 + + + + + MessageId: MF_E_QUALITYKNOB_WAIT_LONGER + + MessageText: + + Quality Manager needs to wait longer before bumping the Quality Level up.%0 + + + + + MessageId: MF_E_QM_INVALIDSTATE + + MessageText: + + Quality Manager is in an invalid state. Quality Management is off at this moment.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_CONTAINERTYPE + + MessageText: + + No transcode output container type is specified.%0 + + + + + MessageId: MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS + + MessageText: + + The profile does not have a media type configuration for any selected source streams.%0 + + + + + MessageId: MF_E_TRANSCODE_NO_MATCHING_ENCODER + + MessageText: + + Cannot find an encoder MFT that accepts the user preferred output type.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_INITIALIZED + + MessageText: + + Memory allocator is not initialized.%0 + + + + + MessageId: MF_E_ALLOCATOR_NOT_COMMITED + + MessageText: + + Memory allocator is not committed yet.%0 + + + + + MessageId: MF_E_ALLOCATOR_ALREADY_COMMITED + + MessageText: + + Memory allocator has already been committed.%0 + + + + + MessageId: MF_E_STREAM_ERROR + + MessageText: + + An error occurred in media stream.%0 + + + + + MessageId: MF_E_INVALID_STREAM_STATE + + MessageText: + + Stream is not in a state to handle the request.%0 + + + + + MessageId: MF_E_HW_STREAM_NOT_CONNECTED + + MessageText: + + Hardware stream is not connected yet.%0 + + + + + Major Media Types + http://msdn.microsoft.com/en-us/library/windows/desktop/aa367377%28v=vs.85%29.aspx + + + + + Default + + + + + Audio + + + + + Video + + + + + Protected Media + + + + + Synchronized Accessible Media Interchange (SAMI) captions. + + + + + Script stream + + + + + Still image stream. + + + + + HTML stream. + + + + + Binary stream. + + + + + A stream that contains data files. + + + + + IMFActivate, defined in mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Creates the object associated with this activation object. + + + + + Shuts down the created object. + + + + + Detaches the created object from the activation object. + + + + + Represents a generic collection of IUnknown pointers. + + + + + Retrieves the number of objects in the collection. + + + + + Retrieves an object in the collection. + + + + + Adds an object to the collection. + + + + + Removes an object from the collection. + + + + + Removes an object from the collection. + + + + + Removes all items from the collection. + + + + + IMFMediaEvent - Represents an event generated by a Media Foundation object. Use this interface to get information about the event. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms702249%28v=vs.85%29.aspx + Mfobjects.h + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the event type. + + + virtual HRESULT STDMETHODCALLTYPE GetType( + /* [out] */ __RPC__out MediaEventType *pmet) = 0; + + + + + Retrieves the extended type of the event. + + + virtual HRESULT STDMETHODCALLTYPE GetExtendedType( + /* [out] */ __RPC__out GUID *pguidExtendedType) = 0; + + + + + Retrieves an HRESULT that specifies the event status. + + + virtual HRESULT STDMETHODCALLTYPE GetStatus( + /* [out] */ __RPC__out HRESULT *phrStatus) = 0; + + + + + Retrieves the value associated with the event, if any. + + + virtual HRESULT STDMETHODCALLTYPE GetValue( + /* [out] */ __RPC__out PROPVARIANT *pvValue) = 0; + + + + + Implemented by the Microsoft Media Foundation sink writer object. + + + + + Adds a stream to the sink writer. + + + + + Sets the input format for a stream on the sink writer. + + + + + Initializes the sink writer for writing. + + + + + Delivers a sample to the sink writer. + + + + + Indicates a gap in an input stream. + + + + + Places a marker in the specified stream. + + + + + Notifies the media sink that a stream has reached the end of a segment. + + + + + Flushes one or more streams. + + + + + (Finalize) Completes all writing operations on the sink writer. + + + + + Queries the underlying media sink or encoder for an interface. + + + + + Gets statistics about the performance of the sink writer. + + + + + IMFTransform, defined in mftransform.h + + + + + Retrieves the minimum and maximum number of input and output streams. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( + /* [out] */ __RPC__out DWORD *pdwInputMinimum, + /* [out] */ __RPC__out DWORD *pdwInputMaximum, + /* [out] */ __RPC__out DWORD *pdwOutputMinimum, + /* [out] */ __RPC__out DWORD *pdwOutputMaximum) = 0; + + + + + Retrieves the current number of input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + /* [out] */ __RPC__out DWORD *pcInputStreams, + /* [out] */ __RPC__out DWORD *pcOutputStreams) = 0; + + + + + Retrieves the stream identifiers for the input and output streams on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( + DWORD dwInputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwInputIDArraySize) DWORD *pdwInputIDs, + DWORD dwOutputIDArraySize, + /* [size_is][out] */ __RPC__out_ecount_full(dwOutputIDArraySize) DWORD *pdwOutputIDs) = 0; + + + + + Gets the buffer requirements and other information for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( + DWORD dwInputStreamID, + /* [out] */ __RPC__out MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the buffer requirements and other information for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( + DWORD dwOutputStreamID, + /* [out] */ __RPC__out MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + + + + + Gets the global attribute store for this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetAttributes( + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an input stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Retrieves the attribute store for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFAttributes **pAttributes) = 0; + + + + + Removes an input stream from this MFT. + + + virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( + DWORD dwStreamID) = 0; + + + + + Adds one or more new input streams to this MFT. + + + virtual HRESULT STDMETHODCALLTYPE AddInputStreams( + DWORD cStreams, + /* [in] */ __RPC__in DWORD *adwStreamIDs) = 0; + + + + + Gets an available media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( + DWORD dwInputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Retrieves an available media type for an output stream on this MFT. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( + DWORD dwOutputStreamID, + DWORD dwTypeIndex, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Sets, tests, or clears the media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetInputType( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Sets, tests, or clears the media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE SetOutputType( + DWORD dwOutputStreamID, + /* [in] */ __RPC__in_opt IMFMediaType *pType, + DWORD dwFlags) = 0; + + + + + Gets the current media type for an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( + DWORD dwInputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Gets the current media type for an output stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( + DWORD dwOutputStreamID, + /* [out] */ __RPC__deref_out_opt IMFMediaType **ppType) = 0; + + + + + Queries whether an input stream on this Media Foundation transform (MFT) can accept more data. + + + virtual HRESULT STDMETHODCALLTYPE GetInputStatus( + DWORD dwInputStreamID, + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Queries whether the Media Foundation transform (MFT) is ready to produce output data. + + + virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( + /* [out] */ __RPC__out DWORD *pdwFlags) = 0; + + + + + Sets the range of time stamps the client needs for output. + + + virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( + LONGLONG hnsLowerBound, + LONGLONG hnsUpperBound) = 0; + + + + + Sends an event to an input stream on this Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessEvent( + DWORD dwInputStreamID, + /* [in] */ __RPC__in_opt IMFMediaEvent *pEvent) = 0; + + + + + Sends a message to the Media Foundation transform (MFT). + + + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFT_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + + + + Delivers data to an input stream on this Media Foundation transform (MFT). + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessInput( + DWORD dwInputStreamID, + IMFSample *pSample, + DWORD dwFlags) = 0; + + + + + Generates output from the current input data. + + + virtual /* [local] */ HRESULT STDMETHODCALLTYPE ProcessOutput( + DWORD dwFlags, + DWORD cOutputBufferCount, + /* [size_is][out][in] */ MFT_OUTPUT_DATA_BUFFER *pOutputSamples, + /* [out] */ DWORD *pdwStatus) = 0; + + + + + See mfobjects.h + + + + + Unknown event type. + + + + + Signals a serious error. + + + + + Custom event type. + + + + + A non-fatal error occurred during streaming. + + + + + Session Unknown + + + + + Raised after the IMFMediaSession::SetTopology method completes asynchronously + + + + + Raised by the Media Session when the IMFMediaSession::ClearTopologies method completes asynchronously. + + + + + Raised when the IMFMediaSession::Start method completes asynchronously. + + + + + Raised when the IMFMediaSession::Pause method completes asynchronously. + + + + + Raised when the IMFMediaSession::Stop method completes asynchronously. + + + + + Raised when the IMFMediaSession::Close method completes asynchronously. + + + + + Raised by the Media Session when it has finished playing the last presentation in the playback queue. + + + + + Raised by the Media Session when the playback rate changes. + + + + + Raised by the Media Session when it completes a scrubbing request. + + + + + Raised by the Media Session when the session capabilities change. + + + + + Raised by the Media Session when the status of a topology changes. + + + + + Raised by the Media Session when a new presentation starts. + + + + + Raised by a media source a new presentation is ready. + + + + + License acquisition is about to begin. + + + + + License acquisition is complete. + + + + + Individualization is about to begin. + + + + + Individualization is complete. + + + + + Signals the progress of a content enabler object. + + + + + A content enabler object's action is complete. + + + + + Raised by a trusted output if an error occurs while enforcing the output policy. + + + + + Contains status information about the enforcement of an output policy. + + + + + A media source started to buffer data. + + + + + A media source stopped buffering data. + + + + + The network source started opening a URL. + + + + + The network source finished opening a URL. + + + + + Raised by a media source at the start of a reconnection attempt. + + + + + Raised by a media source at the end of a reconnection attempt. + + + + + Raised by the enhanced video renderer (EVR) when it receives a user event from the presenter. + + + + + Raised by the Media Session when the format changes on a media sink. + + + + + Source Unknown + + + + + Raised when a media source starts without seeking. + + + + + Raised by a media stream when the source starts without seeking. + + + + + Raised when a media source seeks to a new position. + + + + + Raised by a media stream after a call to IMFMediaSource::Start causes a seek in the stream. + + + + + Raised by a media source when it starts a new stream. + + + + + Raised by a media source when it restarts or seeks a stream that is already active. + + + + + Raised by a media source when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Stop method completes asynchronously. + + + + + Raised by a media source when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media stream when the IMFMediaSource::Pause method completes asynchronously. + + + + + Raised by a media source when a presentation ends. + + + + + Raised by a media stream when the stream ends. + + + + + Raised when a media stream delivers a new sample. + + + + + Signals that a media stream does not have data available at a specified time. + + + + + Raised by a media stream when it starts or stops thinning the stream. + + + + + Raised by a media stream when the media type of the stream changes. + + + + + Raised by a media source when the playback rate changes. + + + + + Raised by the sequencer source when a segment is completed and is followed by another segment. + + + + + Raised by a media source when the source's characteristics change. + + + + + Raised by a media source to request a new playback rate. + + + + + Raised by a media source when it updates its metadata. + + + + + Raised by the sequencer source when the IMFSequencerSource::UpdateTopology method completes asynchronously. + + + + + Sink Unknown + + + + + Raised by a stream sink when it completes the transition to the running state. + + + + + Raised by a stream sink when it completes the transition to the stopped state. + + + + + Raised by a stream sink when it completes the transition to the paused state. + + + + + Raised by a stream sink when the rate has changed. + + + + + Raised by a stream sink to request a new media sample from the pipeline. + + + + + Raised by a stream sink after the IMFStreamSink::PlaceMarker method is called. + + + + + Raised by a stream sink when the stream has received enough preroll data to begin rendering. + + + + + Raised by a stream sink when it completes a scrubbing request. + + + + + Raised by a stream sink when the sink's media type is no longer valid. + + + + + Raised by the stream sinks of the EVR if the video device changes. + + + + + Provides feedback about playback quality to the quality manager. + + + + + Raised when a media sink becomes invalid. + + + + + The audio session display name changed. + + + + + The volume or mute state of the audio session changed + + + + + The audio device was removed. + + + + + The Windows audio server system was shut down. + + + + + The grouping parameters changed for the audio session. + + + + + The audio session icon changed. + + + + + The default audio format for the audio device changed. + + + + + The audio session was disconnected from a Windows Terminal Services session + + + + + The audio session was preempted by an exclusive-mode connection. + + + + + Trust Unknown + + + + + The output policy for a stream changed. + + + + + Content protection message + + + + + The IMFOutputTrustAuthority::SetPolicy method completed. + + + + + DRM License Backup Completed + + + + + DRM License Backup Progress + + + + + DRM License Restore Completed + + + + + DRM License Restore Progress + + + + + DRM License Acquisition Completed + + + + + DRM Individualization Completed + + + + + DRM Individualization Progress + + + + + DRM Proximity Completed + + + + + DRM License Store Cleaned + + + + + DRM Revocation Download Completed + + + + + Transform Unknown + + + + + Sent by an asynchronous MFT to request a new input sample. + + + + + Sent by an asynchronous MFT when new output data is available from the MFT. + + + + + Sent by an asynchronous Media Foundation transform (MFT) when a drain operation is complete. + + + + + Sent by an asynchronous MFT in response to an MFT_MESSAGE_COMMAND_MARKER message. + + + + + Media Foundation attribute guids + http://msdn.microsoft.com/en-us/library/windows/desktop/ms696989%28v=vs.85%29.aspx + + + + + Specifies whether an MFT performs asynchronous processing. + + + + + Enables the use of an asynchronous MFT. + + + + + Contains flags for an MFT activation object. + + + + + Specifies the category for an MFT. + + + + + Contains the class identifier (CLSID) of an MFT. + + + + + Contains the registered input types for a Media Foundation transform (MFT). + + + + + Contains the registered output types for a Media Foundation transform (MFT). + + + + + Contains the symbolic link for a hardware-based MFT. + + + + + Contains the display name for a hardware-based MFT. + + + + + Contains a pointer to the stream attributes of the connected stream on a hardware-based MFT. + + + + + Specifies whether a hardware-based MFT is connected to another hardware-based MFT. + + + + + Specifies the preferred output format for an encoder. + + + + + Specifies whether an MFT is registered only in the application's process. + + + + + Contains configuration properties for an encoder. + + + + + Specifies whether a hardware device source uses the system time for time stamps. + + + + + Contains an IMFFieldOfUseMFTUnlock pointer, which can be used to unlock the MFT. + + + + + Contains the merit value of a hardware codec. + + + + + Specifies whether a decoder is optimized for transcoding rather than for playback. + + + + + Contains a pointer to the proxy object for the application's presentation descriptor. + + + + + Contains a pointer to the presentation descriptor from the protected media path (PMP). + + + + + Specifies the duration of a presentation, in 100-nanosecond units. + + + + + Specifies the total size of the source file, in bytes. + + + + + Specifies the audio encoding bit rate for the presentation, in bits per second. + + + + + Specifies the video encoding bit rate for the presentation, in bits per second. + + + + + Specifies the MIME type of the content. + + + + + Specifies when a presentation was last modified. + + + + + The identifier of the playlist element in the presentation. + + + + + Contains the preferred RFC 1766 language of the media source. + + + + + The time at which the presentation must begin, relative to the start of the media source. + + + + + Specifies whether the audio streams in the presentation have a variable bit rate. + + + + + Media type Major Type + + + + + Media Type subtype + + + + + Audio block alignment + + + + + Audio average bytes per second + + + + + Audio number of channels + + + + + Audio samples per second + + + + + Audio bits per sample + + + + + Enables the source reader or sink writer to use hardware-based Media Foundation transforms (MFTs). + + + + + Contains additional format data for a media type. + + + + + Specifies for a media type whether each sample is independent of the other samples in the stream. + + + + + Specifies for a media type whether the samples have a fixed size. + + + + + Contains a DirectShow format GUID for a media type. + + + + + Specifies the preferred legacy format structure to use when converting an audio media type. + + + + + Specifies for a media type whether the media data is compressed. + + + + + Approximate data rate of the video stream, in bits per second, for a video media type. + + + + + Specifies the payload type of an Advanced Audio Coding (AAC) stream. + 0 - The stream contains raw_data_block elements only + 1 - Audio Data Transport Stream (ADTS). The stream contains an adts_sequence, as defined by MPEG-2. + 2 - Audio Data Interchange Format (ADIF). The stream contains an adif_sequence, as defined by MPEG-2. + 3 - The stream contains an MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + + + + + Specifies the audio profile and level of an Advanced Audio Coding (AAC) stream, as defined by ISO/IEC 14496-3. + + + + + Main interface for using Media Foundation with NAudio + + + + + initializes MediaFoundation - only needs to be called once per process + + + + + Enumerate the installed MediaFoundation transforms in the specified category + + A category from MediaFoundationTransformCategories + + + + + uninitializes MediaFoundation + + + + + Creates a Media type + + + + + Creates a media type from a WaveFormat + + + + + Creates a memory buffer of the specified size + + Memory buffer size in bytes + The memory buffer + + + + Creates a sample object + + The sample object + + + + Creates a new attributes store + + Initial size + The attributes store + + + + Creates a media foundation byte stream based on a stream object + (usable with WinRT streams) + + The input stream + A media foundation byte stream + + + + Creates a source reader based on a byte stream + + The byte stream + A media foundation source reader + + + + Interop definitions for MediaFoundation + thanks to Lucian Wischik for the initial work on many of these definitions (also various interfaces) + n.b. the goal is to make as much of this internal as possible, and provide + better .NET APIs using the MediaFoundationApi class instead + + + + + Initializes Microsoft Media Foundation. + + + + + Shuts down the Microsoft Media Foundation platform + + + + + Creates an empty media type. + + + + + Initializes a media type from a WAVEFORMATEX structure. + + + + + Converts a Media Foundation audio media type to a WAVEFORMATEX structure. + + TODO: try making second parameter out WaveFormatExtraData + + + + Creates the source reader from a URL. + + + + + Creates the source reader from a byte stream. + + + + + Creates the sink writer from a URL or byte stream. + + + + + Creates a Microsoft Media Foundation byte stream that wraps an IRandomAccessStream object. + + + + + Gets a list of Microsoft Media Foundation transforms (MFTs) that match specified search criteria. + + + + + Creates an empty media sample. + + + + + Allocates system memory and creates a media buffer to manage it. + + + + + Creates an empty attribute store. + + + + + Gets a list of output formats from an audio encoder. + + + + + All streams + + + + + First audio stream + + + + + First video stream + + + + + Media source + + + + + Media Foundation SDK Version + + + + + Media Foundation API Version + + + + + Media Foundation Version + + + + + Provides a generic way to store key/value pairs on an object. + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704598%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + IMFByteStream + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms698720%28v=vs.85%29.aspx + + + + + Retrieves the characteristics of the byte stream. + virtual HRESULT STDMETHODCALLTYPE GetCapabilities(/*[out]*/ __RPC__out DWORD *pdwCapabilities) = 0; + + + + + Retrieves the length of the stream. + virtual HRESULT STDMETHODCALLTYPE GetLength(/*[out]*/ __RPC__out QWORD *pqwLength) = 0; + + + + + Sets the length of the stream. + virtual HRESULT STDMETHODCALLTYPE SetLength(/*[in]*/ QWORD qwLength) = 0; + + + + + Retrieves the current read or write position in the stream. + virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(/*[out]*/ __RPC__out QWORD *pqwPosition) = 0; + + + + + Sets the current read or write position. + virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(/*[in]*/ QWORD qwPosition) = 0; + + + + + Queries whether the current position has reached the end of the stream. + virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(/*[out]*/ __RPC__out BOOL *pfEndOfStream) = 0; + + + + + Reads data from the stream. + virtual HRESULT STDMETHODCALLTYPE Read(/*[size_is][out]*/ __RPC__out_ecount_full(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbRead) = 0; + + + + + Begins an asynchronous read operation from the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginRead(/*[out]*/ _Out_writes_bytes_(cb) BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous read operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndRead(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbRead) = 0; + + + + + Writes data to the stream. + virtual HRESULT STDMETHODCALLTYPE Write(/*[size_is][in]*/ __RPC__in_ecount_full(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[out]*/ __RPC__out ULONG *pcbWritten) = 0; + + + + + Begins an asynchronous write operation to the stream. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE BeginWrite(/*[in]*/ _In_reads_bytes_(cb) const BYTE *pb, /*[in]*/ ULONG cb, /*[in]*/ IMFAsyncCallback *pCallback, /*[in]*/ IUnknown *punkState) = 0; + + + + + Completes an asynchronous write operation. + virtual /*[local]*/ HRESULT STDMETHODCALLTYPE EndWrite(/*[in]*/ IMFAsyncResult *pResult, /*[out]*/ _Out_ ULONG *pcbWritten) = 0; + + + + + Moves the current position in the stream by a specified offset. + virtual HRESULT STDMETHODCALLTYPE Seek(/*[in]*/ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, /*[in]*/ LONGLONG llSeekOffset, /*[in]*/ DWORD dwSeekFlags, /*[out]*/ __RPC__out QWORD *pqwCurrentPosition) = 0; + + + + + Clears any internal buffers used by the stream. + virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0; + + + + + Closes the stream and releases any resources associated with the stream. + virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; + + + + + IMFMediaBuffer + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms696261%28v=vs.85%29.aspx + + + + + Gives the caller access to the memory in the buffer. + + + + + Unlocks a buffer that was previously locked. + + + + + Retrieves the length of the valid data in the buffer. + + + + + Sets the length of the valid data in the buffer. + + + + + Retrieves the allocated size of the buffer. + + + + + Represents a description of a media format. + http://msdn.microsoft.com/en-us/library/windows/desktop/ms704850%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves the major type of the format. + + + + + Queries whether the media type is a compressed format. + + + + + Compares two media types and determines whether they are identical. + + + + + Retrieves an alternative representation of the media type. + + + + + Frees memory that was allocated by the GetRepresentation method. + + + + + http://msdn.microsoft.com/en-gb/library/windows/desktop/ms702192%28v=vs.85%29.aspx + + + + + Retrieves the value associated with a key. + + + + + Retrieves the data type of the value associated with a key. + + + + + Queries whether a stored attribute value equals a specified PROPVARIANT. + + + + + Compares the attributes on this object with the attributes on another object. + + + + + Retrieves a UINT32 value associated with a key. + + + + + Retrieves a UINT64 value associated with a key. + + + + + Retrieves a double value associated with a key. + + + + + Retrieves a GUID value associated with a key. + + + + + Retrieves the length of a string value associated with a key. + + + + + Retrieves a wide-character string associated with a key. + + + + + Retrieves a wide-character string associated with a key. This method allocates the memory for the string. + + + + + Retrieves the length of a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. + + + + + Retrieves a byte array associated with a key. This method allocates the memory for the array. + + + + + Retrieves an interface pointer associated with a key. + + + + + Associates an attribute value with a key. + + + + + Removes a key/value pair from the object's attribute list. + + + + + Removes all key/value pairs from the object's attribute list. + + + + + Associates a UINT32 value with a key. + + + + + Associates a UINT64 value with a key. + + + + + Associates a double value with a key. + + + + + Associates a GUID value with a key. + + + + + Associates a wide-character string with a key. + + + + + Associates a byte array with a key. + + + + + Associates an IUnknown pointer with a key. + + + + + Locks the attribute store so that no other thread can access it. + + + + + Unlocks the attribute store. + + + + + Retrieves the number of attributes that are set on this object. + + + + + Retrieves an attribute at the specified index. + + + + + Copies all of the attributes from this object into another attribute store. + + + + + Retrieves flags associated with the sample. + + + + + Sets flags associated with the sample. + + + + + Retrieves the presentation time of the sample. + + + + + Sets the presentation time of the sample. + + + + + Retrieves the duration of the sample. + + + + + Sets the duration of the sample. + + + + + Retrieves the number of buffers in the sample. + + + + + Retrieves a buffer from the sample. + + + + + Converts a sample with multiple buffers into a sample with a single buffer. + + + + + Adds a buffer to the end of the list of buffers in the sample. + + + + + Removes a buffer at a specified index from the sample. + + + + + Removes all buffers from the sample. + + + + + Retrieves the total length of the valid data in all of the buffers in the sample. + + + + + Copies the sample data to a buffer. + + + + + IMFSourceReader interface + http://msdn.microsoft.com/en-us/library/windows/desktop/dd374655%28v=vs.85%29.aspx + + + + + Queries whether a stream is selected. + + + + + Selects or deselects one or more streams. + + + + + Gets a format that is supported natively by the media source. + + + + + Gets the current media type for a stream. + + + + + Sets the media type for a stream. + + + + + Seeks to a new position in the media source. + + + + + Reads the next sample from the media source. + + + + + Flushes one or more streams. + + + + + Queries the underlying media source or decoder for an interface. + + + + + Gets an attribute from the underlying media source. + + + + + Contains flags that indicate the status of the IMFSourceReader::ReadSample method + http://msdn.microsoft.com/en-us/library/windows/desktop/dd375773(v=vs.85).aspx + + + + + No Error + + + + + An error occurred. If you receive this flag, do not make any further calls to IMFSourceReader methods. + + + + + The source reader reached the end of the stream. + + + + + One or more new streams were created + + + + + The native format has changed for one or more streams. The native format is the format delivered by the media source before any decoders are inserted. + + + + + The current media has type changed for one or more streams. To get the current media type, call the IMFSourceReader::GetCurrentMediaType method. + + + + + There is a gap in the stream. This flag corresponds to an MEStreamTick event from the media source. + + + + + All transforms inserted by the application have been removed for a particular stream. + + + + + Media Foundation Transform Categories + + + + + MFT_CATEGORY_VIDEO_DECODER + + + + + MFT_CATEGORY_VIDEO_ENCODER + + + + + MFT_CATEGORY_VIDEO_EFFECT + + + + + MFT_CATEGORY_MULTIPLEXER + + + + + MFT_CATEGORY_DEMULTIPLEXER + + + + + MFT_CATEGORY_AUDIO_DECODER + + + + + MFT_CATEGORY_AUDIO_ENCODER + + + + + MFT_CATEGORY_AUDIO_EFFECT + + + + + MFT_CATEGORY_VIDEO_PROCESSOR + + + + + MFT_CATEGORY_OTHER + + + + + Contains information about an input stream on a Media Foundation transform (MFT) + + + + + Maximum amount of time between an input sample and the corresponding output sample, in 100-nanosecond units. + + + + + Bitwise OR of zero or more flags from the _MFT_INPUT_STREAM_INFO_FLAGS enumeration. + + + + + The minimum size of each input buffer, in bytes. + + + + + Maximum amount of input data, in bytes, that the MFT holds to perform lookahead. + + + + + The memory alignment required for input buffers. If the MFT does not require a specific alignment, the value is zero. + + + + + Contains information about an output buffer for a Media Foundation transform. + + + + + Output stream identifier. + + + + + Pointer to the IMFSample interface. + + + + + Before calling ProcessOutput, set this member to zero. + + + + + Before calling ProcessOutput, set this member to NULL. + + + + + Contains information about an output stream on a Media Foundation transform (MFT). + + + + + Bitwise OR of zero or more flags from the _MFT_OUTPUT_STREAM_INFO_FLAGS enumeration. + + + + + Minimum size of each output buffer, in bytes. + + + + + The memory alignment required for output buffers. + + + + + Defines messages for a Media Foundation transform (MFT). + + + + + Requests the MFT to flush all stored data. + + + + + Requests the MFT to drain any stored data. + + + + + Sets or clears the Direct3D Device Manager for DirectX Video Accereration (DXVA). + + + + + Drop samples - requires Windows 7 + + + + + Command Tick - requires Windows 8 + + + + + Notifies the MFT that streaming is about to begin. + + + + + Notifies the MFT that streaming is about to end. + + + + + Notifies the MFT that an input stream has ended. + + + + + Notifies the MFT that the first sample is about to be processed. + + + + + Marks a point in the stream. This message applies only to asynchronous MFTs. Requires Windows 7 + + + + + Contains media type information for registering a Media Foundation transform (MFT). + + + + + The major media type. + + + + + The Media Subtype + + + + + Contains statistics about the performance of the sink writer. + + + + + The size of the structure, in bytes. + + + + + The time stamp of the most recent sample given to the sink writer. + + + + + The time stamp of the most recent sample to be encoded. + + + + + The time stamp of the most recent sample given to the media sink. + + + + + The time stamp of the most recent stream tick. + + + + + The system time of the most recent sample request from the media sink. + + + + + The number of samples received. + + + + + The number of samples encoded. + + + + + The number of samples given to the media sink. + + + + + The number of stream ticks received. + + + + + The amount of data, in bytes, currently waiting to be processed. + + + + + The total amount of data, in bytes, that has been sent to the media sink. + + + + + The number of pending sample requests. + + + + + The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder + + + + + The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. + + + + + Contains flags for registering and enumeration Media Foundation transforms (MFTs). + + + + + None + + + + + The MFT performs synchronous data processing in software. + + + + + The MFT performs asynchronous data processing in software. + + + + + The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. + + + + + The MFT that must be unlocked by the application before use. + + + + + For enumeration, include MFTs that were registered in the caller's process. + + + + + The MFT is optimized for transcoding rather than playback. + + + + + For enumeration, sort and filter the results. + + + + + Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER. + + + + + Indicates the status of an input stream on a Media Foundation transform (MFT). + + + + + None + + + + + The input stream can receive more data at this time. + + + + + Describes an input stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of input data must contain complete, unbroken units of data. + + + + + Each media sample that the client provides as input must contain exactly one unit of data, as defined for the MFT_INPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All input samples must be the same size. + + + + + MTF Input Stream Holds buffers + + + + + The MFT does not hold input samples after the IMFTransform::ProcessInput method returns. + + + + + This input stream can be removed by calling IMFTransform::DeleteInputStream. + + + + + This input stream is optional. + + + + + The MFT can perform in-place processing. + + + + + Defines flags for the IMFTransform::ProcessOutput method. + + + + + None + + + + + The MFT can still generate output from this stream without receiving any more input. + + + + + The format has changed on this output stream, or there is a new preferred format for this stream. + + + + + The MFT has removed this output stream. + + + + + There is no sample ready for this stream. + + + + + Indicates whether a Media Foundation transform (MFT) can produce output data. + + + + + None + + + + + There is a sample available for at least one output stream. + + + + + Describes an output stream on a Media Foundation transform (MFT). + + + + + No flags set + + + + + Each media sample (IMFSample interface) of output data from the MFT contains complete, unbroken units of data. + + + + + Each output sample contains exactly one unit of data, as defined for the MFT_OUTPUT_STREAM_WHOLE_SAMPLES flag. + + + + + All output samples are the same size. + + + + + The MFT can discard the output data from this output stream, if requested by the client. + + + + + This output stream is optional. + + + + + The MFT provides the output samples for this stream, either by allocating them internally or by operating directly on the input samples. + + + + + The MFT can either provide output samples for this stream or it can use samples that the client allocates. + + + + + The MFT does not require the client to process the output for this stream. + + + + + The MFT might remove this output stream during streaming. + + + + + Defines flags for processing output samples in a Media Foundation transform (MFT). + + + + + None + + + + + Do not produce output for streams in which the pSample member of the MFT_OUTPUT_DATA_BUFFER structure is NULL. + + + + + Regenerates the last output sample. + + + + + Process Output Status flags + + + + + None + + + + + The Media Foundation transform (MFT) has created one or more new output streams. + + + + + Defines flags for the setting or testing the media type on a Media Foundation transform (MFT). + + + + + None + + + + + Test the proposed media type, but do not set it. + + + + + Media Type helper class, simplifying working with IMFMediaType + (will probably change in the future, to inherit from an attributes class) + Currently does not release the COM object, so you must do that yourself + + + + + Wraps an existing IMFMediaType object + + The IMFMediaType object + + + + Creates and wraps a new IMFMediaType object + + + + + Creates and wraps a new IMFMediaType object based on a WaveFormat + + WaveFormat + + + + Tries to get a UINT32 value, returning a default value if it doesn't exist + + Attribute key + Default value + Value or default if key doesn't exist + + + + The Sample Rate (valid for audio media types) + + + + + The number of Channels (valid for audio media types) + + + + + The number of bits per sample (n.b. not always valid for compressed audio types) + + + + + The average bytes per second (valid for audio media types) + + + + + The Media Subtype. For audio, is a value from the AudioSubtypes class + + + + + The Major type, e.g. audio or video (from the MediaTypes class) + + + + + Access to the actual IMFMediaType object + Use to pass to MF APIs or Marshal.ReleaseComObject when you are finished with it + + + + + An abstract base class for simplifying working with Media Foundation Transforms + You need to override the method that actually creates and configures the transform + + + + + The Source Provider + + + + + The Output WaveFormat + + + + + Constructs a new MediaFoundationTransform wrapper + Will read one second at a time + + The source provider for input data to the transform + The desired output format + + + + To be implemented by overriding classes. Create the transform object, set up its input and output types, + and configure any custom properties in here + + An object implementing IMFTrasform + + + + Disposes this MediaFoundation transform + + + + + Disposes this Media Foundation Transform + + + + + Destructor + + + + + The output WaveFormat of this Media Foundation Transform + + + + + Reads data out of the source, passing it through the transform + + Output buffer + Offset within buffer to write to + Desired byte count + Number of bytes read + + + + Attempts to read from the transform + Some useful info here: + http://msdn.microsoft.com/en-gb/library/windows/desktop/aa965264%28v=vs.85%29.aspx#process_data + + + + + + Indicate that the source has been repositioned and completely drain out the transforms buffers + + + + + Represents a MIDI meta event with raw data + + + + + Raw data contained in the meta event + + + + + Creates a meta event with raw data + + + + + Creates a deep clone of this MIDI event. + + + + + Describes this meta event + + + + + + + + + + MIDI In Message Information + + + + + Create a new MIDI In Message EventArgs + + + + + + + The Raw message received from the MIDI In API + + + + + The raw message interpreted as a MidiEvent + + + + + The timestamp in milliseconds for this message + + + + + Represents a MIDI Channel AfterTouch Event. + + + + + Creates a new ChannelAfterTouchEvent from raw MIDI data + + A binary reader + + + + Creates a new Channel After-Touch Event + + Absolute time + Channel + After-touch pressure + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The aftertouch pressure value + + + + + Represents a MIDI control change event + + + + + Reads a control change event from a MIDI stream + + Binary reader on the MIDI stream + + + + Creates a control change event + + Time + MIDI Channel Number + The MIDI Controller + Controller value + + + + Describes this control change event + + A string describing this event + + + + + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + The controller number + + + + + The controller value + + + + + Represents a MIDI key signature event event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new Key signature event with the specified data + + + + + Creates a deep clone of this MIDI event. + + + + + Number of sharps or flats + + + + + Major or Minor key + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI meta event + + + + + Gets the type of this meta event + + + + + Empty constructor + + + + + Custom constructor for use by derived types, who will manage the data themselves + + Meta event type + Meta data length + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Reads a meta-event from a stream + + A binary reader based on the stream of MIDI data + A new MetaEvent object + + + + Describes this meta event + + + + + + + + + + MIDI MetaEvent Type + + + + Track sequence number + + + Text event + + + Copyright + + + Sequence track name + + + Track instrument name + + + Lyric + + + Marker + + + Cue point + + + Program (patch) name + + + Device (port) name + + + MIDI Channel (not official?) + + + MIDI Port (not official?) + + + End track + + + Set tempo + + + SMPTE offset + + + Time signature + + + Key signature + + + Sequencer specific + + + + MIDI command codes + + + + Note Off + + + Note On + + + Key After-touch + + + Control change + + + Patch change + + + Channel after-touch + + + Pitch wheel change + + + Sysex message + + + Eox (comes at end of a sysex message) + + + Timing clock (used when synchronization is required) + + + Start sequence + + + Continue sequence + + + Stop sequence + + + Auto-Sensing + + + Meta-event + + + + MidiController enumeration + http://www.midi.org/techspecs/midimessages.php#3 + + + + Bank Select (MSB) + + + Modulation (MSB) + + + Breath Controller + + + Foot controller (MSB) + + + Main volume + + + Pan + + + Expression + + + Bank Select LSB + + + Sustain + + + Portamento On/Off + + + Sostenuto On/Off + + + Soft Pedal On/Off + + + Legato Footswitch + + + Reset all controllers + + + All notes off + + + + Represents an individual MIDI event + + + + The MIDI command code + + + + Creates a MidiEvent from a raw message received using + the MME MIDI In APIs + + The short MIDI message + A new MIDI Event + + + + Constructs a MidiEvent from a BinaryStream + + The binary stream of MIDI data + The previous MIDI event (pass null for first event) + A new MidiEvent + + + + Converts this MIDI event to a short message (32 bit integer) that + can be sent by the Windows MIDI out short message APIs + Cannot be implemented for all MIDI messages + + A short message + + + + Default constructor + + + + + Creates a MIDI event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + + + + Creates a deep clone of this MIDI event. + + + + + The MIDI Channel Number for this event (1-16) + + + + + The Delta time for this event + + + + + The absolute time for this event + + + + + The command code for this event + + + + + Whether this is a note off event + + + + + Whether this is a note on event + + + + + Determines if this is an end track event + + + + + Displays a summary of the MIDI event + + A string containing a brief description of this MIDI event + + + + Utility function that can read a variable length integer from a binary stream + + The binary stream + The integer read + + + + Writes a variable length integer to a binary stream + + Binary stream + The value to write + + + + Exports this MIDI event's data + Overriden in derived classes, but they should call this version + + Absolute time used to calculate delta. + Is updated ready for the next delta calculation + Stream to write to + + + + A helper class to manage collection of MIDI events + It has the ability to organise them in tracks + + + + + Creates a new Midi Event collection + + Initial file type + Delta Ticks Per Quarter Note + + + + The number of tracks + + + + + The absolute time that should be considered as time zero + Not directly used here, but useful for timeshifting applications + + + + + The number of ticks per quarter note + + + + + Gets events on a specified track + + Track number + The list of events + + + + Gets events on a specific track + + Track number + The list of events + + + + Adds a new track + + The new track event list + + + + Adds a new track + + Initial events to add to the new track + The new track event list + + + + Removes a track + + Track number to remove + + + + Clears all events + + + + + The MIDI file type + + + + + Adds an event to the appropriate track depending on file type + + The event to be added + The original (or desired) track number + When adding events in type 0 mode, the originalTrack parameter + is ignored. If in type 1 mode, it will use the original track number to + store the new events. If the original track was 0 and this is a channel based + event, it will create new tracks if necessary and put it on the track corresponding + to its channel number + + + + Sorts, removes empty tracks and adds end track markers + + + + + Gets an enumerator for the lists of track events + + + + + Gets an enumerator for the lists of track events + + + + + Utility class for comparing MidiEvent objects + + + + + Compares two MidiEvents + Sorts by time, with EndTrack always sorted to the end + + + + + Class able to read a MIDI file + + + + + Opens a MIDI file for reading + + Name of MIDI file + + + + MIDI File format + + + + + Opens a MIDI file for reading + + Name of MIDI file + If true will error on non-paired note events + + + + Opens a MIDI file stream for reading + + The input stream containing a MIDI file + If true will error on non-paired note events + + + + The collection of events in this MIDI file + + + + + Number of tracks in this MIDI file + + + + + Delta Ticks Per Quarter Note + + + + + Describes the MIDI file + + A string describing the MIDI file and its events + + + + Exports a MIDI file + + Filename to export to + Events to export + + + + Represents a MIDI in device + + + + + Called when a MIDI message is received + + + + + An invalid MIDI message + + + + + Gets the number of MIDI input devices available in the system + + + + + Opens a specified MIDI in device + + The device number + + + + Closes this MIDI in device + + + + + Closes this MIDI in device + + + + + Start the MIDI in device + + + + + Stop the MIDI in device + + + + + Reset the MIDI in device + + + + + Gets the MIDI in device info + + + + + Closes the MIDI out device + + True if called from Dispose + + + + Cleanup + + + + + MIDI In Device Capabilities + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name + + + + + Support - Reserved + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + MIM_OPEN + + + + + MIM_CLOSE + + + + + MIM_DATA + + + + + MIM_LONGDATA + + + + + MIM_ERROR + + + + + MIM_LONGERROR + + + + + MIM_MOREDATA + + + + + MOM_OPEN + + + + + MOM_CLOSE + + + + + MOM_DONE + + + + + Represents a MIDI message + + + + + Creates a new MIDI message + + Status + Data parameter 1 + Data parameter 2 + + + + Creates a new MIDI message from a raw message + + A packed MIDI message from an MMIO function + + + + Creates a Note On message + + Note number (0 to 127) + Volume (0 to 127) + MIDI channel (1 to 16) + A new MidiMessage object + + + + Creates a Note Off message + + Note number + Volume + MIDI channel (1-16) + A new MidiMessage object + + + + Creates a patch change message + + The patch number + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Creates a Control Change message + + The controller number to change + The value to set the controller to + The MIDI channel number (1-16) + A new MidiMessageObject + + + + Returns the raw MIDI message data + + + + + Represents a MIDI out device + + + + + Gets the number of MIDI devices available in the system + + + + + Gets the MIDI Out device info + + + + + Opens a specified MIDI out device + + The device number + + + + Closes this MIDI out device + + + + + Closes this MIDI out device + + + + + Gets or sets the volume for this MIDI out device + + + + + Resets the MIDI out device + + + + + Sends a MIDI out message + + Message + Parameter 1 + Parameter 2 + + + + Sends a MIDI message to the MIDI out device + + The message to send + + + + Closes the MIDI out device + + True if called from Dispose + + + + Send a long message, for example sysex. + + The bytes to send. + + + + Cleanup + + + + + class representing the capabilities of a MIDI out device + MIDIOUTCAPS: http://msdn.microsoft.com/en-us/library/dd798467%28VS.85%29.aspx + + + + + MIDICAPS_VOLUME + + + + + separate left-right volume control + MIDICAPS_LRVOLUME + + + + + MIDICAPS_CACHE + + + + + MIDICAPS_STREAM + driver supports midiStreamOut directly + + + + + Gets the manufacturer of this device + + + + + Gets the product identifier (manufacturer specific) + + + + + Gets the product name + + + + + Returns the number of supported voices + + + + + Gets the polyphony of the device + + + + + Returns true if the device supports all channels + + + + + Queries whether a particular channel is supported + + Channel number to test + True if the channel is supported + + + + Returns true if the device supports patch caching + + + + + Returns true if the device supports separate left and right volume + + + + + Returns true if the device supports MIDI stream out + + + + + Returns true if the device supports volume control + + + + + Returns the type of technology used by this MIDI out device + + + + + Represents the different types of technology used by a MIDI out device + + from mmsystem.h + + + The device is a MIDI port + + + The device is a MIDI synth + + + The device is a square wave synth + + + The device is an FM synth + + + The device is a MIDI mapper + + + The device is a WaveTable synth + + + The device is a software synth + + + + Represents a note MIDI event + + + + + Reads a NoteEvent from a stream of MIDI data + + Binary Reader for the stream + + + + Creates a MIDI Note Event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI command code + MIDI Note Number + MIDI Note Velocity + + + + + + + + + The MIDI note number + + + + + The note velocity + + + + + The note name + + + + + Describes the Note Event + + Note event as a string + + + + + + + + + Represents a MIDI note on event + + + + + Reads a new Note On event from a stream of MIDI data + + Binary reader on the MIDI data stream + + + + Creates a NoteOn event with specified parameters + + Absolute time of this event + MIDI channel number + MIDI note number + MIDI note velocity + MIDI note duration + + + + Creates a deep clone of this MIDI event. + + + + + The associated Note off event + + + + + Get or set the Note Number, updating the off event at the same time + + + + + Get or set the channel, updating the off event at the same time + + + + + The duration of this note + + + There must be a note off event + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI patch change event + + + + + Gets the default MIDI instrument names + + + + + Reads a new patch change event from a MIDI stream + + Binary reader for the MIDI stream + + + + Creates a new patch change event + + Time of the event + Channel number + Patch number + + + + The Patch Number + + + + + Describes this patch change event + + String describing the patch change event + + + + Gets as a short message for sending with the midiOutShortMsg API + + short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI pitch wheel change event + + + + + Reads a pitch wheel change event from a MIDI stream + + The MIDI stream to read from + + + + Creates a new pitch wheel change event + + Absolute event time + Channel + Pitch wheel value + + + + Describes this pitch wheel change event + + String describing this pitch wheel change event + + + + Pitch Wheel Value 0 is minimum, 0x2000 (8192) is default, 0x3FFF (16383) is maximum + + + + + Gets a short message + + Integer to sent as short message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a Sequencer Specific event + + + + + Reads a new sequencer specific event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new Sequencer Specific event + + The sequencer specific data + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this sequencer specific + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Creates a new time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a deep clone of this MIDI event. + + + + + Hours + + + + + Minutes + + + + + Seconds + + + + + Frames + + + + + SubFrames + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI sysex message + + + + + Reads a sysex message from a MIDI stream + + Stream of MIDI data + a new sysex message + + + + Creates a deep clone of this MIDI event. + + + + + Describes this sysex message + + A string describing the sysex message + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI tempo event + + + + + Reads a new tempo event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a new tempo event with specified settings + + Microseconds per quarter note + Absolute time + + + + Creates a deep clone of this MIDI event. + + + + + Describes this tempo event + + String describing the tempo event + + + + Microseconds per quarter note + + + + + Tempo + + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI text event + + + + + Reads a new text event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TextEvent + + The text in this type + MetaEvent type (must be one that is + associated with text data) + Absolute time of this event + + + + Creates a deep clone of this MIDI event. + + + + + The contents of this text event + + + + + Describes this MIDI text event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI time signature event + + + + + Reads a new time signature event from a MIDI stream + + The MIDI stream + The data length + + + + Creates a new TimeSignatureEvent + + Time at which to create this event + Numerator + Denominator + Ticks in Metronome Click + No of 32nd Notes in Quarter Click + + + + Creates a deep clone of this MIDI event. + + + + + Numerator (number of beats in a bar) + + + + + Denominator (Beat unit), + 1 means 2, 2 means 4 (crochet), 3 means 8 (quaver), 4 means 16 and 5 means 32 + + + + + Ticks in a metronome click + + + + + Number of 32nd notes in a quarter note + + + + + The time signature + + + + + Describes this time signature event + + A string describing this event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Represents a MIDI track sequence number event event + + + + + Creates a new track sequence number event + + + + + Reads a new track sequence number event from a MIDI stream + + The MIDI stream + the data length + + + + Creates a deep clone of this MIDI event. + + + + + Describes this event + + String describing the event + + + + Calls base class export first, then exports the data + specific to this event + MidiEvent.Export + + + + + Chunk Identifier helpers + + + + + Chunk identifier to Int32 (replaces mmioStringToFOURCC) + + four character chunk identifier + Chunk identifier as int 32 + + + + Allows us to add descriptions to interop members + + + + + The description + + + + + Field description + + + + + String representation + + + + + + these will become extension methods once we move to .NET 3.5 + + + + + Checks if the buffer passed in is entirely full of nulls + + + + + Converts to a string containing the buffer described in hex + + + + + Decodes the buffer using the specified encoding, stopping at the first null + + + + + Concatenates the given arrays into a single array. + + The arrays to concatenate + The concatenated resulting array. + + + + Helper to get descriptions + + + + + Describes the Guid by looking for a FieldDescription attribute on the specified class + + + + + Support for Marshal Methods in both UWP and .NET 3.5 + + + + + SizeOf a structure + + + + + Offset of a field in a structure + + + + + Pointer to Structure + + + + + WavePosition extension methods + + + + + Get Position as timespan + + + + + Methods for converting between IEEE 80-bit extended double precision + and standard C# double precision. + + + + + Converts a C# double precision number to an 80-bit + IEEE extended double precision number (occupying 10 bytes). + + The double precision number to convert to IEEE extended. + An array of 10 bytes containing the IEEE extended number. + + + + Converts an IEEE 80-bit extended precision number to a + C# double precision number. + + The 80-bit IEEE extended number (as an array of 10 bytes). + A C# double precision number that is a close representation of the IEEE extended number. + + + + General purpose native methods for internal NAudio use + + + + + Helper methods for working with audio buffers + + + + + Ensures the buffer is big enough + + + + + + + + Ensures the buffer is big enough + + + + + + + + An encoding for use with file types that have one byte per character + + + + + The one and only instance of this class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A very basic circular buffer implementation + + + + + Create a new circular buffer + + Max buffer size in bytes + + + + Write data to the buffer + + Data to write + Offset into data + Number of bytes to write + number of bytes written + + + + Read from the buffer + + Buffer to read into + Offset into read buffer + Bytes to read + Number of bytes actually read + + + + Maximum length of this circular buffer + + + + + Number of bytes currently stored in the circular buffer + + + + + Resets the buffer + + + + + Advances the buffer, discarding bytes + + Bytes to advance + + + + A util class for conversions + + + + + linear to dB conversion + + linear value + decibel value + + + + dB to linear conversion + + decibel value + linear value + + + + HResult + + + + + S_OK + + + + + S_FALSE + + + + + E_INVALIDARG (from winerror.h) + + + + + MAKE_HRESULT macro + + + + + Helper to deal with the fact that in Win Store apps, + the HResult property name has changed + + COM Exception + The HResult + + + + Pass-through stream that ignores Dispose + Useful for dealing with MemoryStreams that you want to re-use + + + + + The source stream all other methods fall through to + + + + + If true the Dispose will be ignored, if false, will pass through to the SourceStream + Set to true by default + + + + + Creates a new IgnoreDisposeStream + + The source stream + + + + Can Read + + + + + Can Seek + + + + + Can write to the underlying stream + + + + + Flushes the underlying stream + + + + + Gets the length of the underlying stream + + + + + Gets or sets the position of the underlying stream + + + + + Reads from the underlying stream + + + + + Seeks on the underlying stream + + + + + Sets the length of the underlying stream + + + + + Writes to the underlying stream + + + + + Dispose - by default (IgnoreDispose = true) will do nothing, + leaving the underlying stream undisposed + + + + + In-place and stable implementation of MergeSort + + + + + MergeSort a list of comparable items + + + + + MergeSort a list + + + + + A thread-safe Progress Log Control + + + + + Creates a new progress log control + + + + + The contents of the log as text + + + + + Log a message + + + + + Clear the log + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ASIO 64 bit value + Unfortunately the ASIO API was implemented it before compiler supported consistently 64 bit + integer types. By using the structure the data layout on a little-endian system like the + Intel x86 architecture will result in a "non native" storage of the 64 bit data. The most + significant 32 bit are stored first in memory, the least significant bits are stored in the + higher memory space. However each 32 bit is stored in the native little-endian fashion + + + + + most significant bits (Bits 32..63) + + + + + least significant bits (Bits 0..31) + + + + + ASIO Callbacks + + + + + ASIO Buffer Switch Callback + + + + + ASIO Sample Rate Did Change Callback + + + + + ASIO Message Callback + + + + + ASIO Buffer Switch Time Info Callback + + + + + Buffer switch callback + void (*bufferSwitch) (long doubleBufferIndex, AsioBool directProcess); + + + + + Sample Rate Changed callback + void (*sampleRateDidChange) (AsioSampleRate sRate); + + + + + ASIO Message callback + long (*asioMessage) (long selector, long value, void* message, double* opt); + + + + + ASIO Buffer Switch Time Info Callback + AsioTime* (*bufferSwitchTimeInfo) (AsioTime* params, long doubleBufferIndex, AsioBool directProcess); + + + + + ASIO Channel Info + + + + + on input, channel index + + + + + Is Input + + + + + Is Active + + + + + Channel Info + + + + + ASIO Sample Type + + + + + Name + + + + + ASIODriverCapability holds all the information from the AsioDriver. + Use ASIODriverExt to get the Capabilities + + + + + Drive Name + + + + + Number of Input Channels + + + + + Number of Output Channels + + + + + Input Latency + + + + + Output Latency + + + + + Buffer Minimum Size + + + + + Buffer Maximum Size + + + + + Buffer Preferred Size + + + + + Buffer Granularity + + + + + Sample Rate + + + + + Input Channel Info + + + + + Output Channel Info + + + + + ASIO Error Codes + + + + + This value will be returned whenever the call succeeded + + + + + unique success return value for ASIOFuture calls + + + + + hardware input or output is not present or available + + + + + hardware is malfunctioning (can be returned by any ASIO function) + + + + + input parameter invalid + + + + + hardware is in a bad mode or used in a bad mode + + + + + hardware is not running when sample position is inquired + + + + + sample clock or rate cannot be determined or is not present + + + + + not enough memory for completing the request + + + + + ASIO Message Selector + + + + + selector in <value>, returns 1L if supported, + + + + + returns engine (host) asio implementation version, + + + + + request driver reset. if accepted, this + + + + + not yet supported, will currently always return 0L. + + + + + the driver went out of sync, such that + + + + + the drivers latencies have changed. The engine + + + + + if host returns true here, it will expect the + + + + + supports timecode + + + + + unused - value: number of commands, message points to mmc commands + + + + + kAsioSupportsXXX return 1 if host supports this + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + unused and undefined + + + + + driver detected an overload + + + + + ASIO Sample Type + + + + + Int 16 MSB + + + + + Int 24 MSB (used for 20 bits as well) + + + + + Int 32 MSB + + + + + IEEE 754 32 bit float + + + + + IEEE 754 64 bit double float + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + Int 16 LSB + + + + + Int 24 LSB + used for 20 bits as well + + + + + Int 32 LSB + + + + + IEEE 754 32 bit float, as found on Intel x86 architecture + + + + + IEEE 754 64 bit double float, as found on Intel x86 architecture + + + + + 32 bit data with 16 bit alignment + + + + + 32 bit data with 18 bit alignment + + + + + 32 bit data with 20 bit alignment + + + + + 32 bit data with 24 bit alignment + + + + + DSD 1 bit data, 8 samples per byte. First sample in Least significant bit. + + + + + DSD 1 bit data, 8 samples per byte. First sample in Most significant bit. + + + + + DSD 8 bit data, 1 sample per byte. No Endianness required. + + + + + Main AsioDriver Class. To use this class, you need to query first the GetAsioDriverNames() and + then use the GetAsioDriverByName to instantiate the correct AsioDriver. + This is the first AsioDriver binding fully implemented in C#! + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Gets the ASIO driver names installed. + + a list of driver names. Use this name to GetAsioDriverByName + + + + Instantiate a AsioDriver given its name. + + The name of the driver + an AsioDriver instance + + + + Instantiate the ASIO driver by GUID. + + The GUID. + an AsioDriver instance + + + + Inits the AsioDriver.. + + The sys handle. + + + + + Gets the name of the driver. + + + + + + Gets the driver version. + + + + + + Gets the error message. + + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Gets the number of channels. + + The num input channels. + The num output channels. + + + + Gets the latencies (n.b. does not throw an exception) + + The input latency. + The output latency. + + + + Gets the size of the buffer. + + Size of the min. + Size of the max. + Size of the preferred. + The granularity. + + + + Determines whether this instance can use the specified sample rate. + + The sample rate. + + true if this instance [can sample rate] the specified sample rate; otherwise, false. + + + + + Gets the sample rate. + + + + + + Sets the sample rate. + + The sample rate. + + + + Gets the clock sources. + + The clocks. + The num sources. + + + + Sets the clock source. + + The reference. + + + + Gets the sample position. + + The sample pos. + The time stamp. + + + + Gets the channel info. + + The channel number. + if set to true [true for input info]. + Channel Info + + + + Creates the buffers. + + The buffer infos. + The num channels. + Size of the buffer. + The callbacks. + + + + Disposes the buffers. + + + + + Controls the panel. + + + + + Futures the specified selector. + + The selector. + The opt. + + + + Notifies OutputReady to the AsioDriver. + + + + + + Releases this instance. + + + + + Handles the exception. Throws an exception based on the error. + + The error to check. + Method name + + + + Inits the vTable method from GUID. This is a tricky part of this class. + + The ASIO GUID. + + + + Internal VTable structure to store all the delegates to the C++ COM method. + + + + + Callback used by the AsioDriverExt to get wave data + + + + + AsioDriverExt is a simplified version of the AsioDriver. It provides an easier + way to access the capabilities of the Driver and implement the callbacks necessary + for feeding the driver. + Implementation inspired from Rob Philpot's with a managed C++ ASIO wrapper BlueWave.Interop.Asio + http://www.codeproject.com/KB/mcpp/Asio.Net.aspx + + Contributor: Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Initializes a new instance of the class based on an already + instantiated AsioDriver instance. + + A AsioDriver already instantiated. + + + + Allows adjustment of which is the first output channel we write to + + Output Channel offset + Input Channel offset + + + + Gets the driver used. + + The ASIOdriver. + + + + Starts playing the buffers. + + + + + Stops playing the buffers. + + + + + Shows the control panel. + + + + + Releases this instance. + + + + + Determines whether the specified sample rate is supported. + + The sample rate. + + true if [is sample rate supported]; otherwise, false. + + + + + Sets the sample rate. + + The sample rate. + + + + Gets or sets the fill buffer callback. + + The fill buffer callback. + + + + Gets the capabilities of the AsioDriver. + + The capabilities. + + + + Creates the buffers for playing. + + The number of outputs channels. + The number of input channel. + if set to true [use max buffer size] else use Prefered size + + + + Builds the capabilities internally. + + + + + Callback called by the AsioDriver on fill buffer demand. Redirect call to external callback. + + Index of the double buffer. + if set to true [direct process]. + + + + Callback called by the AsioDriver on event "Samples rate changed". + + The sample rate. + + + + Asio message call back. + + The selector. + The value. + The message. + The opt. + + + + + Buffers switch time info call back. + + The asio time param. + Index of the double buffer. + if set to true [direct process]. + + + + + This class stores convertors for different interleaved WaveFormat to ASIOSampleType separate channel + format. + + + + + Selects the sample convertor based on the input WaveFormat and the output ASIOSampleTtype. + + The wave format. + The type. + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Optimized convertor for 2 channels SHORT + + + + + Generic convertor for SHORT + + + + + Optimized convertor for 2 channels FLOAT + + + + + Generic convertor SHORT + + + + + Generic converter 24 LSB + + + + + Generic convertor for float + + + + + ASIO common Exception. + + + + + Gets the name of the error. + + The error. + the name of the error + + + + Flags for use with acmDriverAdd + + + + + ACM_DRIVERADDF_LOCAL + + + + + ACM_DRIVERADDF_GLOBAL + + + + + ACM_DRIVERADDF_FUNCTION + + + + + ACM_DRIVERADDF_NOTIFYHWND + + + + + Represents an installed ACM Driver + + + + + Helper function to determine whether a particular codec is installed + + The short name of the function + Whether the codec is installed + + + + Attempts to add a new ACM driver from a file + + Full path of the .acm or dll file containing the driver + Handle to the driver + + + + Removes a driver previously added using AddLocalDriver + + Local driver to remove + + + + Show Format Choose Dialog + + Owner window handle, can be null + Window title + Enumeration flags. None to get everything + Enumeration format. Only needed with certain enumeration flags + The selected format + Textual description of the selected format + Textual description of the selected format tag + True if a format was selected + + + + Gets the maximum size needed to store a WaveFormat for ACM interop functions + + + + + Finds a Driver by its short name + + Short Name + The driver, or null if not found + + + + Gets a list of the ACM Drivers installed + + + + + The callback for acmDriverEnum + + + + + Creates a new ACM Driver object + + Driver handle + + + + The short name of this driver + + + + + The full name of this driver + + + + + The driver ID + + + + + ToString + + + + + The list of FormatTags for this ACM Driver + + + + + Gets all the supported formats for a given format tag + + Format tag + Supported formats + + + + Opens this driver + + + + + Closes this driver + + + + + Dispose + + + + + Interop structure for ACM driver details (ACMDRIVERDETAILS) + http://msdn.microsoft.com/en-us/library/dd742889%28VS.85%29.aspx + + + + + DWORD cbStruct + + + + + FOURCC fccType + + + + + FOURCC fccComp + + + + + WORD wMid; + + + + + WORD wPid + + + + + DWORD vdwACM + + + + + DWORD vdwDriver + + + + + DWORD fdwSupport; + + + + + DWORD cFormatTags + + + + + DWORD cFilterTags + + + + + HICON hicon + + + + + TCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; + + + + + TCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; + + + + + TCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; + + + + + TCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; + + + + + TCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; + + + + + ACMDRIVERDETAILS_SHORTNAME_CHARS + + + + + ACMDRIVERDETAILS_LONGNAME_CHARS + + + + + ACMDRIVERDETAILS_COPYRIGHT_CHARS + + + + + ACMDRIVERDETAILS_LICENSING_CHARS + + + + + ACMDRIVERDETAILS_FEATURES_CHARS + + + + + Flags indicating what support a particular ACM driver has + + + + ACMDRIVERDETAILS_SUPPORTF_CODEC - Codec + + + ACMDRIVERDETAILS_SUPPORTF_CONVERTER - Converter + + + ACMDRIVERDETAILS_SUPPORTF_FILTER - Filter + + + ACMDRIVERDETAILS_SUPPORTF_HARDWARE - Hardware + + + ACMDRIVERDETAILS_SUPPORTF_ASYNC - Async + + + ACMDRIVERDETAILS_SUPPORTF_LOCAL - Local + + + ACMDRIVERDETAILS_SUPPORTF_DISABLED - Disabled + + + + ACM_DRIVERENUMF_NOLOCAL, Only global drivers should be included in the enumeration + + + + + ACM_DRIVERENUMF_DISABLED, Disabled ACM drivers should be included in the enumeration + + + + + ACM Format + + + + + Format Index + + + + + Format Tag + + + + + Support Flags + + + + + WaveFormat + + + + + WaveFormat Size + + + + + Format Description + + + + + ACMFORMATCHOOSE + http://msdn.microsoft.com/en-us/library/dd742911%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD fdwStyle; + + + + + HWND hwndOwner; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + LPCTSTR pszTitle; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + LPTSTR pszName; + n.b. can be written into + + + + + DWORD cchName + Should be at least 128 unless name is zero + + + + + DWORD fdwEnum; + + + + + LPWAVEFORMATEX pwfxEnum; + + + + + HINSTANCE hInstance; + + + + + LPCTSTR pszTemplateName; + + + + + LPARAM lCustData; + + + + + ACMFORMATCHOOSEHOOKPROC pfnHook; + + + + + None + + + + + ACMFORMATCHOOSE_STYLEF_SHOWHELP + + + + + ACMFORMATCHOOSE_STYLEF_ENABLEHOOK + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE + + + + + ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE + + + + + ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT + + + + + ACMFORMATCHOOSE_STYLEF_CONTEXTHELP + + + + + ACMFORMATDETAILS + http://msdn.microsoft.com/en-us/library/dd742913%28VS.85%29.aspx + + + + + DWORD cbStruct; + + + + + DWORD dwFormatIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD fdwSupport; + + + + + LPWAVEFORMATEX pwfx; + + + + + DWORD cbwfx; + + + + + TCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; + + + + + ACMFORMATDETAILS_FORMAT_CHARS + + + + + Format Enumeration Flags + + + + + None + + + + + ACM_FORMATENUMF_CONVERT + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will only enumerate destination formats that can be converted from the given pwfx format. + + + + + ACM_FORMATENUMF_HARDWARE + The enumerator should only enumerate formats that are supported as native input or output formats on one or more of the installed waveform-audio devices. This flag provides a way for an application to choose only formats native to an installed waveform-audio device. This flag must be used with one or both of the ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT flags. Specifying both ACM_FORMATENUMF_INPUT and ACM_FORMATENUMF_OUTPUT will enumerate only formats that can be opened for input or output. This is true regardless of whether this flag is specified. + + + + + ACM_FORMATENUMF_INPUT + Enumerator should enumerate only formats that are supported for input (recording). + + + + + ACM_FORMATENUMF_NCHANNELS + The nChannels member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_NSAMPLESPERSEC + The nSamplesPerSec member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_OUTPUT + Enumerator should enumerate only formats that are supported for output (playback). + + + + + ACM_FORMATENUMF_SUGGEST + The WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate all suggested destination formats for the given pwfx format. This mechanism can be used instead of the acmFormatSuggest function to allow an application to choose the best suggested format for conversion. The dwFormatIndex member will always be set to zero on return. + + + + + ACM_FORMATENUMF_WBITSPERSAMPLE + The wBitsPerSample member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. + + + + + ACM_FORMATENUMF_WFORMATTAG + The wFormatTag member of the WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure is valid. The enumerator will enumerate only a format that conforms to this attribute. The dwFormatTag member of the ACMFORMATDETAILS structure must be equal to the wFormatTag member. + + + + + ACM_FORMATSUGGESTF_WFORMATTAG + + + + + ACM_FORMATSUGGESTF_NCHANNELS + + + + + ACM_FORMATSUGGESTF_NSAMPLESPERSEC + + + + + ACM_FORMATSUGGESTF_WBITSPERSAMPLE + + + + + ACM_FORMATSUGGESTF_TYPEMASK + + + + + ACM Format Tag + + + + + Format Tag Index + + + + + Format Tag + + + + + Format Size + + + + + Support Flags + + + + + Standard Formats Count + + + + + Format Description + + + + + DWORD cbStruct; + + + + + DWORD dwFormatTagIndex; + + + + + DWORD dwFormatTag; + + + + + DWORD cbFormatSize; + + + + + DWORD fdwSupport; + + + + + DWORD cStandardFormats; + + + + + TCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; + + + + + ACMFORMATTAGDETAILS_FORMATTAG_CHARS + + + + + Interop definitions for Windows ACM (Audio Compression Manager) API + + + + + http://msdn.microsoft.com/en-us/library/dd742910%28VS.85%29.aspx + UINT ACMFORMATCHOOSEHOOKPROC acmFormatChooseHookProc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + + + + + http://msdn.microsoft.com/en-us/library/dd742916%28VS.85%29.aspx + MMRESULT acmFormatSuggest( + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + DWORD cbwfxDst, + DWORD fdwSuggest); + + + + + http://msdn.microsoft.com/en-us/library/dd742928%28VS.85%29.aspx + MMRESULT acmStreamOpen( + LPHACMSTREAM phas, + HACMDRIVER had, + LPWAVEFORMATEX pwfxSrc, + LPWAVEFORMATEX pwfxDst, + LPWAVEFILTER pwfltr, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + + + + + A version with pointers for troubleshooting + + + + + AcmStream encapsulates an Audio Compression Manager Stream + used to convert audio from one format to another + + + + + Creates a new ACM stream to convert one format to another. Note that + not all conversions can be done in one step + + The source audio format + The destination audio format + + + + Creates a new ACM stream to convert one format to another, using a + specified driver identified and wave filter + + the driver identifier + the source format + the wave filter + + + + Returns the number of output bytes for a given number of input bytes + + Number of input bytes + Number of output bytes + + + + Returns the number of source bytes for a given number of destination bytes + + Number of destination bytes + Number of source bytes + + + + Suggests an appropriate PCM format that the compressed format can be converted + to in one step + + The compressed format + The PCM format + + + + Returns the Source Buffer. Fill this with data prior to calling convert + + + + + Returns the Destination buffer. This will contain the converted data + after a successful call to Convert + + + + + Report that we have repositioned in the source stream + + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of source bytes actually converted + The number of converted bytes in the DestinationBuffer + + + + Converts the contents of the SourceBuffer into the DestinationBuffer + + The number of bytes in the SourceBuffer + that need to be converted + The number of converted bytes in the DestinationBuffer + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + Frees resources associated with this ACM Stream + + + + + ACMSTREAMHEADER_STATUSF_DONE + + + + + ACMSTREAMHEADER_STATUSF_PREPARED + + + + + ACMSTREAMHEADER_STATUSF_INQUEUE + + + + + Interop structure for ACM stream headers. + ACMSTREAMHEADER + http://msdn.microsoft.com/en-us/library/dd742926%28VS.85%29.aspx + + + + + ACM_STREAMOPENF_QUERY, ACM will be queried to determine whether it supports the given conversion. A conversion stream will not be opened, and no handle will be returned in the phas parameter. + + + + + ACM_STREAMOPENF_ASYNC, Stream conversion should be performed asynchronously. If this flag is specified, the application can use a callback function to be notified when the conversion stream is opened and closed and after each buffer is converted. In addition to using a callback function, an application can examine the fdwStatus member of the ACMSTREAMHEADER structure for the ACMSTREAMHEADER_STATUSF_DONE flag. + + + + + ACM_STREAMOPENF_NONREALTIME, ACM will not consider time constraints when converting the data. By default, the driver will attempt to convert the data in real time. For some formats, specifying this flag might improve the audio quality or other characteristics. + + + + + CALLBACK_TYPEMASK, callback type mask + + + + + CALLBACK_NULL, no callback + + + + + CALLBACK_WINDOW, dwCallback is a HWND + + + + + CALLBACK_TASK, dwCallback is a HTASK + + + + + CALLBACK_FUNCTION, dwCallback is a FARPROC + + + + + CALLBACK_THREAD, thread ID replaces 16 bit task + + + + + CALLBACK_EVENT, dwCallback is an EVENT Handle + + + + + ACM_STREAMSIZEF_SOURCE + + + + + ACM_STREAMSIZEF_DESTINATION + + + + + Summary description for WaveFilter. + + + + + cbStruct + + + + + dwFilterTag + + + + + fdwFilter + + + + + reserved + + + + + ADSR sample provider allowing you to specify attack, decay, sustain and release values + + + + + Creates a new AdsrSampleProvider with default values + + + + + Attack time in seconds + + + + + Release time in seconds + + + + + Reads audio from this sample provider + + + + + Enters the Release phase + + + + + The output WaveFormat + + + + + Sample Provider to concatenate multiple sample providers together + + + + + Creates a new ConcatenatingSampleProvider + + The source providers to play one after the other. Must all share the same sample rate and channel count + + + + The WaveFormat of this Sample Provider + + + + + Read Samples from this sample provider + + + + + Sample Provider to allow fading in and out + + + + + Creates a new FadeInOutSampleProvider + + The source stream with the audio to be faded in or out + If true, we start faded out + + + + Requests that a fade-in begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Requests that a fade-out begins (will start on the next call to Read) + + Duration of fade in milliseconds + + + + Reads samples from this sample provider + + Buffer to read into + Offset within buffer to write to + Number of samples desired + Number of samples read + + + + WaveFormat of this SampleProvider + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing sample provider, allowing re-patching of input channels to different + output channels + + Input sample providers. Must all be of the same sample rate, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads samples from this sample provider + + Buffer to be filled with sample data + Offset into buffer to start writing to, usually 0 + Number of samples required + Number of samples read + + + + The output WaveFormat for this SampleProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Allows you to: + 1. insert a pre-delay of silence before the source begins + 2. skip over a certain amount of the beginning of the source + 3. only play a set amount from the source + 4. insert silence at the end after the source is complete + + + + + Number of samples of silence to insert before playing source + + + + + Amount of silence to insert before playing + + + + + Number of samples in source to discard + + + + + Amount of audio to skip over from the source before beginning playback + + + + + Number of samples to read from source (if 0, then read it all) + + + + + Amount of audio to take from the source (TimeSpan.Zero means play to end) + + + + + Number of samples of silence to insert after playing source + + + + + Amount of silence to insert after playing source + + + + + Creates a new instance of offsetSampleProvider + + The Source Sample Provider to read from + + + + The WaveFormat of this SampleProvider + + + + + Reads from this sample provider + + Sample buffer + Offset within sample buffer to read to + Number of samples required + Number of samples read + + + + Converts an IWaveProvider containing 32 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm32BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Utility class for converting to SampleProvider + + + + + Helper function to go from IWaveProvider to a SampleProvider + Must already be PCM or IEEE float + + The WaveProvider to convert + A sample provider + + + + Converts a sample provider to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts a sample provider to 24 bit PCM, optionally clipping and adjusting volume along the way + + + + + Converts from an ISampleProvider (IEEE float) to a 16 bit PCM IWaveProvider. + Number of channels and sample rate remain unchanged. + + The input source provider + + + + Reads bytes from this wave stream, clipping if necessary + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + The Format of this IWaveProvider + + + + + + Volume of this channel. 1.0 = full scale, 0.0 to mute + + + + + Signal Generator + Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep. + + + Posibility to change ISampleProvider + Example : + --------- + WaveOut _waveOutGene = new WaveOut(); + WaveGenerator wg = new SignalGenerator(); + wg.Type = ... + wg.Frequency = ... + wg ... + _waveOutGene.Init(wg); + _waveOutGene.Play(); + + + + + Initializes a new instance for the Generator (Default :: 44.1Khz, 2 channels, Sinus, Frequency = 440, Gain = 1) + + + + + Initializes a new instance for the Generator (UserDef SampleRate & Channels) + + Desired sample rate + Number of channels + + + + The waveformat of this WaveProvider (same as the source) + + + + + Frequency for the Generator. (20.0 - 20000.0 Hz) + Sin, Square, Triangle, SawTooth, Sweep (Start Frequency). + + + + + Return Log of Frequency Start (Read only) + + + + + End Frequency for the Sweep Generator. (Start Frequency in Frequency) + + + + + Return Log of Frequency End (Read only) + + + + + Gain for the Generator. (0.0 to 1.0) + + + + + Channel PhaseReverse + + + + + Type of Generator. + + + + + Length Seconds for the Sweep Generator. + + + + + Reads from this provider. + + + + + Private :: Random for WhiteNoise & Pink Noise (Value form -1 to 1) + + Random value from -1 to +1 + + + + Signal Generator type + + + + + Pink noise + + + + + White noise + + + + + Sweep + + + + + Sine wave + + + + + Square wave + + + + + Triangle Wave + + + + + Sawtooth wave + + + + + Author: Freefall + Date: 05.08.16 + Based on: the port of Stephan M. Bernsee´s pitch shifting class + Port site: https://sites.google.com/site/mikescoderama/pitch-shifting + Test application and github site: https://github.com/Freefall63/NAudio-Pitchshifter + + NOTE: I strongly advice to add a Limiter for post-processing. + For my needs the FastAttackCompressor1175 provides acceptable results: + https://github.com/Jiyuu/SkypeFX/blob/master/JSNet/FastAttackCompressor1175.cs + + UPDATE: Added a simple Limiter based on the pydirac implementation. + https://github.com/echonest/remix/blob/master/external/pydirac225/source/Dirac_LE.cpp + + + + + + Creates a new SMB Pitch Shifting Sample Provider with default settings + + Source provider + + + + Creates a new SMB Pitch Shifting Sample Provider with custom settings + + Source provider + FFT Size (any power of two <= 4096: 4096, 2048, 1024, 512, ...) + Oversampling (number of overlapping windows) + Initial pitch (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + Read from this sample provider + + + + + WaveFormat + + + + + Pitch Factor (0.5f = octave down, 1.0f = normal, 2.0f = octave up) + + + + + Takes a stereo input and turns it to mono + + + + + Creates a new mono ISampleProvider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this SampleProvider + + + + + Helper class turning an already 64 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Fully managed resampling sample provider, based on the WDL Resampler + + + + + Constructs a new resampler + + Source to resample + Desired output sample rate + + + + Reads from this sample provider + + + + + Output WaveFormat + + + + + Sample provider interface to make WaveChannel32 extensible + Still a bit ugly, hence internal at the moment - and might even make these into + bit depth converting WaveProviders + + + + + A sample provider mixer, allowing inputs to be added and removed + + + + + Creates a new MixingSampleProvider, with no inputs, but a specified WaveFormat + + The WaveFormat of this mixer. All inputs must be in this format + + + + Creates a new MixingSampleProvider, based on the given inputs + + Mixer inputs - must all have the same waveformat, and must + all be of the same WaveFormat. There must be at least one input + + + + Returns the mixer inputs (read-only - use AddMixerInput to add an input + + + + + When set to true, the Read method always returns the number + of samples requested, even if there are no inputs, or if the + current inputs reach their end. Setting this to true effectively + makes this a never-ending sample provider, so take care if you plan + to write it out to a file. + + + + + Adds a WaveProvider as a Mixer input. + Must be PCM or IEEE float already + + IWaveProvider mixer input + + + + Adds a new mixer input + + Mixer input + + + + Raised when a mixer input has been removed because it has ended + + + + + Removes a mixer input + + Mixer input to remove + + + + Removes all mixer inputs + + + + + The output WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + SampleProvider event args + + + + + Constructs a new SampleProviderEventArgs + + + + + The Sample Provider + + + + + Converts a mono sample provider to stereo, with a customisable pan strategy + + + + + Initialises a new instance of the PanningSampleProvider + + Source sample provider, must be mono + + + + Pan value, must be between -1 (left) and 1 (right) + + + + + The pan strategy currently in use + + + + + The WaveFormat of this sample provider + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Pair of floating point values, representing samples or multipliers + + + + + Left value + + + + + Right value + + + + + Required Interface for a Panning Strategy + + + + + Gets the left and right multipliers for a given pan value + + Pan value from -1 to 1 + Left and right multipliers in a stereo sample pair + + + + Simplistic "balance" control - treating the mono input as if it was stereo + In the centre, both channels full volume. Opposite channel decays linearly + as balance is turned to to one side + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Square Root Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Sinus Pan, thanks to Yuval Naveh + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Linear Pan + + + + + Gets the left and right channel multipliers for this pan value + + Pan value, between -1 and 1 + Left and right multipliers + + + + Simple SampleProvider that passes through audio unchanged and raises + an event every n samples with the maximum sample value from the period + for metering purposes + + + + + Number of Samples per notification + + + + + Raised periodically to inform the user of the max volume + + + + + Initialises a new instance of MeteringSampleProvider that raises 10 stream volume + events per second + + Source sample provider + + + + Initialises a new instance of MeteringSampleProvider + + source sampler provider + Number of samples between notifications + + + + The WaveFormat of this sample provider + + + + + Reads samples from this Sample Provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Event args for aggregated stream volume + + + + + Max sample values array (one for each channel) + + + + + Simple class that raises an event on every sample + + + + + Initializes a new instance of NotifyingSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Sample notifier + + + + + Very simple sample provider supporting adjustable gain + + + + + Initializes a new instance of VolumeSampleProvider + + Source Sample Provider + + + + WaveFormat + + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Helper base class for classes converting to ISampleProvider + + + + + Source Wave Provider + + + + + Source buffer (to avoid constantly creating small buffers during playback) + + + + + Initialises a new instance of SampleProviderConverterBase + + Source Wave provider + + + + Wave format of this wave provider + + + + + Reads samples from the source wave provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Ensure the source buffer exists and is big enough + + Bytes required + + + + Helper class for when you need to convert back to an IWaveProvider from + an ISampleProvider. Keeps it as IEEE float + + + + + Initializes a new instance of the WaveProviderFloatToWaveProvider class + + Source wave provider + + + + Reads from this provider + + + + + The waveformat of this WaveProvider (same as the source) + + + + + No nonsense mono to stereo provider, no volume adjustment, + just copies input to left and right. + + + + + Initializes a new instance of MonoToStereoSampleProvider + + Source sample provider + + + + WaveFormat of this provider + + + + + Reads samples from this provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Multiplier for left channel (default is 1.0) + + + + + Multiplier for right channel (default is 1.0) + + + + + Helper class turning an already 32 bit floating point IWaveProvider + into an ISampleProvider - hopefully not needed for most applications + + + + + Initializes a new instance of the WaveToSampleProvider class + + Source wave provider, must be IEEE float + + + + Reads from this provider + + + + + Converts an IWaveProvider containing 16 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm16BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Samples required + Number of samples read + + + + Converts an IWaveProvider containing 24 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm24BitToSampleProvider + + Source Wave Provider + + + + Reads floating point samples from this sample provider + + sample buffer + offset within sample buffer to write to + number of samples required + number of samples provided + + + + Converts an IWaveProvider containing 8 bit PCM to an + ISampleProvider + + + + + Initialises a new instance of Pcm8BitToSampleProvider + + Source wave provider + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples to read + Number of samples read + + + + Utility class that takes an IWaveProvider input at any bit depth + and exposes it as an ISampleProvider. Can turn mono inputs into stereo, + and allows adjusting of volume + (The eventual successor to WaveChannel32) + This class also serves as an example of how you can link together several simple + Sample Providers to form a more useful class. + + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + + + + Initialises a new instance of SampleChannel + + Source wave provider, must be PCM or IEEE + force mono inputs to become stereo + + + + Reads samples from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples desired + Number of samples read + + + + The WaveFormat of this Sample Provider + + + + + Allows adjusting the volume, 1.0f = full volume + + + + + Raised periodically to inform the user of the max volume + (before the volume meter) + + + + + Useful extension methods to make switching between WaveAndSampleProvider easier + + + + + Converts a WaveProvider into a SampleProvider (only works for PCM) + + WaveProvider to convert + + + + + Allows sending a SampleProvider directly to an IWavePlayer without needing to convert + back to an IWaveProvider + + The WavePlayer + + + + + + Turns WaveFormatExtensible into a standard waveformat if possible + + Input wave format + A standard PCM or IEEE waveformat, or the original waveformat + + + + Converts a ISampleProvider to a IWaveProvider but still 32 bit float + + SampleProvider to convert + An IWaveProvider + + + + Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit + + SampleProvider to convert + A 16 bit IWaveProvider + + + + Concatenates one Sample Provider on the end of another + + The sample provider to play first + The sample provider to play next + A single sampleprovider to play one after the other + + + + Concatenates one Sample Provider on the end of another with silence inserted + + The sample provider to play first + Silence duration to insert between the two + The sample provider to play next + A single sample provider + + + + Skips over a specified amount of time (by consuming source stream) + + Source sample provider + Duration to skip over + A sample provider that skips over the specified amount of time + + + + Takes a specified amount of time from the source stream + + Source sample provider + Duration to take + A sample provider that reads up to the specified amount of time + + + + Converts a Stereo Sample Provider to mono, allowing mixing of channel volume + + Stereo Source Provider + Amount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + Amount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel) + A mono SampleProvider + + + + Converts a Mono ISampleProvider to stereo + + Mono Source Provider + Amount to mix to left channel (1.0 is full volume) + Amount to mix to right channel (1.0 is full volume) + + + + + Recording using waveIn api with event callbacks. + Use this for recording in non-gui applications + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + Channel Mode + + + + + Stereo + + + + + Joint Stereo + + + + + Dual Channel + + + + + Mono + + + + + An ID3v2 Tag + + + + + Reads an ID3v2 tag from a stream + + + + + Creates a new ID3v2 tag from a collection of key-value pairs. + + A collection of key-value pairs containing the tags to include in the ID3v2 tag. + A new ID3v2 tag + + + + Convert the frame size to a byte array. + + The frame body size. + + + + + Creates an ID3v2 frame for the given key-value pair. + + + + + + + + Gets the Id3v2 Header size. The size is encoded so that only 7 bits per byte are actually used. + + + + + + + Creates the Id3v2 tag header and returns is as a byte array. + + The Id3v2 frames that will be included in the file. This is used to calculate the ID3v2 tag size. + + + + + Creates the Id3v2 tag for the given key-value pairs and returns it in the a stream. + + + + + + + Raw data from this tag + + + + + Interface for MP3 frame by frame decoder + + + + + Decompress a single MP3 frame + + Frame to decompress + Output buffer + Offset within output buffer + Bytes written to output buffer + + + + Tell the decoder that we have repositioned + + + + + PCM format that we are converting into + + + + + Represents an MP3 Frame + + + + + Reads an MP3 frame from a stream + + input stream + A valid MP3 frame, or null if none found + + + Reads an MP3Frame from a stream + http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm has some good info + also see http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx + + A valid MP3 frame, or null if none found + + + + Constructs an MP3 frame + + + + + checks if the four bytes represent a valid header, + if they are, will parse the values into Mp3Frame + + + + + Sample rate of this frame + + + + + Frame length in bytes + + + + + Bit Rate + + + + + Raw frame data (includes header bytes) + + + + + MPEG Version + + + + + MPEG Layer + + + + + Channel Mode + + + + + The number of samples in this frame + + + + + The channel extension bits + + + + + The bitrate index (directly from the header) + + + + + Whether the Copyright bit is set + + + + + Whether a CRC is present + + + + + Not part of the MP3 frame itself - indicates where in the stream we found this header + + + + + MP3 Frame Decompressor using ACM + + + + + Creates a new ACM frame decompressor + + The MP3 source format + + + + Output format (PCM) + + + + + Decompresses a frame + + The MP3 frame + destination buffer + Offset within destination buffer + Bytes written into destination buffer + + + + Resets the MP3 Frame Decompressor after a reposition operation + + + + + Disposes of this MP3 frame decompressor + + + + + Finalizer ensuring that resources get released properly + + + + + MPEG Layer flags + + + + + Reserved + + + + + Layer 3 + + + + + Layer 2 + + + + + Layer 1 + + + + + MPEG Version Flags + + + + + Version 2.5 + + + + + Reserved + + + + + Version 2 + + + + + Version 1 + + + + + Represents a Xing VBR header + + + + + Load Xing Header + + Frame + Xing Header + + + + Sees if a frame contains a Xing header + + + + + Number of frames + + + + + Number of bytes + + + + + VBR Scale property + + + + + The MP3 frame + + + + ACM_METRIC_COUNT_DRIVERS + + + ACM_METRIC_COUNT_CODECS + + + ACM_METRIC_COUNT_CONVERTERS + + + ACM_METRIC_COUNT_FILTERS + + + ACM_METRIC_COUNT_DISABLED + + + ACM_METRIC_COUNT_HARDWARE + + + ACM_METRIC_COUNT_LOCAL_DRIVERS + + + ACM_METRIC_COUNT_LOCAL_CODECS + + + ACM_METRIC_COUNT_LOCAL_CONVERTERS + + + ACM_METRIC_COUNT_LOCAL_FILTERS + + + ACM_METRIC_COUNT_LOCAL_DISABLED + + + ACM_METRIC_HARDWARE_WAVE_INPUT + + + ACM_METRIC_HARDWARE_WAVE_OUTPUT + + + ACM_METRIC_MAX_SIZE_FORMAT + + + ACM_METRIC_MAX_SIZE_FILTER + + + ACM_METRIC_DRIVER_SUPPORT + + + ACM_METRIC_DRIVER_PRIORITY + + + + ACM_STREAMCONVERTF_BLOCKALIGN + + + + + ACM_STREAMCONVERTF_START + + + + + ACM_STREAMCONVERTF_END + + + + + WaveHeader interop structure (WAVEHDR) + http://msdn.microsoft.com/en-us/library/dd743837%28VS.85%29.aspx + + + + pointer to locked data buffer (lpData) + + + length of data buffer (dwBufferLength) + + + used for input only (dwBytesRecorded) + + + for client's use (dwUser) + + + assorted flags (dwFlags) + + + loop control counter (dwLoops) + + + PWaveHdr, reserved for driver (lpNext) + + + reserved for driver + + + + Wave Header Flags enumeration + + + + + WHDR_BEGINLOOP + This buffer is the first buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_DONE + Set by the device driver to indicate that it is finished with the buffer and is returning it to the application. + + + + + WHDR_ENDLOOP + This buffer is the last buffer in a loop. This flag is used only with output buffers. + + + + + WHDR_INQUEUE + Set by Windows to indicate that the buffer is queued for playback. + + + + + WHDR_PREPARED + Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function. + + + + + WASAPI Loopback Capture + based on a contribution from "Pygmy" - http://naudio.codeplex.com/discussions/203605 + + + + + Initialises a new instance of the WASAPI capture class + + + + + Initialises a new instance of the WASAPI capture class + + Capture device to use + + + + Gets the default audio loopback capture device + + The default audio loopback capture device + + + + Capturing wave format + + + + + Specify loopback + + + + + Allows recording using the Windows waveIn APIs + Events are raised as recorded buffers are made available + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + Prepares a Wave input device for recording + + + + + Creates a WaveIn device using the specified window handle for callbacks + + A valid window handle + + + + Prepares a Wave input device for recording + + + + + Returns the number of Wave In devices available in the system + + + + + Retrieves the capabilities of a waveIn device + + Device to test + The WaveIn device capabilities + + + + Milliseconds for the buffer. Recommended value is 100ms + + + + + Number of Buffers to use (usually 2 or 3) + + + + + The device number to use + + + + + Called when we get a new buffer of recorded data + + + + + Start recording + + + + + Stop recording + + + + + WaveFormat we are recording in + + + + + Dispose pattern + + + + + Microphone Level + + + + + Dispose method + + + + + WaveInCapabilities structure (based on WAVEINCAPS2 from mmsystem.h) + http://msdn.microsoft.com/en-us/library/ms713726(VS.85).aspx + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Number of channels supported + + + + + The product name + + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name from the registry if supported + + + + + Event Args for WaveInStream event + + + + + Creates new WaveInEventArgs + + + + + Buffer containing recorded data. Note that it might not be completely + full. + + + + + The number of recorded bytes in Buffer. + + + + + MME Wave function interop + + + + + CALLBACK_NULL + No callback + + + + + CALLBACK_FUNCTION + dwCallback is a FARPROC + + + + + CALLBACK_EVENT + dwCallback is an EVENT handle + + + + + CALLBACK_WINDOW + dwCallback is a HWND + + + + + CALLBACK_THREAD + callback is a thread ID + + + + + WIM_OPEN + + + + + WIM_CLOSE + + + + + WIM_DATA + + + + + WOM_CLOSE + + + + + WOM_DONE + + + + + WOM_OPEN + + + + + WaveOutCapabilities structure (based on WAVEOUTCAPS2 from mmsystem.h) + http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutcaps_str.asp + + + + + wMid + + + + + wPid + + + + + vDriverVersion + + + + + Product Name (szPname) + + + + + Supported formats (bit flags) dwFormats + + + + + Supported channels (1 for mono 2 for stereo) (wChannels) + Seems to be set to -1 on a lot of devices + + + + + wReserved1 + + + + + Optional functionality supported by the device + + + + + Number of channels supported + + + + + Whether playback control is supported + + + + + The product name + + + + + Checks to see if a given SupportedWaveFormat is supported + + The SupportedWaveFormat + true if supported + + + + The device name Guid (if provided) + + + + + The product name Guid (if provided) + + + + + The manufacturer guid (if provided) + + + + + Supported wave formats for WaveOutCapabilities + + + + + 11.025 kHz, Mono, 8-bit + + + + + 11.025 kHz, Stereo, 8-bit + + + + + 11.025 kHz, Mono, 16-bit + + + + + 11.025 kHz, Stereo, 16-bit + + + + + 22.05 kHz, Mono, 8-bit + + + + + 22.05 kHz, Stereo, 8-bit + + + + + 22.05 kHz, Mono, 16-bit + + + + + 22.05 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 44.1 kHz, Mono, 8-bit + + + + + 44.1 kHz, Stereo, 8-bit + + + + + 44.1 kHz, Mono, 16-bit + + + + + 44.1 kHz, Stereo, 16-bit + + + + + 48 kHz, Mono, 8-bit + + + + + 48 kHz, Stereo, 8-bit + + + + + 48 kHz, Mono, 16-bit + + + + + 48 kHz, Stereo, 16-bit + + + + + 96 kHz, Mono, 8-bit + + + + + 96 kHz, Stereo, 8-bit + + + + + 96 kHz, Mono, 16-bit + + + + + 96 kHz, Stereo, 16-bit + + + + + Flags indicating what features this WaveOut device supports + + + + supports pitch control (WAVECAPS_PITCH) + + + supports playback rate control (WAVECAPS_PLAYBACKRATE) + + + supports volume control (WAVECAPS_VOLUME) + + + supports separate left-right volume control (WAVECAPS_LRVOLUME) + + + (WAVECAPS_SYNC) + + + (WAVECAPS_SAMPLEACCURATE) + + + + GSM 610 + + + + + Creates a GSM 610 WaveFormat + For now hardcoded to 13kbps + + + + + Samples per block + + + + + Writes this structure to a BinaryWriter + + + + + IMA/DVI ADPCM Wave Format + Work in progress + + + + + parameterless constructor for Marshalling + + + + + Creates a new IMA / DVI ADPCM Wave Format + + Sample Rate + Number of channels + Bits Per Sample + + + + MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h + + + + + Wave format ID (wID) + + + + + Padding flags (fdwFlags) + + + + + Block Size (nBlockSize) + + + + + Frames per block (nFramesPerBlock) + + + + + Codec Delay (nCodecDelay) + + + + + Creates a new MP3 WaveFormat + + + + + Wave Format Padding Flags + + + + + MPEGLAYER3_FLAG_PADDING_ISO + + + + + MPEGLAYER3_FLAG_PADDING_ON + + + + + MPEGLAYER3_FLAG_PADDING_OFF + + + + + Wave Format ID + + + + MPEGLAYER3_ID_UNKNOWN + + + MPEGLAYER3_ID_MPEG + + + MPEGLAYER3_ID_CONSTANTFRAMESIZE + + + + DSP Group TrueSpeech + + + + + DSP Group TrueSpeech WaveFormat + + + + + Writes this structure to a BinaryWriter + + + + + Represents a Wave file format + + + + format type + + + number of channels + + + sample rate + + + for buffer estimation + + + block size of data + + + number of bits per sample of mono data + + + number of following bytes + + + + Creates a new PCM 44.1Khz stereo 16 bit format + + + + + Creates a new 16 bit wave format with the specified sample + rate and channel count + + Sample Rate + Number of channels + + + + Gets the size of a wave buffer equivalent to the latency in milliseconds. + + The milliseconds. + + + + + Creates a WaveFormat with custom members + + The encoding + Sample Rate + Number of channels + Average Bytes Per Second + Block Align + Bits Per Sample + + + + + Creates an A-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a Mu-law wave format + + Sample Rate + Number of Channels + Wave Format + + + + Creates a new PCM format with the specified sample rate, bit depth and channels + + + + + Creates a new 32 bit IEEE floating point wave format + + sample rate + number of channels + + + + Helper function to retrieve a WaveFormat structure from a pointer + + WaveFormat structure + + + + + Helper function to marshal WaveFormat to an IntPtr + + WaveFormat + IntPtr to WaveFormat structure (needs to be freed by callee) + + + + Reads in a WaveFormat (with extra data) from a fmt chunk (chunk identifier and + length should already have been read) + + Binary reader + Format chunk length + A WaveFormatExtraData + + + + Reads a new WaveFormat object from a stream + + A binary reader that wraps the stream + + + + Reports this WaveFormat as a string + + String describing the wave format + + + + Compares with another WaveFormat object + + Object to compare to + True if the objects are the same + + + + Provides a Hashcode for this WaveFormat + + A hashcode + + + + Returns the encoding type used + + + + + Writes this WaveFormat object to a stream + + the output stream + + + + Returns the number of channels (1=mono,2=stereo etc) + + + + + Returns the sample rate (samples per second) + + + + + Returns the average number of bytes used per second + + + + + Returns the block alignment + + + + + Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8) + Can be 0 for some codecs + + + + + Returns the number of extra bytes used by this waveformat. Often 0, + except for compressed formats which store extra data after the WAVEFORMATEX header + + + + + Microsoft ADPCM + See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm + + + + + Empty constructor needed for marshalling from a pointer + + + + + Samples per block + + + + + Number of coefficients + + + + + Coefficients + + + + + Microsoft ADPCM + + Sample Rate + Channels + + + + Serializes this wave format + + Binary writer + + + + String Description of this WaveFormat + + + + + Custom marshaller for WaveFormat structures + + + + + Gets the instance of this marshaller + + + + + + + Clean up managed data + + + + + Clean up native data + + + + + + Get native data size + + + + + Marshal managed to native + + + + + Marshal Native to Managed + + + + + Summary description for WaveFormatEncoding. + + + + WAVE_FORMAT_UNKNOWN, Microsoft Corporation + + + WAVE_FORMAT_PCM Microsoft Corporation + + + WAVE_FORMAT_ADPCM Microsoft Corporation + + + WAVE_FORMAT_IEEE_FLOAT Microsoft Corporation + + + WAVE_FORMAT_VSELP Compaq Computer Corp. + + + WAVE_FORMAT_IBM_CVSD IBM Corporation + + + WAVE_FORMAT_ALAW Microsoft Corporation + + + WAVE_FORMAT_MULAW Microsoft Corporation + + + WAVE_FORMAT_DTS Microsoft Corporation + + + WAVE_FORMAT_DRM Microsoft Corporation + + + WAVE_FORMAT_WMAVOICE9 + + + WAVE_FORMAT_OKI_ADPCM OKI + + + WAVE_FORMAT_DVI_ADPCM Intel Corporation + + + WAVE_FORMAT_IMA_ADPCM Intel Corporation + + + WAVE_FORMAT_MEDIASPACE_ADPCM Videologic + + + WAVE_FORMAT_SIERRA_ADPCM Sierra Semiconductor Corp + + + WAVE_FORMAT_G723_ADPCM Antex Electronics Corporation + + + WAVE_FORMAT_DIGISTD DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIFIX DSP Solutions, Inc. + + + WAVE_FORMAT_DIALOGIC_OKI_ADPCM Dialogic Corporation + + + WAVE_FORMAT_MEDIAVISION_ADPCM Media Vision, Inc. + + + WAVE_FORMAT_CU_CODEC Hewlett-Packard Company + + + WAVE_FORMAT_YAMAHA_ADPCM Yamaha Corporation of America + + + WAVE_FORMAT_SONARC Speech Compression + + + WAVE_FORMAT_DSPGROUP_TRUESPEECH DSP Group, Inc + + + WAVE_FORMAT_ECHOSC1 Echo Speech Corporation + + + WAVE_FORMAT_AUDIOFILE_AF36, Virtual Music, Inc. + + + WAVE_FORMAT_APTX Audio Processing Technology + + + WAVE_FORMAT_AUDIOFILE_AF10, Virtual Music, Inc. + + + WAVE_FORMAT_PROSODY_1612, Aculab plc + + + WAVE_FORMAT_LRC, Merging Technologies S.A. + + + WAVE_FORMAT_DOLBY_AC2, Dolby Laboratories + + + WAVE_FORMAT_GSM610, Microsoft Corporation + + + WAVE_FORMAT_MSNAUDIO, Microsoft Corporation + + + WAVE_FORMAT_ANTEX_ADPCME, Antex Electronics Corporation + + + WAVE_FORMAT_CONTROL_RES_VQLPC, Control Resources Limited + + + WAVE_FORMAT_DIGIREAL, DSP Solutions, Inc. + + + WAVE_FORMAT_DIGIADPCM, DSP Solutions, Inc. + + + WAVE_FORMAT_CONTROL_RES_CR10, Control Resources Limited + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_MPEG, Microsoft Corporation + + + + + + + + + WAVE_FORMAT_MPEGLAYER3, ISO/MPEG Layer3 Format Tag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WAVE_FORMAT_GSM + + + WAVE_FORMAT_G729 + + + WAVE_FORMAT_G723 + + + WAVE_FORMAT_ACELP + + + + WAVE_FORMAT_RAW_AAC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Media Audio, WAVE_FORMAT_WMAUDIO2, Microsoft Corporation + + + + + Windows Media Audio Professional WAVE_FORMAT_WMAUDIO3, Microsoft Corporation + + + + + Windows Media Audio Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS + + + + + Windows Media Audio Professional over SPDIF WAVE_FORMAT_WMASPDIF (0x0164) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Advanced Audio Coding (AAC) audio in Audio Data Transport Stream (ADTS) format. + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_ADTS_AAC. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral band replication (SBR) or parametric stereo (PS) tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + + Source wmCodec.h + + + + MPEG-4 audio transport stream with a synchronization layer (LOAS) and a multiplex layer (LATM). + The format block is a WAVEFORMATEX structure with wFormatTag equal to WAVE_FORMAT_MPEG_LOAS. + + + The WAVEFORMATEX structure specifies the core AAC-LC sample rate and number of channels, + prior to applying spectral SBR or PS tools, if present. + No additional data is required after the WAVEFORMATEX structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + NOKIA_MPEG_ADTS_AAC + Source wmCodec.h + + + NOKIA_MPEG_RAW_AAC + Source wmCodec.h + + + VODAFONE_MPEG_ADTS_AAC + Source wmCodec.h + + + VODAFONE_MPEG_RAW_AAC + Source wmCodec.h + + + + High-Efficiency Advanced Audio Coding (HE-AAC) stream. + The format block is an HEAACWAVEFORMAT structure. + + http://msdn.microsoft.com/en-us/library/dd317599%28VS.85%29.aspx + + + WAVE_FORMAT_DVM + + + WAVE_FORMAT_VORBIS1 "Og" Original stream compatible + + + WAVE_FORMAT_VORBIS2 "Pg" Have independent header + + + WAVE_FORMAT_VORBIS3 "Qg" Have no codebook header + + + WAVE_FORMAT_VORBIS1P "og" Original stream compatible + + + WAVE_FORMAT_VORBIS2P "pg" Have independent headere + + + WAVE_FORMAT_VORBIS3P "qg" Have no codebook header + + + WAVE_FORMAT_EXTENSIBLE + + + + + + + WaveFormatExtensible + http://www.microsoft.com/whdc/device/audio/multichaud.mspx + + + + + Parameterless constructor for marshalling + + + + + Creates a new WaveFormatExtensible for PCM or IEEE + + + + + WaveFormatExtensible for PCM or floating point can be awkward to work with + This creates a regular WaveFormat structure representing the same audio format + Returns the WaveFormat unchanged for non PCM or IEEE float + + + + + + SubFormat (may be one of AudioMediaSubtypes) + + + + + Serialize + + + + + + String representation + + + + + This class used for marshalling from unmanaged code + + + + + Allows the extra data to be read + + + + + parameterless constructor for marshalling + + + + + Reads this structure from a BinaryReader + + + + + Writes this structure to a BinaryWriter + + + + + The WMA wave format. + May not be much use because WMA codec is a DirectShow DMO not an ACM + + + + + Generic interface for wave recording + + + + + Recording WaveFormat + + + + + Start Recording + + + + + Stop Recording + + + + + Indicates recorded data is available + + + + + Indicates that all recorded data has now been received. + + + + + This class writes audio data to a .aif file on disk + + + + + Creates an Aiff file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Aiff File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + AiffFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new AiffFileWriter + + The filename to write to + The Wave Format of the output data + + + + The aiff file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this aiff file + + + + + Returns false: Cannot read from a AiffFileWriter + + + + + Returns true: Can write to a AiffFileWriter + + + + + Returns false: Cannot seek within a AiffFileWriter + + + + + Read is not supported for a AiffFileWriter + + + + + Seek is not supported for a AiffFileWriter + + + + + SetLength is not supported for AiffFileWriter + + + + + + Gets the Position in the AiffFile (i.e. number of bytes written so far) + + + + + Appends bytes to the AiffFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Aiff file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Aiff file + They will be converted to the appropriate bit depth depending on the WaveFormat of the AIF file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Aiff file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this AiffFileWriter + + + + + Raised when ASIO data has been recorded. + It is important to handle this as quickly as possible as it is in the buffer callback + + + + + Initialises a new instance of AsioAudioAvailableEventArgs + + Pointers to the ASIO buffers for each channel + Pointers to the ASIO buffers for each channel + Number of samples in each buffer + Audio format within each buffer + + + + Pointer to a buffer per input channel + + + + + Pointer to a buffer per output channel + Allows you to write directly to the output buffers + If you do so, set SamplesPerBuffer = true, + and make sure all buffers are written to with valid data + + + + + Set to true if you have written to the output buffers + If so, AsioOut will not read from its source + + + + + Number of samples in each buffer + + + + + Converts all the recorded audio into a buffer of 32 bit floating point samples, interleaved by channel + + The samples as 32 bit floating point, interleaved + + + + Audio format within each buffer + Most commonly this will be one of, Int32LSB, Int16LSB, Int24LSB or Float32LSB + + + + + Gets as interleaved samples, allocating a float array + + The samples as 32 bit floating point values + + + + ASIO Out Player. New implementation using an internal C# binding. + + This implementation is only supporting Short16Bit and Float32Bit formats and is optimized + for 2 outputs channels . + SampleRate is supported only if AsioDriver is supporting it + + This implementation is probably the first AsioDriver binding fully implemented in C#! + + Original Contributor: Mark Heath + New Contributor to C# binding : Alexandre Mutel - email: alexandre_mutel at yahoo.fr + + + + + Playback Stopped + + + + + When recording, fires whenever recorded audio is available + + + + + Initializes a new instance of the class with the first + available ASIO Driver. + + + + + Initializes a new instance of the class with the driver name. + + Name of the device. + + + + Opens an ASIO output device + + Device number (zero based) + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Dispose + + + + + Gets the names of the installed ASIO Driver. + + an array of driver names + + + + Determines whether ASIO is supported. + + + true if ASIO is supported; otherwise, false. + + + + + Inits the driver from the asio driver name. + + Name of the driver. + + + + Shows the control panel + + + + + Starts playback + + + + + Stops playback + + + + + Pauses playback + + + + + Initialises to play + + Source wave provider + + + + Initialises to play, with optional recording + + Source wave provider - set to null for record only + Number of channels to record + Specify sample rate here if only recording, ignored otherwise + + + + driver buffer update callback to fill the wave buffer. + + The input channels. + The output channels. + + + + Gets the latency (in ms) of the playback driver + + + + + Playback State + + + + + Driver Name + + + + + The number of output channels we are currently using for playback + (Must be less than or equal to DriverOutputChannelCount) + + + + + The number of input channels we are currently recording from + (Must be less than or equal to DriverInputChannelCount) + + + + + The maximum number of input channels this ASIO driver supports + + + + + The maximum number of output channels this ASIO driver supports + + + + + The number of samples per channel, per buffer. + + + + + By default the first channel on the input WaveProvider is sent to the first ASIO output. + This option sends it to the specified channel number. + Warning: make sure you don't set it higher than the number of available output channels - + the number of source channels. + n.b. Future NAudio may modify this + + + + + Input channel offset (used when recording), allowing you to choose to record from just one + specific input rather than them all + + + + + Sets the volume (1.0 is unity gain) + Not supported for ASIO Out. Set the volume on the input stream instead + + + + + Get the input channel name + + channel index (zero based) + channel name + + + + Get the output channel name + + channel index (zero based) + channel name + + + + A wave file writer that adds cue support + + + + + Writes a wave file, including a cues chunk + + + + + Adds a cue to the Wave file + + Sample position + Label text + + + + Updates the header, and writes the cues out + + + + + Media Foundation Encoder class allows you to use Media Foundation to encode an IWaveProvider + to any supported encoding format + + + + + Queries the available bitrates for a given encoding output type, sample rate and number of channels + + Audio subtype - a value from the AudioSubtypes class + The sample rate of the PCM to encode + The number of channels of the PCM to encode + An array of available bitrates in average bits per second + + + + Gets all the available media types for a particular + + Audio subtype - a value from the AudioSubtypes class + An array of available media types that can be encoded with this subtype + + + + Helper function to simplify encoding Window Media Audio + Should be supported on Vista and above (not tested) + + Input provider, must be PCM + Output file path, should end with .wma + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to MP3 + By default, will only be available on Windows 8 and above + + Input provider, must be PCM + Output file path, should end with .mp3 + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Helper function to simplify encoding to AAC + By default, will only be available on Windows 7 and above + + Input provider, must be PCM + Output file path, should end with .mp4 (or .aac on Windows 8) + Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type + + + + Tries to find the encoding media type with the closest bitrate to that specified + + Audio subtype, a value from AudioSubtypes + Your encoder input format (used to check sample rate and channel count) + Your desired bitrate + The closest media type, or null if none available + + + + Creates a new encoder that encodes to the specified output media type + + Desired output media type + + + + Encodes a file + + Output filename (container type is deduced from the filename) + Input provider (should be PCM, some encoders will also allow IEEE float) + + + + Disposes this instance + + + + + + Disposes this instance + + + + + Finalizer + + + + + Stopped Event Args + + + + + Initializes a new instance of StoppedEventArgs + + An exception to report (null if no exception) + + + + An exception. Will be null if the playback or record operation stopped + + + + + IWaveBuffer interface use to store wave datas. + Data can be manipulated with arrays (,, + , ) that are pointing to the same memory buffer. + This is a requirement for all subclasses. + + Use the associated Count property based on the type of buffer to get the number of data in the + buffer. + + for the standard implementation using C# unions. + + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets the byte buffer count. + + The byte buffer count. + + + + Gets the float buffer count. + + The float buffer count. + + + + Gets the short buffer count. + + The short buffer count. + + + + Gets the int buffer count. + + The int buffer count. + + + + Represents the interface to a device that can play a WaveFile + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + The volume 1.0 is full scale + + + + + Indicates that playback has gone into a stopped state due to + reaching the end of the input stream or an error has been encountered during playback + + + + + Interface for IWavePlayers that can report position + + + + + Position (in terms of bytes played - does not necessarily) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Generic interface for all WaveProviders. + + + + + Gets the WaveFormat of this WaveProvider. + + The wave format. + + + + Fill the specified buffer with wave data. + + The buffer to fill of wave data. + Offset into buffer + The number of bytes to read + the number of bytes written to the buffer. + + + + NativeDirectSoundOut using DirectSound COM interop. + Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr + Modified by: Graham "Gee" Plumb + + + + + Playback Stopped + + + + + Gets the DirectSound output devices in the system + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + (40ms seems to work under Vista). + + The latency. + Selected device + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Begin playback + + + + + Stop playback + + + + + Pause Playback + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets the current position from the wave output device. + + + + + Initialise playback + + The waveprovider to be played + + + + Current playback state + + + + + + The volume 1.0 is full scale + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Determines whether the SecondaryBuffer is lost. + + + true if [is buffer lost]; otherwise, false. + + + + + Convert ms to bytes size according to WaveFormat + + The ms + number of byttes + + + + Processes the samples in a separate thread. + + + + + Stop playback + + + + + Feeds the SecondaryBuffer with the WaveStream + + number of bytes to feed + + + + IDirectSound interface + + + + + IDirectSoundBuffer interface + + + + + IDirectSoundNotify interface + + + + + Instanciate DirectSound from the DLL + + The GUID. + The direct sound. + The p unk outer. + + + + DirectSound default playback device GUID + + + + + DirectSound default capture device GUID + + + + + DirectSound default device for voice playback + + + + + DirectSound default device for voice capture + + + + + The DSEnumCallback function is an application-defined callback function that enumerates the DirectSound drivers. + The system calls this function in response to the application's call to the DirectSoundEnumerate or DirectSoundCaptureEnumerate function. + + Address of the GUID that identifies the device being enumerated, or NULL for the primary device. This value can be passed to the DirectSoundCreate8 or DirectSoundCaptureCreate8 function to create a device object for that driver. + Address of a null-terminated string that provides a textual description of the DirectSound device. + Address of a null-terminated string that specifies the module name of the DirectSound driver corresponding to this device. + Address of application-defined data. This is the pointer passed to DirectSoundEnumerate or DirectSoundCaptureEnumerate as the lpContext parameter. + Returns TRUE to continue enumerating drivers, or FALSE to stop. + + + + The DirectSoundEnumerate function enumerates the DirectSound drivers installed in the system. + + callback function + User context + + + + Gets the HANDLE of the desktop window. + + HANDLE of the Desktop window + + + + Class for enumerating DirectSound devices + + + + + The device identifier + + + + + Device description + + + + + Device module name + + + + + Like IWaveProvider, but makes it much simpler to put together a 32 bit floating + point mixing engine + + + + + Gets the WaveFormat of this Sample Provider. + + The wave format. + + + + Fill the specified buffer with 32 bit floating point samples + + The buffer to fill with samples. + Offset into buffer + The number of samples to read + the number of samples written to the buffer. + + + + Playback State + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + Support for playback using Wasapi + + + + + Playback Stopped + + + + + WASAPI Out shared mode, defauult + + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + Desired latency in milliseconds + + + + WASAPI Out using default audio endpoint + + ShareMode - shared or exclusive + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Creates a new WASAPI Output + + Device to use + + true if sync is done with event. false use sleep. + Desired latency in milliseconds + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Begin Playback + + + + + Stop playback and flush buffers + + + + + Stop playback without flushing buffers + + + + + Initialize for playing the specified wave stream + + IWaveProvider to play + + + + Playback State + + + + + Volume + + + + + Retrieve the AudioStreamVolume object for this audio stream + + + This returns the AudioStreamVolume object ONLY for shared audio streams. + + + This is thrown when an exclusive audio stream is being used. + + + + + Dispose + + + + + WaveBuffer class use to store wave datas. Data can be manipulated with arrays + (,,, ) that are pointing to the + same memory buffer. Use the associated Count property based on the type of buffer to get the number of + data in the buffer. + Implicit casting is now supported to float[], byte[], int[], short[]. + You must not use Length on returned arrays. + + n.b. FieldOffset is 8 now to allow it to work natively on 64 bit + + + + + Number of Bytes + + + + + Initializes a new instance of the class. + + The number of bytes. The size of the final buffer will be aligned on 4 Bytes (upper bound) + + + + Initializes a new instance of the class binded to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Binds this WaveBuffer instance to a specific byte buffer. + + A byte buffer to bound the WaveBuffer to. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The wave buffer. + The result of the conversion. + + + + Gets the byte buffer. + + The byte buffer. + + + + Gets the float buffer. + + The float buffer. + + + + Gets the short buffer. + + The short buffer. + + + + Gets the int buffer. + + The int buffer. + + + + Gets the max size in bytes of the byte buffer.. + + Maximum number of bytes in the buffer. + + + + Gets or sets the byte buffer count. + + The byte buffer count. + + + + Gets or sets the float buffer count. + + The float buffer count. + + + + Gets or sets the short buffer count. + + The short buffer count. + + + + Gets or sets the int buffer count. + + The int buffer count. + + + + Clears the associated buffer. + + + + + Copy this WaveBuffer to a destination buffer up to ByteBufferCount bytes. + + + + + Checks the validity of the count parameters. + + Name of the arg. + The value. + The size of value. + + + + Wave Callback Info + + + + + Callback Strategy + + + + + Window Handle (if applicable) + + + + + Sets up a new WaveCallbackInfo for function callbacks + + + + + Sets up a new WaveCallbackInfo to use a New Window + IMPORTANT: only use this on the GUI thread + + + + + Sets up a new WaveCallbackInfo to use an existing window + IMPORTANT: only use this on the GUI thread + + + + + Wave Callback Strategy + + + + + Use a function + + + + + Create a new window (should only be done if on GUI thread) + + + + + Use an existing window handle + + + + + Use an event handle + + + + + This class writes WAV data to a .wav file on disk + + + + + Creates a 16 bit Wave File from an ISampleProvider + BEWARE: the source provider must not return data indefinitely + + The filename to write to + The source sample provider + + + + Creates a Wave file by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The filename to use + The source WaveProvider + + + + Writes to a stream by reading all the data from a WaveProvider + BEWARE: the WaveProvider MUST return 0 from its Read method when it is finished, + or the Wave File will grow indefinitely. + + The stream the method will output to + The source WaveProvider + + + + WaveFileWriter that actually writes to a stream + + Stream to be written to + Wave format to use + + + + Creates a new WaveFileWriter + + The filename to write to + The Wave Format of the output data + + + + The wave file name or null if not applicable + + + + + Number of bytes of audio in the data chunk + + + + + WaveFormat of this wave file + + + + + Returns false: Cannot read from a WaveFileWriter + + + + + Returns true: Can write to a WaveFileWriter + + + + + Returns false: Cannot seek within a WaveFileWriter + + + + + Read is not supported for a WaveFileWriter + + + + + Seek is not supported for a WaveFileWriter + + + + + SetLength is not supported for WaveFileWriter + + + + + + Gets the Position in the WaveFile (i.e. number of bytes written so far) + + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Appends bytes to the WaveFile (assumes they are already in the correct format) + + the buffer containing the wave data + the offset from which to start writing + the number of bytes to write + + + + Writes a single sample to the Wave file + + the sample to write (assumed floating point with 1.0f as max value) + + + + Writes 32 bit floating point samples to the Wave file + They will be converted to the appropriate bit depth depending on the WaveFormat of the WAV file + + The buffer containing the floating point samples + The offset from which to start writing + The number of floating point samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Writes 16 bit samples to the Wave file + + The buffer containing the 16 bit samples + The offset from which to start writing + The number of 16 bit samples to write + + + + Ensures data is written to disk + Also updates header, so that WAV file will be valid up to the point currently written + + + + + Actually performs the close,making sure the header contains the correct data + + True if called from Dispose + + + + Updates the header with file size information + + + + + Finaliser - should only be called if the user forgot to close this WaveFileWriter + + + + + Represents a wave out device + + + + + Indicates playback has stopped automatically + + + + + Retrieves the capabilities of a waveOut device + + Device to test + The WaveOut device capabilities + + + + Returns the number of Wave Out devices available in the system + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Creates a default WaveOut device + Will use window callbacks if called from a GUI thread, otherwise function + callbacks + + + + + Creates a WaveOut device using the specified window handle for callbacks + + A valid window handle + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Volume for this device 1.0 is full scale + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Alternative WaveOut class, making use of the Event callback + + + + + Indicates playback has stopped automatically + + + + + Gets or sets the desired latency in milliseconds + Should be set before a call to Init + + + + + Gets or sets the number of buffers used + Should be set before a call to Init + + + + + Gets or sets the device number + Should be set before a call to Init + This must be between -1 and DeviceCount - 1. + -1 means stick to default device even default device is changed + + + + + Opens a WaveOut device + + + + + Initialises the WaveOut device + + WaveProvider to play + + + + Start playing the audio from the WaveStream + + + + + Pause the audio + + + + + Resume playing after a pause from the same position + + + + + Stop and reset the WaveOut device + + + + + Gets the current position in bytes from the wave output device. + (n.b. this is not the same thing as the position within your reader + stream - it calls directly into waveOutGetPosition) + + Position in bytes + + + + Gets a instance indicating the format the hardware is using. + + + + + Playback State + + + + + Obsolete property + + + + + Closes this WaveOut device + + + + + Closes the WaveOut device and disposes of buffers + + True if called from Dispose + + + + Finalizer. Only called when user forgets to call Dispose + + + + + Provides a buffered store of samples + Read method will return queued samples or fill buffer with zeroes + Now backed by a circular buffer + + + + + Creates a new buffered WaveProvider + + WaveFormat + + + + If true, always read the amount of data requested, padding with zeroes if necessary + By default is set to true + + + + + Buffer length in bytes + + + + + Buffer duration + + + + + If true, when the buffer is full, start throwing away data + if false, AddSamples will throw an exception when buffer is full + + + + + The number of buffered bytes + + + + + Buffered Duration + + + + + Gets the WaveFormat + + + + + Adds samples. Takes a copy of buffer, so that buffer can be reused if necessary + + + + + Reads from this WaveProvider + Will always return count bytes, since we will zero-fill the buffer if not enough available + + + + + Discards all audio from the buffer + + + + + The Media Foundation Resampler Transform + + + + + Creates the Media Foundation Resampler, allowing modifying of sample rate, bit depth and channel count + + Source provider, must be PCM + Output format, must also be PCM + + + + Creates a resampler with a specified target output sample rate + + Source provider + Output sample rate + + + + Creates and configures the actual Resampler transform + + A newly created and configured resampler MFT + + + + Gets or sets the Resampler quality. n.b. set the quality before starting to resample. + 1 is lowest quality (linear interpolation) and 60 is best quality + + + + + Disposes this resampler + + + + + WaveProvider that can mix together multiple 32 bit floating point input provider + All channels must have the same number of inputs and same sample rate + n.b. Work in Progress - not tested yet + + + + + Creates a new MixingWaveProvider32 + + + + + Creates a new 32 bit MixingWaveProvider32 + + inputs - must all have the same format. + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove an input from the mixer + + waveProvider to remove + + + + The number of inputs to this mixer + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Allows any number of inputs to be patched to outputs + Uses could include swapping left and right channels, turning mono into stereo, + feeding different input sources to different soundcard outputs etc + + + + + Creates a multiplexing wave provider, allowing re-patching of input channels to different + output channels + + Input wave providers. Must all be of the same format, but can have any number of channels + Desired number of output channels. + + + + persistent temporary buffer to prevent creating work for garbage collector + + + + + Reads data from this WaveProvider + + Buffer to be filled with sample data + Offset to write to within buffer, usually 0 + Number of bytes required + Number of bytes read + + + + The WaveFormat of this WaveProvider + + + + + Connects a specified input channel to an output channel + + Input Channel index (zero based). Must be less than InputChannelCount + Output Channel index (zero based). Must be less than OutputChannelCount + + + + The number of input channels. Note that this is not the same as the number of input wave providers. If you pass in + one stereo and one mono input provider, the number of input channels is three. + + + + + The number of output channels, as specified in the constructor. + + + + + Silence producing wave provider + Useful for playing silence when doing a WASAPI Loopback Capture + + + + + Creates a new silence producing wave provider + + Desired WaveFormat (should be PCM / IEE float + + + + Read silence from into the buffer + + + + + WaveFormat of this silence producing wave provider + + + + + Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together + + + + + Creates a new mono waveprovider based on a stereo input + + Stereo 16 bit PCM input + + + + 1.0 to mix the mono source entirely to the left channel + + + + + 1.0 to mix the mono source entirely to the right channel + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels + + + + + Creates a new stereo waveprovider based on a mono input + + Mono 16 bit PCM input + + + + 1.0 to copy the mono stream to the left channel without adjusting volume + + + + + 1.0 to copy the mono stream to the right channel without adjusting volume + + + + + Output Wave Format + + + + + Reads bytes from this WaveProvider + + + + + Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float + + + + + Constructs a new VolumeWaveProvider16 + + Source provider, must be 16 bit PCM + + + + Gets or sets volume. + 1.0 is full scale, 0.0 is silence, anything over 1.0 will amplify but potentially clip + + + + + WaveFormat of this WaveProvider + + + + + Read bytes from this WaveProvider + + Buffer to read into + Offset within buffer to read to + Bytes desired + Bytes read + + + + Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way + + + + + Creates a new WaveFloatTo16Provider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way + + + + + Creates a new Wave16toFloatProvider + + the source provider + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Buffered WaveProvider taking source data from WaveIn + + + + + Creates a new WaveInProvider + n.b. Should make sure the WaveFormat is set correctly on IWaveIn before calling + + The source of wave data + + + + Reads data from the WaveInProvider + + + + + The WaveFormat + + + + + Base class for creating a 16 bit wave provider + + + + + Initializes a new instance of the WaveProvider16 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider16 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a short array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Base class for creating a 32 bit floating point wave provider + Can also be used as a base class for an ISampleProvider that can + be plugged straight into anything requiring an IWaveProvider + + + + + Initializes a new instance of the WaveProvider32 class + defaulting to 44.1kHz mono + + + + + Initializes a new instance of the WaveProvider32 class with the specified + sample rate and number of channels + + + + + Allows you to specify the sample rate and channels for this WaveProvider + (should be initialised before you pass it to a wave player) + + + + + Implements the Read method of IWaveProvider by delegating to the abstract + Read method taking a float array + + + + + Method to override in derived classes + Supply the requested number of samples into the buffer + + + + + The Wave Format + + + + + Utility class to intercept audio from an IWaveProvider and + save it to disk + + + + + Constructs a new WaveRecorder + + The location to write the WAV file to + The Source Wave Provider + + + + Read simply returns what the source returns, but writes to disk along the way + + + + + The WaveFormat + + + + + Closes the WAV file + + + + A read-only stream of AIFF data based on an aiff file + with an associated WaveFormat + originally contributed to NAudio by Giawa + + + + Supports opening a AIF file + The AIF is of similar nastiness to the WAV format. + This supports basic reading of uncompressed PCM AIF files, + with 8, 16, 24 and 32 bit PCM data. + + + + + Creates an Aiff File Reader based on an input stream + + The input stream containing a AIF file including header + + + + Ensures valid AIFF header and then finds data offset. + + The stream, positioned at the start of audio data + The format found + The position of the data chunk + The length of the data chunk + Additional chunks found + + + + Cleans up the resources associated with this AiffFileReader + + + + + + + + + + + + + + + Number of Samples (if possible to calculate) + + + + + Position in the AIFF file + + + + + + Reads bytes from the AIFF File + + + + + + AIFF Chunk + + + + + Chunk Name + + + + + Chunk Length + + + + + Chunk start + + + + + Creates a new AIFF Chunk + + + + + AudioFileReader simplifies opening an audio file in NAudio + Simply pass in the filename, and it will attempt to open the + file and set up a conversion path that turns into PCM IEEE float. + ACM codecs will be used for conversion. + It provides a volume property and implements both WaveStream and + ISampleProvider, making it possibly the only stage in your audio + pipeline necessary for simple playback scenarios + + + + + Initializes a new instance of AudioFileReader + + The file to open + + + + Creates the reader stream, supporting all filetypes in the core NAudio library, + and ensuring we are in PCM format + + File Name + + + + File Name + + + + + WaveFormat of this stream + + + + + Length of this stream (in bytes) + + + + + Position of this stream (in bytes) + + + + + Reads from this wave stream + + Audio buffer + Offset into buffer + Number of bytes required + Number of bytes read + + + + Reads audio from this sample provider + + Sample buffer + Offset into sample buffer + Number of samples required + Number of samples read + + + + Gets or Sets the Volume of this AudioFileReader. 1.0f is full volume + + + + + Helper to convert source to dest bytes + + + + + Helper to convert dest to source bytes + + + + + Disposes this AudioFileReader + + True if called from Dispose + + + + Helper stream that lets us read from compressed audio files with large block alignment + as though we could read any amount and reposition anywhere + + + + + Creates a new BlockAlignReductionStream + + the input stream + + + + Block alignment of this stream + + + + + Wave Format + + + + + Length of this Stream + + + + + Current position within stream + + + + + Disposes this WaveStream + + + + + Reads data from this stream + + + + + + + + + Implementation of Com IStream + + + + + Holds information on a cue: a labeled position within a Wave file + + + + + Cue position in samples + + + + + Label of the cue + + + + + Creates a Cue based on a sample position and label + + + + + + + Holds a list of cues + + + The specs for reading and writing cues from the cue and list RIFF chunks + are from http://www.sonicspot.com/guide/wavefiles.html and http://www.wotsit.org/ + ------------------------------ + The cues are stored like this: + ------------------------------ + struct CuePoint + { + Int32 dwIdentifier; + Int32 dwPosition; + Int32 fccChunk; + Int32 dwChunkStart; + Int32 dwBlockStart; + Int32 dwSampleOffset; + } + + struct CueChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwCuePoints; + CuePoint[] points; + } + ------------------------------ + Labels look like this: + ------------------------------ + struct ListHeader + { + Int32 listID; /* 'list' */ + Int32 chunkSize; /* includes the Type ID below */ + Int32 typeID; /* 'adtl' */ + } + + struct LabelChunk + { + Int32 chunkID; + Int32 chunkSize; + Int32 dwIdentifier; + Char[] dwText; /* Encoded with extended ASCII */ + } LabelChunk; + + + + + Creates an empty cue list + + + + + Adds an item to the list + + Cue + + + + Gets sample positions for the embedded cues + + Array containing the cue positions + + + + Gets labels for the embedded cues + + Array containing the labels + + + + Creates a cue list from the cue RIFF chunk and the list RIFF chunk + + The data contained in the cue chunk + The data contained in the list chunk + + + + Gets the cues as the concatenated cue and list RIFF chunks. + + RIFF chunks containing the cue data + + + + Number of cues + + + + + Accesses the cue at the specified index + + + + + + + Checks if the cue and list chunks exist and if so, creates a cue list + + + + + A wave file reader supporting cue reading + + + + + Loads a wavefile and supports reading cues + + + + + + Cue List (can be null if cues not present) + + + + + An interface for WaveStreams which can report notification of individual samples + + + + + A sample has been detected + + + + + Sample event arguments + + + + + Left sample + + + + + Right sample + + + + + Constructor + + + + + Class for reading any file that Media Foundation can play + Will only work in Windows Vista and above + Automatically converts to PCM + If it is a video file with multiple audio streams, it will pick out the first audio stream + + + + + Allows customisation of this reader class + + + + + Sets up the default settings for MediaFoundationReader + + + + + Allows us to request IEEE float output (n.b. no guarantee this will be accepted) + + + + + If true, the reader object created in the constructor is used in Read + Should only be set to true if you are working entirely on an STA thread, or + entirely with MTA threads. + + + + + If true, the reposition does not happen immediately, but waits until the + next call to read to be processed. + + + + + Default constructor + + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename (can also be a URL e.g. http:// mms:// file://) + + + + Creates a new MediaFoundationReader based on the supplied file + + Filename + Advanced settings + + + + Initializes + + + + + Creates the reader (overridable by ) + + + + + Reads from this wave stream + + Buffer to read into + Offset in buffer + Bytes required + Number of bytes read; 0 indicates end of stream + + + + WaveFormat of this stream (n.b. this is after converting to PCM) + + + + + The bytesRequired of this stream in bytes (n.b may not be accurate) + + + + + Current position within this stream + + + + + Cleans up after finishing with this reader + + true if called from Dispose + + + + WaveFormat has changed + + + + + Class for reading from MP3 files + + + + + The MP3 wave format (n.b. NOT the output format of this stream - see the WaveFormat property) + + + + Supports opening a MP3 file + + + Supports opening a MP3 file + MP3 File name + Factory method to build a frame decompressor + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + + + + Opens MP3 from a stream rather than a file + Will not dispose of this stream itself + + The incoming stream containing MP3 data + Factory method to build a frame decompressor + + + + Function that can create an MP3 Frame decompressor + + A WaveFormat object describing the MP3 file format + An MP3 Frame decompressor + + + + Creates an ACM MP3 Frame decompressor. This is the default with NAudio + + A WaveFormat object based + + + + + Gets the total length of this file in milliseconds. + + + + + ID3v2 tag if present + + + + + ID3v1 tag if present + + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + Reads the next mp3 frame + + Next mp3 frame, or null if EOF + + + + This is the length in bytes of data available to be read out from the Read method + (i.e. the decompressed MP3 length) + n.b. this may return 0 for files whose length is unknown + + + + + + + + + + + + + + + Reads decompressed PCM data from our MP3 file. + + + + + Xing header if present + + + + + Disposes this WaveStream + + + + + WaveStream that simply passes on data from its source stream + (e.g. a MemoryStream) + + + + + Initialises a new instance of RawSourceWaveStream + + The source stream containing raw audio + The waveformat of the audio in the source stream + + + + Initialises a new instance of RawSourceWaveStream + + The buffer containing raw audio + Offset in the source buffer to read from + Number of bytes to read in the buffer + The waveformat of the audio in the source stream + + + + The WaveFormat of this stream + + + + + The length in bytes of this stream (if supported) + + + + + The current position in this stream + + + + + Reads data from the stream + + + + + Wave Stream for converting between sample rates + + + + + WaveStream to resample using the DMO Resampler + + Input Stream + Desired Output Format + + + + Stream Wave Format + + + + + Stream length in bytes + + + + + Stream position in bytes + + + + + Reads data from input stream + + buffer + offset into buffer + Bytes required + Number of bytes read + + + + Dispose + + True if disposing (not from finalizer) + + + + Holds information about a RIFF file chunk + + + + + Creates a RiffChunk object + + + + + The chunk identifier + + + + + The chunk identifier converted to a string + + + + + The chunk length + + + + + The stream position this chunk is located at + + + + + A simple compressor + + + + + Create a new simple compressor stream + + Source stream + + + + Make-up Gain + + + + + Threshold + + + + + Ratio + + + + + Attack time + + + + + Release time + + + + + Determine whether the stream has the required amount of data. + + Number of bytes of data required from the stream. + Flag indicating whether the required amount of data is avialable. + + + + Turns gain on or off + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Gets the WaveFormat of this stream + + + + + Reads bytes from this stream + + Buffer to read into + Offset in array to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Gets the block alignment for this stream + + + + + MediaFoundationReader supporting reading from a stream + + + + + Constructs a new media foundation reader from a stream + + + + + Creates the reader + + + + + WaveStream that converts 32 bit audio back down to 16 bit, clipping if necessary + + + + + The method reuses the same buffer to prevent + unnecessary allocations. + + + + + Creates a new Wave32To16Stream + + the source stream + + + + Sets the volume for this stream. 1.0f is full scale + + + + + + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + Destination buffer + Offset into destination buffer + + Number of bytes read. + + + + Conversion to 16 bit and clipping + + + + + + + + + + Clip indicator. Can be reset. + + + + + Disposes this WaveStream + + + + + Represents Channel for the WaveMixerStream + 32 bit output and 16 bit input + It's output is always stereo + The input stream can be panned + + + + + Creates a new WaveChannel32 + + the source stream + stream volume (1 is 0dB) + pan control (-1 to 1) + + + + Creates a WaveChannel32 with default settings + + The source stream + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + If true, Read always returns the number of bytes requested + + + + + + + + + + Volume of this channel. 1.0 = full scale + + + + + Pan of this channel (from -1 to 1) + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + Sample + + + + + Raise the sample event (no check for null because it has already been done) + + + + This class supports the reading of WAV files, + providing a repositionable WaveStream that returns the raw data + contained in the WAV file + + + + Supports opening a WAV file + The WAV file format is a real mess, but we will only + support the basic WAV file format which actually covers the vast + majority of WAV files out there. For more WAV file format information + visit www.wotsit.org. If you have a WAV file that can't be read by + this class, email it to the NAudio project and we will probably + fix this reader to support it + + + + + Creates a Wave File Reader based on an input stream + + The input stream containing a WAV file including header + + + + Gets a list of the additional chunks found in this file + + + + + Gets the data for the specified chunk + + + + + Cleans up the resources associated with this WaveFileReader + + + + + + + + + + This is the length of audio data contained in this WAV file, in bytes + (i.e. the byte length of the data chunk, not the length of the WAV file itself) + + + + + + Number of Sample Frames (if possible to calculate) + This currently does not take into account number of channels + Multiply number of channels if you want the total number of samples + + + + + Position in the WAV data chunk. + + + + + + Reads bytes from the Wave File + + + + + + Attempts to read the next sample or group of samples as floating point normalised into the range -1.0f to 1.0f + + An array of samples, 1 for mono, 2 for stereo etc. Null indicates end of file reached + + + + + Attempts to read a sample into a float. n.b. only applicable for uncompressed formats + Will normalise the value read into the range -1.0f to 1.0f if it comes from a PCM encoding + + False if the end of the WAV data chunk was reached + + + + IWaveProvider that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source Provider + + + + Gets the WaveFormat of this stream + + + + + Indicates that a reposition has taken place, and internal buffers should be reset + + + + + Reads bytes from this stream + + Buffer to read into + Offset in buffer to read into + Number of bytes to read + Number of bytes read + + + + Disposes this stream + + true if the user called this + + + + Disposes this resource + + + + + Finalizer + + + + + WaveStream that passes through an ACM Codec + + + + + Create a new WaveFormat conversion stream + + Desired output format + Source stream + + + + Creates a stream that can convert to PCM + + The source stream + A PCM stream + + + + Gets or sets the current position in the stream + + + + + Converts source bytes to destination bytes + + + + + Converts destination bytes to source bytes + + + + + Returns the stream length + + + + + Gets the WaveFormat of this stream + + + + + + + Buffer to read into + Offset within buffer to write to + Number of bytes to read + Bytes read + + + + Disposes this stream + + true if the user called this + + + + A buffer of Wave samples + + + + + creates a new wavebuffer + + WaveIn device to write to + Buffer size in bytes + + + + Place this buffer back to record more audio + + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + + Provides access to the actual record buffer (for reading only) + + + + + Indicates whether the Done flag is set on this buffer + + + + + Indicates whether the InQueue flag is set on this buffer + + + + + Number of bytes recorded + + + + + The buffer size in bytes + + + + + WaveStream that can mix together multiple 32 bit input streams + (Normally used with stereo input channels) + All channels must have the same number of inputs + + + + + Creates a new 32 bit WaveMixerStream + + + + + Creates a new 32 bit WaveMixerStream + + An Array of WaveStreams - must all have the same format. + Use WaveChannel is designed for this purpose. + Automatically stop when all inputs have been read + Thrown if the input streams are not 32 bit floating point, + or if they have different formats to each other + + + + Add a new input to the mixer + + The wave input to add + + + + Remove a WaveStream from the mixer + + waveStream to remove + + + + The number of inputs to this mixer + + + + + Automatically stop when all inputs have been read + + + + + Reads bytes from this wave stream + + buffer to read into + offset into buffer + number of bytes required + Number of bytes read. + Thrown if an invalid number of bytes requested + + + + Actually performs the mixing + + + + + + + + + + Length of this Wave Stream (in bytes) + + + + + + Position within this Wave Stream (in bytes) + + + + + + + + + + + Disposes this WaveStream + + + + + Simply shifts the input stream in time, optionally + clipping its start and end. + (n.b. may include looping in the future) + + + + + Creates a new WaveOffsetStream + + the source stream + the time at which we should start reading from the source stream + amount to trim off the front of the source stream + length of time to play from source stream + + + + Creates a WaveOffsetStream with default settings (no offset or pre-delay, + and whole length of source stream) + + The source stream + + + + The length of time before which no audio will be played + + + + + An offset into the source stream from which to start playing + + + + + Length of time to read from the source stream + + + + + Gets the block alignment for this WaveStream + + + + + Returns the stream length + + + + + Gets or sets the current position in the stream + + + + + Reads bytes from this wave stream + + The destination buffer + Offset into the destination buffer + Number of bytes read + Number of bytes read. + + + + + + + + + Determines whether this channel has any data to play + to allow optimisation to not read, but bump position forward + + + + + Disposes this WaveStream + + + + + A buffer of Wave samples for streaming to a Wave Output device + + + + + creates a new wavebuffer + + WaveOut device to write to + Buffer size in bytes + Stream to provide more data + Lock to protect WaveOut API's from being called on >1 thread + + + + Finalizer for this wave buffer + + + + + Releases resources held by this WaveBuffer + + + + + Releases resources held by this WaveBuffer + + + + this is called by the WAVE callback and should be used to refill the buffer + + + + Whether the header's in queue flag is set + + + + + The buffer size in bytes + + + + + Base class for all WaveStream classes. Derives from stream. + + + + + Retrieves the WaveFormat for this stream + + + + + We can read from this stream + + + + + We can seek within this stream + + + + + We can't write to this stream + + + + + Flush does not need to do anything + See + + + + + An alternative way of repositioning. + See + + + + + Sets the length of the WaveStream. Not Supported. + + + + + + Writes to the WaveStream. Not Supported. + + + + + The block alignment for this wavestream. Do not modify the Position + to anything that is not a whole multiple of this value + + + + + Moves forward or backwards the specified number of seconds in the stream + + Number of seconds to move, can be negative + + + + The current position in the stream in Time format + + + + + Total length in real-time of the stream (may be an estimate for compressed files) + + + + + Whether the WaveStream has non-zero sample data at the current position for the + specified count + + Number of bytes to read + + + + Contains the name and CLSID of a DirectX Media Object + + + + + Name + + + + + CLSID + + + + + Initializes a new instance of DmoDescriptor + + + + + DirectX Media Object Enumerator + + + + + Get audio effect names + + Audio effect names + + + + Get audio encoder names + + Audio encoder names + + + + Get audio decoder names + + Audio decoder names + + + + DMO Guids for use with DMOEnum + dmoreg.h + + + + + MediaErr.h + + + + + DMO_PARTIAL_MEDIATYPE + + + + + defined in Medparam.h + + + + + Windows Media Resampler Props + wmcodecdsp.h + + + + + Range is 1 to 60 + + + + + Specifies the channel matrix. + + + + + Attempting to implement the COM IMediaBuffer interface as a .NET object + Not sure what will happen when I pass this to an unmanaged object + + + + + Creates a new Media Buffer + + Maximum length in bytes + + + + Dispose and free memory for buffer + + + + + Finalizer + + + + + Set length of valid data in the buffer + + length + HRESULT + + + + Gets the maximum length of the buffer + + Max length (output parameter) + HRESULT + + + + Gets buffer and / or length + + Pointer to variable into which buffer pointer should be written + Pointer to variable into which valid data length should be written + HRESULT + + + + Length of data in the media buffer + + + + + Loads data into this buffer + + Data to load + Number of bytes to load + + + + Retrieves the data in the output buffer + + buffer to retrieve into + offset within that buffer + + + + Media Object + + + + + Creates a new Media Object + + Media Object COM interface + + + + Number of input streams + + + + + Number of output streams + + + + + Gets the input media type for the specified input stream + + Input stream index + Input type index + DMO Media Type or null if there are no more input types + + + + Gets the DMO Media Output type + + The output stream + Output type index + DMO Media Type or null if no more available + + + + retrieves the media type that was set for an output stream, if any + + Output stream index + DMO Media Type or null if no more available + + + + Enumerates the supported input types + + Input stream index + Enumeration of input types + + + + Enumerates the output types + + Output stream index + Enumeration of supported output types + + + + Querys whether a specified input type is supported + + Input stream index + Media type to check + true if supports + + + + Sets the input type helper method + + Input stream index + Media type + Flags (can be used to test rather than set) + + + + Sets the input type + + Input stream index + Media Type + + + + Sets the input type to the specified Wave format + + Input stream index + Wave format + + + + Requests whether the specified Wave format is supported as an input + + Input stream index + Wave format + true if supported + + + + Helper function to make a DMO Media Type to represent a particular WaveFormat + + + + + Checks if a specified output type is supported + n.b. you may need to set the input type first + + Output stream index + Media type + True if supported + + + + Tests if the specified Wave Format is supported for output + n.b. may need to set the input type first + + Output stream index + Wave format + True if supported + + + + Helper method to call SetOutputType + + + + + Sets the output type + n.b. may need to set the input type first + + Output stream index + Media type to set + + + + Set output type to the specified wave format + n.b. may need to set input type first + + Output stream index + Wave format + + + + Get Input Size Info + + Input Stream Index + Input Size Info + + + + Get Output Size Info + + Output Stream Index + Output Size Info + + + + Process Input + + Input Stream index + Media Buffer + Flags + Timestamp + Duration + + + + Process Output + + Flags + Output buffer count + Output buffers + + + + Gives the DMO a chance to allocate any resources needed for streaming + + + + + Tells the DMO to free any resources needed for streaming + + + + + Gets maximum input latency + + input stream index + Maximum input latency as a ref-time + + + + Flushes all buffered data + + + + + Report a discontinuity on the specified input stream + + Input Stream index + + + + Is this input stream accepting data? + + Input Stream index + true if accepting data + + + + Experimental code, not currently being called + Not sure if it is necessary anyway + + + + + Media Object Size Info + + + + + Minimum Buffer Size, in bytes + + + + + Max Lookahead + + + + + Alignment + + + + + Media Object Size Info + + + + + ToString + + + + + MP_PARAMINFO + + + + + MP_TYPE + + + + + MPT_INT + + + + + MPT_FLOAT + + + + + MPT_BOOL + + + + + MPT_ENUM + + + + + MPT_MAX + + + + + MP_CURVE_TYPE + + + + + uuids.h, ksuuids.h + + + + + implements IMediaObject (DirectX Media Object) + implements IMFTransform (Media Foundation Transform) + On Windows XP, it is always an MM (if present at all) + + + + + Windows Media MP3 Decoder (as a DMO) + WORK IN PROGRESS - DO NOT USE! + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + DMO Input Data Buffer Flags + + + + + None + + + + + DMO_INPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_INPUT_DATA_BUFFERF_TIME + + + + + DMO_INPUT_DATA_BUFFERF_TIMELENGTH + + + + + http://msdn.microsoft.com/en-us/library/aa929922.aspx + DMO_MEDIA_TYPE + + + + + Major type + + + + + Major type name + + + + + Subtype + + + + + Subtype name + + + + + Fixed size samples + + + + + Sample size + + + + + Format type + + + + + Format type name + + + + + Gets the structure as a Wave format (if it is one) + + + + + Sets this object up to point to a wave format + + Wave format structure + + + + DMO Output Data Buffer + + + + + Creates a new DMO Output Data Buffer structure + + Maximum buffer size + + + + Dispose + + + + + Media Buffer + + + + + Length of data in buffer + + + + + Status Flags + + + + + Timestamp + + + + + Duration + + + + + Retrives the data in this buffer + + Buffer to receive data + Offset into buffer + + + + Is more data available + If true, ProcessOuput should be called again + + + + + DMO Output Data Buffer Flags + + + + + None + + + + + DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT + + + + + DMO_OUTPUT_DATA_BUFFERF_TIME + + + + + DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH + + + + + DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE + + + + + DMO Process Output Flags + + + + + None + + + + + DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER + + + + + IMediaBuffer Interface + + + + + Set Length + + Length + HRESULT + + + + Get Max Length + + Max Length + HRESULT + + + + Get Buffer and Length + + Pointer to variable into which to write the Buffer Pointer + Pointer to variable into which to write the Valid Data Length + HRESULT + + + + defined in mediaobj.h + + + + + From wmcodecsdp.h + Implements: + - IMediaObject + - IMFTransform (Media foundation - we will leave this for now as there is loads of MF stuff) + - IPropertyStore + - IWMResamplerProps + Can resample PCM or IEEE + + + + + DMO Resampler + + + + + Creates a new Resampler based on the DMO Resampler + + + + + Media Object + + + + + Dispose code - experimental at the moment + Was added trying to track down why Resampler crashes NUnit + This code not currently being called by ResamplerDmoStream + + + + + Soundfont generator + + + + + Gets the generator type + + + + + Generator amount as an unsigned short + + + + + Generator amount as a signed short + + + + + Low byte amount + + + + + High byte amount + + + + + Instrument + + + + + Sample Header + + + + + + + + + + Generator types + + + + Start address offset + + + End address offset + + + Start loop address offset + + + End loop address offset + + + Start address coarse offset + + + Modulation LFO to pitch + + + Vibrato LFO to pitch + + + Modulation envelope to pitch + + + Initial filter cutoff frequency + + + Initial filter Q + + + Modulation LFO to filter Cutoff frequency + + + Modulation envelope to filter cutoff frequency + + + End address coarse offset + + + Modulation LFO to volume + + + Unused + + + Chorus effects send + + + Reverb effects send + + + Pan + + + Unused + + + Unused + + + Unused + + + Delay modulation LFO + + + Frequency modulation LFO + + + Delay vibrato LFO + + + Frequency vibrato LFO + + + Delay modulation envelope + + + Attack modulation envelope + + + Hold modulation envelope + + + Decay modulation envelope + + + Sustain modulation envelop + + + Release modulation envelope + + + Key number to modulation envelope hold + + + Key number to modulation envelope decay + + + Delay volume envelope + + + Attack volume envelope + + + Hold volume envelope + + + Decay volume envelope + + + Sustain volume envelope + + + Release volume envelope + + + Key number to volume envelope hold + + + Key number to volume envelope decay + + + Instrument + + + Reserved + + + Key range + + + Velocity range + + + Start loop address coarse offset + + + Key number + + + Velocity + + + Initial attenuation + + + Reserved + + + End loop address coarse offset + + + Coarse tune + + + Fine tune + + + Sample ID + + + Sample modes + + + Reserved + + + Scale tuning + + + Exclusive class + + + Overriding root key + + + Unused + + + Unused + + + + A soundfont info chunk + + + + + SoundFont Version + + + + + WaveTable sound engine + + + + + Bank name + + + + + Data ROM + + + + + Creation Date + + + + + Author + + + + + Target Product + + + + + Copyright + + + + + Comments + + + + + Tools + + + + + ROM Version + + + + + + + + + + SoundFont instrument + + + + + instrument name + + + + + Zones + + + + + + + + + + Instrument Builder + + + + + Transform Types + + + + + Linear + + + + + Modulator + + + + + Source Modulation data type + + + + + Destination generator type + + + + + Amount + + + + + Source Modulation Amount Type + + + + + Source Transform Type + + + + + + + + + + Controller Sources + + + + + No Controller + + + + + Note On Velocity + + + + + Note On Key Number + + + + + Poly Pressure + + + + + Channel Pressure + + + + + Pitch Wheel + + + + + Pitch Wheel Sensitivity + + + + + Source Types + + + + + Linear + + + + + Concave + + + + + Convex + + + + + Switch + + + + + Modulator Type + + + + + + + + + + + A SoundFont Preset + + + + + Preset name + + + + + Patch Number + + + + + Bank number + + + + + Zones + + + + + + + + + + Class to read the SoundFont file presets chunk + + + + + The Presets contained in this chunk + + + + + The instruments contained in this chunk + + + + + The sample headers contained in this chunk + + + + + + + + + + just reads a chunk ID at the current position + + chunk ID + + + + reads a chunk at the current position + + + + + creates a new riffchunk from current position checking that we're not + at the end of this chunk first + + the new chunk + + + + useful for chunks that just contain a string + + chunk as string + + + + A SoundFont Sample Header + + + + + The sample name + + + + + Start offset + + + + + End offset + + + + + Start loop point + + + + + End loop point + + + + + Sample Rate + + + + + Original pitch + + + + + Pitch correction + + + + + Sample Link + + + + + SoundFont Sample Link Type + + + + + + + + + + SoundFont sample modes + + + + + No loop + + + + + Loop Continuously + + + + + Reserved no loop + + + + + Loop and continue + + + + + Sample Link Type + + + + + Mono Sample + + + + + Right Sample + + + + + Left Sample + + + + + Linked Sample + + + + + ROM Mono Sample + + + + + ROM Right Sample + + + + + ROM Left Sample + + + + + ROM Linked Sample + + + + + SoundFont Version Structure + + + + + Major Version + + + + + Minor Version + + + + + Builds a SoundFont version + + + + + Reads a SoundFont Version structure + + + + + Writes a SoundFont Version structure + + + + + Gets the length of this structure + + + + + Represents a SoundFont + + + + + Loads a SoundFont from a file + + Filename of the SoundFont + + + + Loads a SoundFont from a stream + + stream + + + + The File Info Chunk + + + + + The Presets + + + + + The Instruments + + + + + The Sample Headers + + + + + The Sample Data + + + + + + + + + + base class for structures that can read themselves + + + + + A SoundFont zone + + + + + + + + + + Modulators for this Zone + + + + + Generators for this Zone + + + + + Summary description for Fader. + + + + + Required designer variable. + + + + + Creates a new Fader control + + + + + Clean up any resources being used. + + + + + + + + + + + + + + + + + + + + + + + + + Minimum value of this fader + + + + + Maximum value of this fader + + + + + Current value of this fader + + + + + Fader orientation + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Pan slider control + + + + + Required designer variable. + + + + + True when pan value changed + + + + + Creates a new PanSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + The current Pan setting + + + + + Control that represents a potentiometer + TODO list: + Optional Log scale + Optional reverse scale + Keyboard control + Optional bitmap mode + Optional complete draw mode + Tooltip support + + + + + Value changed event + + + + + Creates a new pot control + + + + + Minimum Value of the Pot + + + + + Maximum Value of the Pot + + + + + The current value of the pot + + + + + Draws the control + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Handles the mouse up event to allow changing value by dragging + + + + + Handles the mouse down event to allow changing value by dragging + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Implements a rudimentary volume meter + + + + + Basic volume meter + + + + + On Fore Color Changed + + + + + Current Value + + + + + Minimum decibels + + + + + Maximum decibels + + + + + Meter orientation + + + + + Paints the volume meter + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + VolumeSlider control + + + + + Required designer variable. + + + + + Volume changed event + + + + + Creates a new VolumeSlider control + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + The volume for this control + + + + + Windows Forms control for painting audio waveforms + + + + + Constructs a new instance of the WaveFormPainter class + + + + + On Resize + + + + + On ForeColor Changed + + + + + + Add Max Value + + + + + + On Paint + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Control for viewing waveforms + + + + + Required designer variable. + + + + + Creates a new WaveViewer control + + + + + sets the associated wavestream + + + + + The zoom level, in samples per pixel + + + + + Start position (currently in bytes) + + + + + Clean up any resources being used. + + + + + + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Boolean mixer control + + + + + Gets the details for this control + + memory pointer + + + + The current value of the control + + + + + Custom Mixer control + + + + + Get the data for this custom control + + pointer to memory to receive data + + + + List text mixer control + + + + + Get the details for this control + + Memory location to read to + + + Represents a Windows mixer device + + + The number of mixer devices available + + + Connects to the specified mixer + The index of the mixer to use. + This should be between zero and NumberOfDevices - 1 + + + The number of destinations this mixer supports + + + The name of this mixer device + + + The manufacturer code for this mixer device + + + The product identifier code for this mixer device + + + Retrieve the specified MixerDestination object + The ID of the destination to use. + Should be between 0 and DestinationCount - 1 + + + + A way to enumerate the destinations + + + + + A way to enumerate all available devices + + + + + Represents a mixer control + + + + + Mixer Handle + + + + + Number of Channels + + + + + Mixer Handle Type + + + + + Gets all the mixer controls + + Mixer Handle + Mixer Line + Mixer Handle Type + + + + + Gets a specified Mixer Control + + Mixer Handle + Line ID + Control ID + Number of Channels + Flags to use (indicates the meaning of mixerHandle) + + + + + Gets the control details + + + + + Gets the control details + + + + + + Mixer control name + + + + + Mixer control type + + + + + Returns true if this is a boolean control + + Control type + + + + Is this a boolean control + + + + + Determines whether a specified mixer control type is a list text control + + + + + True if this is a list text control + + + + + True if this is a signed control + + + + + True if this is an unsigned control + + + + + True if this is a custom control + + + + + String representation for debug purposes + + + + + Mixer control types + + + + Custom + + + Boolean meter + + + Signed meter + + + Peak meter + + + Unsigned meter + + + Boolean + + + On Off + + + Mute + + + Mono + + + Loudness + + + Stereo Enhance + + + Button + + + Decibels + + + Signed + + + Unsigned + + + Percent + + + Slider + + + Pan + + + Q-sound pan + + + Fader + + + Volume + + + Bass + + + Treble + + + Equaliser + + + Single Select + + + Mux + + + Multiple select + + + Mixer + + + Micro time + + + Milli time + + + + Represents a mixer line (source or destination) + + + + + Creates a new mixer destination + + Mixer Handle + Destination Index + Mixer Handle Type + + + + Creates a new Mixer Source For a Specified Source + + Mixer Handle + Destination Index + Source Index + Flag indicating the meaning of mixerHandle + + + + Creates a new Mixer Source + + Wave In Device + + + + Mixer Line Name + + + + + Mixer Line short name + + + + + The line ID + + + + + Component Type + + + + + Mixer destination type description + + + + + Number of channels + + + + + Number of sources + + + + + Number of controls + + + + + Is this destination active + + + + + Is this destination disconnected + + + + + Is this destination a source + + + + + Gets the specified source + + + + + Enumerator for the controls on this Mixer Limne + + + + + Enumerator for the sources on this Mixer Line + + + + + The name of the target output device + + + + + Describes this Mixer Line (for diagnostic purposes) + + + + + Mixer Interop Flags + + + + + MIXER_OBJECTF_HANDLE = 0x80000000; + + + + + MIXER_OBJECTF_MIXER = 0x00000000; + + + + + MIXER_OBJECTF_HMIXER + + + + + MIXER_OBJECTF_WAVEOUT + + + + + MIXER_OBJECTF_HWAVEOUT + + + + + MIXER_OBJECTF_WAVEIN + + + + + MIXER_OBJECTF_HWAVEIN + + + + + MIXER_OBJECTF_MIDIOUT + + + + + MIXER_OBJECTF_HMIDIOUT + + + + + MIXER_OBJECTF_MIDIIN + + + + + MIXER_OBJECTF_HMIDIIN + + + + + MIXER_OBJECTF_AUX + + + + + MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000; + MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000; + + + + + MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001; + MIXER_SETCONTROLDETAILSF_LISTTEXT = 0x00000001; + + + + + MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F; + MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F; + + + + + MIXER_GETLINECONTROLSF_ALL = 0x00000000; + + + + + MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001; + + + + + MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002; + + + + + MIXER_GETLINEINFOF_DESTINATION = 0x00000000; + + + + + MIXER_GETLINEINFOF_SOURCE = 0x00000001; + + + + + MIXER_GETLINEINFOF_LINEID = 0x00000002; + + + + + MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003; + + + + + MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004; + + + + + MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F; + + + + + Mixer Line Flags + + + + + Audio line is active. An active line indicates that a signal is probably passing + through the line. + + + + + Audio line is disconnected. A disconnected line's associated controls can still be + modified, but the changes have no effect until the line is connected. + + + + + Audio line is an audio source line associated with a single audio destination line. + If this flag is not set, this line is an audio destination line associated with zero + or more audio source lines. + + + + + BOUNDS structure + + + + + dwMinimum / lMinimum / reserved 0 + + + + + dwMaximum / lMaximum / reserved 1 + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + METRICS structure + + + + + cSteps / reserved[0] + + + + + cbCustomData / reserved[1], number of bytes for control details + + + + + reserved 2 + + + + + reserved 3 + + + + + reserved 4 + + + + + reserved 5 + + + + + MIXERCONTROL struct + http://msdn.microsoft.com/en-us/library/dd757293%28VS.85%29.aspx + + + + + Mixer Line Component type enumeration + + + + + Audio line is a destination that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_DST_UNDEFINED + + + + + Audio line is a digital destination (for example, digital input to a DAT or CD audio device). + MIXERLINE_COMPONENTTYPE_DST_DIGITAL + + + + + Audio line is a line level destination (for example, line level input from a CD audio device) that will be the final recording source for the analog-to-digital converter (ADC). Because most audio cards for personal computers provide some sort of gain for the recording audio source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_DST_WAVEIN type. + MIXERLINE_COMPONENTTYPE_DST_LINE + + + + + Audio line is a destination used for a monitor. + MIXERLINE_COMPONENTTYPE_DST_MONITOR + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive speakers. This is the typical component type for the audio output of audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_SPEAKERS + + + + + Audio line is an adjustable (gain and/or attenuation) destination intended to drive headphones. Most audio cards use the same audio destination line for speakers and headphones, in which case the mixer device simply uses the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS type. + MIXERLINE_COMPONENTTYPE_DST_HEADPHONES + + + + + Audio line is a destination that will be routed to a telephone line. + MIXERLINE_COMPONENTTYPE_DST_TELEPHONE + + + + + Audio line is a destination that will be the final recording source for the waveform-audio input (ADC). This line typically provides some sort of gain or attenuation. This is the typical component type for the recording line of most audio cards for personal computers. + MIXERLINE_COMPONENTTYPE_DST_WAVEIN + + + + + Audio line is a destination that will be the final recording source for voice input. This component type is exactly like MIXERLINE_COMPONENTTYPE_DST_WAVEIN but is intended specifically for settings used during voice recording/recognition. Support for this line is optional for a mixer device. Many mixer devices provide only MIXERLINE_COMPONENTTYPE_DST_WAVEIN. + MIXERLINE_COMPONENTTYPE_DST_VOICEIN + + + + + Audio line is a source that cannot be defined by one of the standard component types. A mixer device is required to use this component type for line component types that have not been defined by Microsoft Corporation. + MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED + + + + + Audio line is a digital source (for example, digital output from a DAT or audio CD). + MIXERLINE_COMPONENTTYPE_SRC_DIGITAL + + + + + Audio line is a line-level source (for example, line-level input from an external stereo) that can be used as an optional recording source. Because most audio cards for personal computers provide some sort of gain for the recording source line, the mixer device will use the MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY type. + MIXERLINE_COMPONENTTYPE_SRC_LINE + + + + + Audio line is a microphone recording source. Most audio cards for personal computers provide at least two types of recording sources: an auxiliary audio line and microphone input. A microphone audio line typically provides some sort of gain. Audio cards that use a single input for use with a microphone or auxiliary audio line should use the MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE component type. + MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE + + + + + Audio line is a source originating from the output of an internal synthesizer. Most audio cards for personal computers provide some sort of MIDI synthesizer (for example, an Adlib®-compatible or OPL/3 FM synthesizer). + MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER + + + + + Audio line is a source originating from the output of an internal audio CD. This component type is provided for audio cards that provide an audio source line intended to be connected to an audio CD (or CD-ROM playing an audio CD). + MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC + + + + + Audio line is a source originating from an incoming telephone line. + MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE + + + + + Audio line is a source originating from personal computer speaker. Several audio cards for personal computers provide the ability to mix what would typically be played on the internal speaker with the output of an audio card. Some audio cards support the ability to use this output as a recording source. + MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER + + + + + Audio line is a source originating from the waveform-audio output digital-to-analog converter (DAC). Most audio cards for personal computers provide this component type as a source to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination. Some cards also allow this source to be routed to the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT + + + + + Audio line is a source originating from the auxiliary audio line. This line type is intended as a source with gain or attenuation that can be routed to the MIXERLINE_COMPONENTTYPE_DST_SPEAKERS destination and/or recorded from the MIXERLINE_COMPONENTTYPE_DST_WAVEIN destination. + MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY + + + + + Audio line is an analog source (for example, analog output from a video-cassette tape). + MIXERLINE_COMPONENTTYPE_SRC_ANALOG + + + + + Represents a signed mixer control + + + + + Gets details for this contrl + + + + + The value of the control + + + + + Minimum value for this control + + + + + Maximum value for this control + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + + Represents an unsigned mixer control + + + + + Gets the details for this control + + + + + The control value + + + + + The control's minimum value + + + + + The control's maximum value + + + + + Value of the control represented as a percentage + + + + + String Representation for debugging purposes + + + + + Manufacturer codes from mmreg.h + + + + Microsoft Corporation + + + Creative Labs, Inc + + + Media Vision, Inc. + + + Fujitsu Corp. + + + Artisoft, Inc. + + + Turtle Beach, Inc. + + + IBM Corporation + + + Vocaltec LTD. + + + Roland + + + DSP Solutions, Inc. + + + NEC + + + ATI + + + Wang Laboratories, Inc + + + Tandy Corporation + + + Voyetra + + + Antex Electronics Corporation + + + ICL Personal Systems + + + Intel Corporation + + + Advanced Gravis + + + Video Associates Labs, Inc. + + + InterActive Inc + + + Yamaha Corporation of America + + + Everex Systems, Inc + + + Echo Speech Corporation + + + Sierra Semiconductor Corp + + + Computer Aided Technologies + + + APPS Software International + + + DSP Group, Inc + + + microEngineering Labs + + + Computer Friends, Inc. + + + ESS Technology + + + Audio, Inc. + + + Motorola, Inc. + + + Canopus, co., Ltd. + + + Seiko Epson Corporation + + + Truevision + + + Aztech Labs, Inc. + + + Videologic + + + SCALACS + + + Korg Inc. + + + Audio Processing Technology + + + Integrated Circuit Systems, Inc. + + + Iterated Systems, Inc. + + + Metheus + + + Logitech, Inc. + + + Winnov, Inc. + + + NCR Corporation + + + EXAN + + + AST Research Inc. + + + Willow Pond Corporation + + + Sonic Foundry + + + Vitec Multimedia + + + MOSCOM Corporation + + + Silicon Soft, Inc. + + + Supermac + + + Audio Processing Technology + + + Speech Compression + + + Ahead, Inc. + + + Dolby Laboratories + + + OKI + + + AuraVision Corporation + + + Ing C. Olivetti & C., S.p.A. + + + I/O Magic Corporation + + + Matsushita Electric Industrial Co., LTD. + + + Control Resources Limited + + + Xebec Multimedia Solutions Limited + + + New Media Corporation + + + Natural MicroSystems + + + Lyrrus Inc. + + + Compusic + + + OPTi Computers Inc. + + + Adlib Accessories Inc. + + + Compaq Computer Corp. + + + Dialogic Corporation + + + InSoft, Inc. + + + M.P. Technologies, Inc. + + + Weitek + + + Lernout & Hauspie + + + Quanta Computer Inc. + + + Apple Computer, Inc. + + + Digital Equipment Corporation + + + Mark of the Unicorn + + + Workbit Corporation + + + Ositech Communications Inc. + + + miro Computer Products AG + + + Cirrus Logic + + + ISOLUTION B.V. + + + Horizons Technology, Inc + + + Computer Concepts Ltd + + + Voice Technologies Group, Inc. + + + Radius + + + Rockwell International + + + Co. XYZ for testing + + + Opcode Systems + + + Voxware Inc + + + Northern Telecom Limited + + + APICOM + + + Grande Software + + + ADDX + + + Wildcat Canyon Software + + + Rhetorex Inc + + + Brooktree Corporation + + + ENSONIQ Corporation + + + FAST Multimedia AG + + + NVidia Corporation + + + OKSORI Co., Ltd. + + + DiAcoustics, Inc. + + + Gulbransen, Inc. + + + Kay Elemetrics, Inc. + + + Crystal Semiconductor Corporation + + + Splash Studios + + + Quarterdeck Corporation + + + TDK Corporation + + + Digital Audio Labs, Inc. + + + Seer Systems, Inc. + + + PictureTel Corporation + + + AT&T Microelectronics + + + Osprey Technologies, Inc. + + + Mediatrix Peripherals + + + SounDesignS M.C.S. Ltd. + + + A.L. Digital Ltd. + + + Spectrum Signal Processing, Inc. + + + Electronic Courseware Systems, Inc. + + + AMD + + + Core Dynamics + + + CANAM Computers + + + Softsound, Ltd. + + + Norris Communications, Inc. + + + Danka Data Devices + + + EuPhonics + + + Precept Software, Inc. + + + Crystal Net Corporation + + + Chromatic Research, Inc + + + Voice Information Systems, Inc + + + Vienna Systems + + + Connectix Corporation + + + Gadget Labs LLC + + + Frontier Design Group LLC + + + Viona Development GmbH + + + Casio Computer Co., LTD + + + Diamond Multimedia + + + S3 + + + Fraunhofer + + + + Summary description for MmException. + + + + + Creates a new MmException + + The result returned by the Windows API call + The name of the Windows API that failed + + + + Helper function to automatically raise an exception on failure + + The result of the API call + The API function name + + + + Returns the Windows API result + + + + + Windows multimedia error codes from mmsystem.h. + + + + no error, MMSYSERR_NOERROR + + + unspecified error, MMSYSERR_ERROR + + + device ID out of range, MMSYSERR_BADDEVICEID + + + driver failed enable, MMSYSERR_NOTENABLED + + + device already allocated, MMSYSERR_ALLOCATED + + + device handle is invalid, MMSYSERR_INVALHANDLE + + + no device driver present, MMSYSERR_NODRIVER + + + memory allocation error, MMSYSERR_NOMEM + + + function isn't supported, MMSYSERR_NOTSUPPORTED + + + error value out of range, MMSYSERR_BADERRNUM + + + invalid flag passed, MMSYSERR_INVALFLAG + + + invalid parameter passed, MMSYSERR_INVALPARAM + + + handle being used simultaneously on another thread (eg callback),MMSYSERR_HANDLEBUSY + + + specified alias not found, MMSYSERR_INVALIDALIAS + + + bad registry database, MMSYSERR_BADDB + + + registry key not found, MMSYSERR_KEYNOTFOUND + + + registry read error, MMSYSERR_READERROR + + + registry write error, MMSYSERR_WRITEERROR + + + registry delete error, MMSYSERR_DELETEERROR + + + registry value not found, MMSYSERR_VALNOTFOUND + + + driver does not call DriverCallback, MMSYSERR_NODRIVERCB + + + more data to be returned, MMSYSERR_MOREDATA + + + unsupported wave format, WAVERR_BADFORMAT + + + still something playing, WAVERR_STILLPLAYING + + + header not prepared, WAVERR_UNPREPARED + + + device is synchronous, WAVERR_SYNC + + + Conversion not possible (ACMERR_NOTPOSSIBLE) + + + Busy (ACMERR_BUSY) + + + Header Unprepared (ACMERR_UNPREPARED) + + + Cancelled (ACMERR_CANCELED) + + + invalid line (MIXERR_INVALLINE) + + + invalid control (MIXERR_INVALCONTROL) + + + invalid value (MIXERR_INVALVALUE) + + + diff --git a/parseManager/bin/Release/parseManagerTester.exe.config b/parseManager/bin/Release/parseManagerTester.exe.config index 970c80b..52737ff 100644 --- a/parseManager/bin/Release/parseManagerTester.exe.config +++ b/parseManager/bin/Release/parseManagerTester.exe.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/parseManager/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/parseManager/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/parseManager/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/parseManager/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Debug/parseManagerTester.csproj.FileListAbsolute.txt b/parseManager/obj/Debug/parseManagerTester.csproj.FileListAbsolute.txt index 49a3783..38a0b50 100644 --- a/parseManager/obj/Debug/parseManagerTester.csproj.FileListAbsolute.txt +++ b/parseManager/obj/Debug/parseManagerTester.csproj.FileListAbsolute.txt @@ -4,5 +4,7 @@ C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debu C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\parseManagerTester.pdb C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\obj\Debug\parseManagerTester.exe C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\obj\Debug\parseManagerTester.pdb -C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\CSCore.dll -C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\CSCore.xml +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\NAudio.dll +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\NAudio.xml +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\Vulkan.dll +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Debug\Vulkan.Windows.dll diff --git a/parseManager/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/parseManager/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/parseManager/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/parseManager/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/parseManager/obj/Release/parseManagerTester.csproj.FileListAbsolute.txt b/parseManager/obj/Release/parseManagerTester.csproj.FileListAbsolute.txt index fc60030..9488b1c 100644 --- a/parseManager/obj/Release/parseManagerTester.csproj.FileListAbsolute.txt +++ b/parseManager/obj/Release/parseManagerTester.csproj.FileListAbsolute.txt @@ -1,6 +1,8 @@ C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\parseManagerTester.exe.config C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\parseManagerTester.exe -C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\CSCore.dll -C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\CSCore.xml C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\obj\Release\parseManagerTester.csprojResolveAssemblyReference.cache C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\obj\Release\parseManagerTester.exe +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\NAudio.dll +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\Vulkan.dll +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\Vulkan.Windows.dll +C:\Users\Ryan\Documents\SharpDevelop Projects\parseManager\parseManager\bin\Release\NAudio.xml diff --git a/parseManager/packages.config b/parseManager/packages.config index 289c3be..ea7d25c 100644 --- a/parseManager/packages.config +++ b/parseManager/packages.config @@ -2,5 +2,7 @@ + + \ No newline at end of file diff --git a/parseManager/parseManager.cs b/parseManager/parseManager.cs index a267ccd..3044172 100644 --- a/parseManager/parseManager.cs +++ b/parseManager/parseManager.cs @@ -4,17 +4,17 @@ * Time: 11:54 AM */ using System; +using System.Diagnostics; using System.IO; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using System.Reflection; -using CSCore; -using CSCore.Codecs; -using CSCore.SoundOut; -using parseManagerCS; using System.Threading; +using System.Windows.Input; using FancyPrintCS; +using NAudio.Wave; +using parseManagerCS; namespace parseManagerCS { /// The parseManager is an Advance Config Script @@ -22,6 +22,7 @@ namespace parseManagerCS /// This also has very flexible flow control meaning you can use it for chat logic and such public class parseManager { + public string _VERSION = "1.0"; standardDefine _invoke = new standardDefine(); string _filepath; bool _active = true; @@ -29,6 +30,7 @@ namespace parseManagerCS string _entry = "START"; bool _isInternal; Type _defineType; + bool isThread; standardDefine def = new standardDefine(); MethodInfo _defineMethod; object _defineClassObject; @@ -42,6 +44,7 @@ namespace parseManagerCS Dictionary _methods = new Dictionary(); void INITENV() { + GLOBALS.SetPM(this); _mainENV["Color_Black"] = ConsoleColor.Black; _mainENV["Color_Blue"] = ConsoleColor.Blue; _mainENV["Color_Cyan"] = ConsoleColor.Cyan; @@ -63,6 +66,12 @@ namespace parseManagerCS { _mainENV = env; } + public void makeThread(){ + isThread=true; + } + public bool isAThread(){ + return isThread; + } public parseManager(string filepath) { InitFlags(); @@ -129,6 +138,7 @@ namespace parseManagerCS _flags.Add("forseelabels", true); _flags.Add("debugging", false); _flags.Add("topdown", true); + _flags.Add("casesensitive", true); } public ENV Pop() { @@ -153,11 +163,19 @@ namespace parseManagerCS Parse(m.Groups[1].ToString()); } foreach (Match m in Regex.Matches(data, @"ENABLE ([a-zA-Z0-9_\./]+)")) { - _flags[m.Groups[1].ToString()] = true; + _flags[m.Groups[1].ToString().ToLower()] = true; + } + foreach (Match m in Regex.Matches(data, @"DISABLE ([a-zA-Z0-9_\./]+)")) { + _flags[m.Groups[1].ToString().ToLower()] = false; } foreach (Match m in Regex.Matches(data, @"ENTRY ([a-zA-Z0-9_\./]+)")) { _entry = m.Groups[1].ToString(); } + foreach (Match m in Regex.Matches(data, @"VERSION ([a-zA-Z0-9_\./]+)")) { + if (Version.Parse(m.Groups[1].ToString()) != Version.Parse(_VERSION)) { + PushError("Attempt to run a code created for a different version of the interperter/compiler!"); + } + } // foreach (Match m in Regex.Matches(data, @"USING ([a-zA-Z0-9_\./]+)")) { // m.Groups[1].ToString(); // } @@ -237,7 +255,7 @@ namespace parseManagerCS } return false; } - public object InvokeI(string method, object[] argsV, chunk c) + public object InvokeI(string method, object[] argsV, chunk c,bool rets) { var ccP = _currentChunk.GetPos(); var ccN = _currentChunk.GetName(); @@ -259,13 +277,17 @@ namespace parseManagerCS } _defualtENV = fEnv; def.JUMP(this, method); - return fEnv; // TODO Handle returns + if(rets){ + return fEnv; // TODO Handle returns + } else { + return null; + } } public object InvokeR(string method, object[] args) { chunk c; if (isRegisteredFunction(method, out c)) { - return InvokeI(method, args, c); + return InvokeI(method, args, c, true); } try { _defineMethod = _defineType.GetMethod(method); @@ -279,7 +301,7 @@ namespace parseManagerCS { chunk c; if (isRegisteredFunction(method, out c)) { - InvokeI(method, args, c); + InvokeI(method, args, c, false); return 0; } try { @@ -1022,6 +1044,9 @@ namespace parseManagerCS public object this[string ind] { get { object obj; + if (!GLOBALS.GetFlag("casesensitive")) { + ind = ind.ToLower(); + } if (_vars.TryGetValue(ind, out obj)) { return obj; } @@ -1031,6 +1056,9 @@ namespace parseManagerCS return null; } set { + if (!GLOBALS.GetFlag("casesensitive")) { + ind = ind.ToLower(); + } _vars[ind] = value; } } @@ -1116,6 +1144,20 @@ namespace parseManagerCS static parseManager _current; static readonly ENV _env = new ENV(); static List _numvars = new List(); + static List _Threads = new List(); + public static void AddThread(parseManager PM) + { + _Threads.Add(PM); + } + public static void FixThreads(parseManager PM) + { + var PMS = _Threads.ToArray(); + var env = PM.GetDENV(); + for (int i = 0; i < PMS.Length; i++) { + PMS[i]._SetDENV(env); + PMS[i].SetENV(env); + } + } public static void WriteToBinaryFile(string filePath, ENV objectToWrite, bool append = false) { using (Stream stream = File.Open(filePath, append ? FileMode.Append : FileMode.Create)) { @@ -1150,6 +1192,11 @@ namespace parseManagerCS { return _current; } + public static bool GetFlag(string flag) + { + var PM = GetPM(); + return PM.GetFlag(flag); + } public static void Add_Var(string var) { if (!_numvars.Contains(var)) { @@ -1215,8 +1262,11 @@ namespace parseManagerCS } public class standardDefine { - double count; + List devices = new List(); + int count = -1; Random rnd = new Random(); + int origRow = Console.CursorTop; + int origCol = Console.CursorLeft; public void newThread(parseManager PM, string Block) { var thread = new Thread(() => _THREAD(Block, PM)); @@ -1240,6 +1290,8 @@ public class standardDefine PM = new parseManager(path, define); } } + GLOBALS.AddThread(PM); + PM.makeThread(); PM._SetDENV(_PM.GetDENV()); PM.SetENV(_PM.GetENV()); nextType next = PM.Next(block); @@ -1251,6 +1303,9 @@ public class standardDefine } public void SAVE(parseManager PM) { + if(PM.isAThread()){ + PM.PushError("Cannot Call SAVE() in a thread!"); + } var env = PM.GetDENV(); var c = PM.GetCurrentChunk(); env["__CurrentChunkName"] = c.GetName(); @@ -1260,6 +1315,9 @@ public class standardDefine } public bool LOAD(parseManager PM) { + if(PM.isAThread()){ + PM.PushError("Cannot Call LOAD() in a thread!"); + } try { ENV env = GLOBALS.ReadFromBinaryFile("savedata.dat"); var name = (string)env["__CurrentChunkName"]; @@ -1269,6 +1327,7 @@ public class standardDefine PM.SetENV(denv); PM.SetBlock(name); PM.GetCurrentChunk().SetPos(pos); + GLOBALS.FixThreads(PM); return true; } catch { return false; @@ -1284,10 +1343,12 @@ public class standardDefine } public void EXIT(parseManager PM) { + cleanUpAudio(); PM.Deactivate(); } public void QUIT(parseManager PM) { + cleanUpAudio(); Environment.Exit(0); } public void setENV(parseManager PM, ENV env) @@ -1455,67 +1516,189 @@ public class standardDefine { Console.Beep(); } - public void fancy(parseManager PM, string form, string msg) + public void fancy(parseManager PM, string msg) { - Fancy.SetForm(form); Fancy.Print(msg); } - ISoundOut GetSoundOut() + public void setFancyForm(parseManager PM, string form) { - if (WasapiOut.IsSupportedOnCurrentPlatform) - return new WasapiOut(); - else - return new DirectSoundOut(); + Fancy.SetForm(form); } - IWaveSource GetSoundSource(string path) + public void setFancyType(parseManager PM, double f) { - return CodecFactory.Instance.GetCodec(path); - } - public void _load() - { - string path = (string)GLOBALS.GetData("__MUSIC"); - double id = (double)GLOBALS.GetData("__MUSICH"); - using (IWaveSource soundSource = GetSoundSource(path)) { - using (ISoundOut soundOut = GetSoundOut()) { - soundOut.Initialize(soundSource); - GLOBALS.AddData("__MUSICH" + id, soundOut); - while (true) { - Thread.Sleep(100); - } - } - } + Fancy.SetFVar((int)f); } public void stopSong(parseManager PM, double id) { - var sound = (ISoundOut)GLOBALS.GetData("__MUSICH" + id); - sound.Stop(); + devices[(int)id].Stop(); } public void playSong(parseManager PM, double id) { - var sound = (ISoundOut)GLOBALS.GetData("__MUSICH" + id); - sound.Play(); + devices[(int)id].Play(); } public void resumeSong(parseManager PM, double id) { - var sound = (ISoundOut)GLOBALS.GetData("__MUSICH" + id); - sound.Resume(); + devices[(int)id].Play(); } public void setSongVolume(parseManager PM, double id, double vol) { - var sound = (ISoundOut)GLOBALS.GetData("__MUSICH" + id); - sound.Volume = (float)vol; + devices[(int)id].Volume = (float)vol; } public void pauseSong(parseManager PM, double id) { - var sound = (ISoundOut)GLOBALS.GetData("__MUSICH" + id); - sound.Pause(); + devices[(int)id].Pause(); + } + public void replaySong(parseManager PM, double id) + { + devices[(int)id].Stop(); + devices[(int)id].Play(); } public double loadSong(parseManager PM, string filepath) { - GLOBALS.AddData("__MUSIC", filepath); - GLOBALS.AddData("__MUSICH", count++); - var oThread = new Thread(new ThreadStart(_load)); - oThread.Start(); - return count - 1; + count++; + devices.Add(new WaveOut()); + var temp = new AudioFileReader(filepath); + devices[count].Init(temp); + return count; } + void cleanUpAudio() + { + for (int i = 0; i < devices.Count; i++) { + devices[i].Stop(); + devices[i].Dispose(); + } + } + public void setPosition(parseManager PM, double x, double y) + { + Console.SetCursorPosition((int)x, (int)y); + } + public void writeAt(parseManager PM, string s, double x, double y) + { + try { + Console.SetCursorPosition(origCol + (int)x, origRow + (int)y); + Console.Write(s); + } catch (ArgumentOutOfRangeException e) { + Console.Clear(); + Console.WriteLine(e.Message); + } + } + public bool isDown(parseManager PM, string key) + { + if (!ApplicationIsActivated()) { + return false; + } + Key kk = Key.Zoom; + var k = key.ToUpper(); + if (k == "A") { + kk = Key.A; + } else if (k == "B") { + kk = Key.B; + } else if (k == "C") { + kk = Key.C; + } else if (k == "D") { + kk = Key.D; + } else if (k == "E") { + kk = Key.E; + } else if (k == "F") { + kk = Key.F; + } else if (k == "G") { + kk = Key.G; + } else if (k == "H") { + kk = Key.H; + } else if (k == "I") { + kk = Key.I; + } else if (k == "J") { + kk = Key.J; + } else if (k == "K") { + kk = Key.K; + } else if (k == "L") { + kk = Key.L; + } else if (k == "M") { + kk = Key.M; + } else if (k == "N") { + kk = Key.N; + } else if (k == "O") { + kk = Key.O; + } else if (k == "P") { + kk = Key.P; + } else if (k == "Q") { + kk = Key.Q; + } else if (k == "R") { + kk = Key.R; + } else if (k == "S") { + kk = Key.S; + } else if (k == "T") { + kk = Key.T; + } else if (k == "U") { + kk = Key.U; + } else if (k == "V") { + kk = Key.V; + } else if (k == "W") { + kk = Key.W; + } else if (k == "X") { + kk = Key.X; + } else if (k == "Y") { + kk = Key.Y; + } else if (k == "Z") { + kk = Key.Z; + } else if (k == "{UP}") { + kk = Key.Up; + } else if (k == "{DOWN}") { + kk = Key.Down; + } else if (k == "{LEFT}") { + kk = Key.Left; + } else if (k == "{RIGHT}") { + kk = Key.Right; + } else if (k == "{ENTER}") { + kk = Key.Enter; + } else if (k == "{LSHIFT}") { + kk = Key.LeftShift; + } else if (k == "{RSHIFT}") { + kk = Key.RightShift; + } else if (k == "0") { + kk = Key.D0; + } else if (k == "1") { + kk = Key.D1; + } else if (k == "2") { + kk = Key.D2; + } else if (k == "3") { + kk = Key.D3; + } else if (k == "4") { + kk = Key.D4; + } else if (k == "5") { + kk = Key.D5; + } else if (k == "6") { + kk = Key.D6; + } else if (k == "7") { + kk = Key.D7; + } else if (k == "8") { + kk = Key.D8; + } else if (k == "9") { + kk = Key.D9; + } else if (k == "{SPACE}") { + kk = Key.Space; + } + return Keyboard.IsKeyDown(kk); + } + public string isPressing(parseManager PM) + { + return Console.ReadKey(true).Key.ToString(); + } + public static bool ApplicationIsActivated() + { + var activatedHandle = GetForegroundWindow(); + if (activatedHandle == IntPtr.Zero) { + return false; // No window is currently activated + } else { + var procId = Process.GetCurrentProcess().Id; + int activeProcId; + GetWindowThreadProcessId(activatedHandle, out activeProcId); + return activeProcId == procId; + } + } + [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] + static extern IntPtr GetForegroundWindow(); + + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + static extern int GetWindowThreadProcessId(IntPtr handle, out int processId); } \ No newline at end of file diff --git a/parseManager/parseManagerTester.csproj b/parseManager/parseManagerTester.csproj index 9e498d0..2552780 100644 --- a/parseManager/parseManagerTester.csproj +++ b/parseManager/parseManagerTester.csproj @@ -8,8 +8,9 @@ Exe parseManager parseManagerTester - v4.0 + v4.5.2 Properties + x86 @@ -31,12 +32,12 @@ TRACE - - ..\packages\CSCore.1.2.1.1\lib\net35-client\CSCore.dll - 4.0 + + ..\packages\NAudio.1.8.2\lib\net35\NAudio.dll + 3.0 @@ -55,6 +56,12 @@ 3.5 + + ..\packages\VulkanSharp.0.1.8\lib\net452\Vulkan.dll + + + ..\packages\VulkanSharp.0.1.8\lib\net452\Vulkan.Windows.dll + 3.0