#define MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE (1U << 1) /* If set, this is supported in exclusive mode. Otherwise not natively supported by exclusive mode. */
#define MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE (1U << 1) /* If set, this is supported in exclusive mode. Otherwise not natively supported by exclusive mode. */
#ifndef MA_MAX_DEVICE_NAME_LENGTH
#define MA_MAX_DEVICE_NAME_LENGTH 255
#endif
typedef struct
typedef struct
{
{
/* Basic info. This is the only information guaranteed to be filled in during device enumeration. */
/* Basic info. This is the only information guaranteed to be filled in during device enumeration. */
ma_device_id id;
ma_device_id id;
char name[256];
char name[MA_MAX_DEVICE_NAME_LENGTH + 1]; /* +1 for null terminator. */
ma_bool32 isDefault;
ma_bool32 isDefault;
ma_uint32 nativeDataFormatCount;
ma_uint32 nativeDataFormatCount;
...
@@ -6644,7 +6648,7 @@ struct ma_device
...
@@ -6644,7 +6648,7 @@ struct ma_device
struct
struct
{
{
ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */
ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */
char name[256]; /* Maybe temporary. Likely to be replaced with a query API. */
char name[MA_MAX_DEVICE_NAME_LENGTH + 1]; /* Maybe temporary. Likely to be replaced with a query API. */
ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */
ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */
ma_format format;
ma_format format;
ma_uint32 channels;
ma_uint32 channels;
...
@@ -6665,7 +6669,7 @@ struct ma_device
...
@@ -6665,7 +6669,7 @@ struct ma_device
struct
struct
{
{
ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */
ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */
char name[256]; /* Maybe temporary. Likely to be replaced with a query API. */
char name[MA_MAX_DEVICE_NAME_LENGTH + 1]; /* Maybe temporary. Likely to be replaced with a query API. */
ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */
ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */
ma_format format;
ma_format format;
ma_uint32 channels;
ma_uint32 channels;
...
@@ -7855,7 +7859,8 @@ MA_SUCCESS if successful; any other error code otherwise.
...
@@ -7855,7 +7859,8 @@ MA_SUCCESS if successful; any other error code otherwise.
Thread Safety
Thread Safety
-------------
-------------
Unsafe. This should be considered unsafe because it may be calling into the backend.
Unsafe. This should be considered unsafe because it may be calling into the backend which may or
may not be safe.
Callback Safety
Callback Safety
...
@@ -7866,6 +7871,59 @@ which may or may not be safe.
...
@@ -7866,6 +7871,59 @@ which may or may not be safe.