📄 snd_next.m
字号:
*dmaSize /* dmaSize */ = /* *dmaSize */ OutP->dmaSize;
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &OutP->successType != * (int *) &successCheck)
#else UseStaticMsgType
if ((OutP->successType.msg_type_inline != TRUE) ||
(OutP->successType.msg_type_longform != FALSE) ||
(OutP->successType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(OutP->successType.msg_type_number != 1) ||
(OutP->successType.msg_type_size != 32))
#endif UseStaticMsgType
return MIG_TYPE_ERROR;
#endif TypeCheck
*success /* success */ = /* *success */ OutP->success;
return OutP->RetCode;
}
/* Routine Release */
mig_external kern_return_t ntsoundRelease (
port_t kern_serv_port,
port_t owner_port)
{
typedef struct {
msg_header_t Head;
msg_type_t owner_portType;
port_t owner_port;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
} Reply;
union {
Request In;
Reply Out;
} Mess;
register Request *InP = &Mess.In;
register Reply *OutP = &Mess.Out;
msg_return_t msg_result;
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size = 32;
#if UseStaticMsgType
static const msg_type_t owner_portType = {
/* msg_type_name = */ MSG_TYPE_PORT,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0,
};
#endif UseStaticMsgType
#if UseStaticMsgType
static const msg_type_t RetCodeCheck = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0
};
#endif UseStaticMsgType
#if UseStaticMsgType
InP->owner_portType = owner_portType;
#else UseStaticMsgType
InP->owner_portType.msg_type_name = MSG_TYPE_PORT;
InP->owner_portType.msg_type_size = 32;
InP->owner_portType.msg_type_number = 1;
InP->owner_portType.msg_type_inline = TRUE;
InP->owner_portType.msg_type_longform = FALSE;
InP->owner_portType.msg_type_deallocate = FALSE;
#endif UseStaticMsgType
InP->owner_port /* owner_port */ = /* owner_port */ owner_port;
InP->Head.msg_simple = FALSE;
InP->Head.msg_size = msg_size;
InP->Head.msg_type = MSG_TYPE_NORMAL | MSG_TYPE_RPC;
InP->Head.msg_request_port = kern_serv_port;
InP->Head.msg_reply_port = mig_get_reply_port();
InP->Head.msg_id = 1009;
msg_result = msg_rpc(&InP->Head, MSG_OPTION_NONE, sizeof(Reply), 0, 0);
if (msg_result != RPC_SUCCESS) {
if (msg_result == RCV_INVALID_PORT)
mig_dealloc_reply_port();
return msg_result;
}
#if TypeCheck
msg_size = OutP->Head.msg_size;
msg_simple = OutP->Head.msg_simple;
#endif TypeCheck
if (OutP->Head.msg_id != 1109)
return MIG_REPLY_MISMATCH;
#if TypeCheck
if (((msg_size != 32) || (msg_simple != TRUE)) &&
((msg_size != sizeof(death_pill_t)) ||
(msg_simple != TRUE) ||
(OutP->RetCode == KERN_SUCCESS)))
return MIG_TYPE_ERROR;
#endif TypeCheck
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &OutP->RetCodeType != * (int *) &RetCodeCheck)
#else UseStaticMsgType
if ((OutP->RetCodeType.msg_type_inline != TRUE) ||
(OutP->RetCodeType.msg_type_longform != FALSE) ||
(OutP->RetCodeType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(OutP->RetCodeType.msg_type_number != 1) ||
(OutP->RetCodeType.msg_type_size != 32))
#endif UseStaticMsgType
return MIG_TYPE_ERROR;
#endif TypeCheck
if (OutP->RetCode != KERN_SUCCESS)
return OutP->RetCode;
return OutP->RetCode;
}
/* Routine Start */
mig_external kern_return_t ntsoundStart (
port_t kern_serv_port,
port_t owner_port)
{
typedef struct {
msg_header_t Head;
msg_type_t owner_portType;
port_t owner_port;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
} Reply;
union {
Request In;
Reply Out;
} Mess;
register Request *InP = &Mess.In;
register Reply *OutP = &Mess.Out;
msg_return_t msg_result;
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size = 32;
#if UseStaticMsgType
static const msg_type_t owner_portType = {
/* msg_type_name = */ MSG_TYPE_PORT,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0,
};
#endif UseStaticMsgType
#if UseStaticMsgType
static const msg_type_t RetCodeCheck = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0
};
#endif UseStaticMsgType
#if UseStaticMsgType
InP->owner_portType = owner_portType;
#else UseStaticMsgType
InP->owner_portType.msg_type_name = MSG_TYPE_PORT;
InP->owner_portType.msg_type_size = 32;
InP->owner_portType.msg_type_number = 1;
InP->owner_portType.msg_type_inline = TRUE;
InP->owner_portType.msg_type_longform = FALSE;
InP->owner_portType.msg_type_deallocate = FALSE;
#endif UseStaticMsgType
InP->owner_port /* owner_port */ = /* owner_port */ owner_port;
InP->Head.msg_simple = FALSE;
InP->Head.msg_size = msg_size;
InP->Head.msg_type = MSG_TYPE_NORMAL | MSG_TYPE_RPC;
InP->Head.msg_request_port = kern_serv_port;
InP->Head.msg_reply_port = mig_get_reply_port();
InP->Head.msg_id = 1010;
msg_result = msg_rpc(&InP->Head, MSG_OPTION_NONE, sizeof(Reply), 0, 0);
if (msg_result != RPC_SUCCESS) {
if (msg_result == RCV_INVALID_PORT)
mig_dealloc_reply_port();
return msg_result;
}
#if TypeCheck
msg_size = OutP->Head.msg_size;
msg_simple = OutP->Head.msg_simple;
#endif TypeCheck
if (OutP->Head.msg_id != 1110)
return MIG_REPLY_MISMATCH;
#if TypeCheck
if (((msg_size != 32) || (msg_simple != TRUE)) &&
((msg_size != sizeof(death_pill_t)) ||
(msg_simple != TRUE) ||
(OutP->RetCode == KERN_SUCCESS)))
return MIG_TYPE_ERROR;
#endif TypeCheck
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &OutP->RetCodeType != * (int *) &RetCodeCheck)
#else UseStaticMsgType
if ((OutP->RetCodeType.msg_type_inline != TRUE) ||
(OutP->RetCodeType.msg_type_longform != FALSE) ||
(OutP->RetCodeType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(OutP->RetCodeType.msg_type_number != 1) ||
(OutP->RetCodeType.msg_type_size != 32))
#endif UseStaticMsgType
return MIG_TYPE_ERROR;
#endif TypeCheck
if (OutP->RetCode != KERN_SUCCESS)
return OutP->RetCode;
return OutP->RetCode;
}
/* Routine Stop */
mig_external kern_return_t ntsoundStop (
port_t kern_serv_port,
port_t owner_port)
{
typedef struct {
msg_header_t Head;
msg_type_t owner_portType;
port_t owner_port;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
} Reply;
union {
Request In;
Reply Out;
} Mess;
register Request *InP = &Mess.In;
register Reply *OutP = &Mess.Out;
msg_return_t msg_result;
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size = 32;
#if UseStaticMsgType
static const msg_type_t owner_portType = {
/* msg_type_name = */ MSG_TYPE_PORT,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0,
};
#endif UseStaticMsgType
#if UseStaticMsgType
static const msg_type_t RetCodeCheck = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0
};
#endif UseStaticMsgType
#if UseStaticMsgType
InP->owner_portType = owner_portType;
#else UseStaticMsgType
InP->owner_portType.msg_type_name = MSG_TYPE_PORT;
InP->owner_portType.msg_type_size = 32;
InP->owner_portType.msg_type_number = 1;
InP->owner_portType.msg_type_inline = TRUE;
InP->owner_portType.msg_type_longform = FALSE;
InP->owner_portType.msg_type_deallocate = FALSE;
#endif UseStaticMsgType
InP->owner_port /* owner_port */ = /* owner_port */ owner_port;
InP->Head.msg_simple = FALSE;
InP->Head.msg_size = msg_size;
InP->Head.msg_type = MSG_TYPE_NORMAL | MSG_TYPE_RPC;
InP->Head.msg_request_port = kern_serv_port;
InP->Head.msg_reply_port = mig_get_reply_port();
InP->Head.msg_id = 1011;
msg_result = msg_rpc(&InP->Head, MSG_OPTION_NONE, sizeof(Reply), 0, 0);
if (msg_result != RPC_SUCCESS) {
if (msg_result == RCV_INVALID_PORT)
mig_dealloc_reply_port();
return msg_result;
}
#if TypeCheck
msg_size = OutP->Head.msg_size;
msg_simple = OutP->Head.msg_simple;
#endif TypeCheck
if (OutP->Head.msg_id != 1111)
return MIG_REPLY_MISMATCH;
#if TypeCheck
if (((msg_size != 32) || (msg_simple != TRUE)) &&
((msg_size != sizeof(death_pill_t)) ||
(msg_simple != TRUE) ||
(OutP->RetCode == KERN_SUCCESS)))
return MIG_TYPE_ERROR;
#endif TypeCheck
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &OutP->RetCodeType != * (int *) &RetCodeCheck)
#else UseStaticMsgType
if ((OutP->RetCodeType.msg_type_inline != TRUE) ||
(OutP->RetCodeType.msg_type_longform != FALSE) ||
(OutP->RetCodeType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(OutP->RetCodeType.msg_type_number != 1) ||
(OutP->RetCodeType.msg_type_size != 32))
#endif UseStaticMsgType
return MIG_TYPE_ERROR;
#endif TypeCheck
if (OutP->RetCode != KERN_SUCCESS)
return OutP->RetCode;
return OutP->RetCode;
}
/* Routine Config */
mig_external kern_return_t ntsoundConfig (
port_t kern_serv_port,
port_t owner_port,
int channelCount,
int samplingRate,
int encoding,
int useInterrupts)
{
typedef struct {
msg_header_t Head;
msg_type_t owner_portType;
port_t owner_port;
msg_type_t channelCountType;
int channelCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -