mirror of
https://github.com/raylib-cs/raylib-cs
synced 2025-04-03 11:09:40 -04:00
124 lines
3.0 KiB
C#
124 lines
3.0 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Raylib_cs
|
|
{
|
|
/// <summary>
|
|
/// Wave type, defines audio wave data
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public unsafe partial struct Wave
|
|
{
|
|
/// <summary>
|
|
/// Number of samples
|
|
/// </summary>
|
|
public uint sampleCount;
|
|
|
|
/// <summary>
|
|
/// Frequency (samples per second)
|
|
/// </summary>
|
|
public uint sampleRate;
|
|
|
|
/// <summary>
|
|
/// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
|
|
/// </summary>
|
|
public uint sampleSize;
|
|
|
|
/// <summary>
|
|
/// Number of channels (1-mono, 2-stereo)
|
|
/// </summary>
|
|
public uint channels;
|
|
|
|
//TODO: SPAN<byte> ?
|
|
/// <summary>
|
|
/// Buffer data pointer
|
|
/// </summary>
|
|
public void* data;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Audio stream type<br/>
|
|
/// NOTE: Useful to create custom audio streams not bound to a specific file
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public partial struct AudioStream
|
|
{
|
|
//TODO: convert
|
|
/// <summary>
|
|
/// Pointer to internal data(rAudioBuffer *) used by the audio system
|
|
/// </summary>
|
|
public IntPtr buffer;
|
|
|
|
/// <summary>
|
|
/// Pointer to internal data processor, useful for audio effects
|
|
/// </summary>
|
|
public IntPtr processor;
|
|
|
|
/// <summary>
|
|
/// Frequency (samples per second)
|
|
/// </summary>
|
|
public uint sampleRate;
|
|
|
|
/// <summary>
|
|
/// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
|
|
/// </summary>
|
|
public uint sampleSize;
|
|
|
|
/// <summary>
|
|
/// Number of channels (1-mono, 2-stereo)
|
|
/// </summary>
|
|
public uint channels;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sound source type
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public partial struct Sound
|
|
{
|
|
/// <summary>
|
|
/// Audio stream
|
|
/// </summary>
|
|
public AudioStream stream;
|
|
|
|
/// <summary>
|
|
/// Total number of frames (considering channels)
|
|
/// </summary>
|
|
public uint frameCount;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Music stream type (audio file streaming from memory)<br/>
|
|
/// NOTE: Anything longer than ~10 seconds should be streamed
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public unsafe partial struct Music
|
|
{
|
|
/// <summary>
|
|
/// Audio stream
|
|
/// </summary>
|
|
public AudioStream stream;
|
|
|
|
/// <summary>
|
|
/// Total number of samples
|
|
/// </summary>
|
|
public uint frameCount;
|
|
|
|
/// <summary>
|
|
/// Music looping enable
|
|
/// </summary>
|
|
public CBool looping;
|
|
|
|
/// <summary>
|
|
/// Type of music context (audio filetype)
|
|
/// </summary>
|
|
public int ctxType;
|
|
|
|
//TODO span
|
|
/// <summary>
|
|
/// Audio context data, depends on type
|
|
/// </summary>
|
|
public void* ctxData;
|
|
}
|
|
}
|