diff --git a/src/voice/voicecontread2.c b/src/voice/voicecontread2.c index 3808c7b..a204ffc 100644 --- a/src/voice/voicecontread2.c +++ b/src/voice/voicecontread2.c @@ -5,16 +5,14 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define READ2FORMAT(p) ((__OSVoiceRead2Format*)(ptr)) +#define READ2FORMAT(ptr) ((__OSVoiceRead2Format*)(ptr)) s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; u8 status; int i; u8* ptr; - int retry; - - retry = 2; + int retry = 2; __osSiGetAccess(); @@ -26,7 +24,7 @@ s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_READ2_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -61,7 +59,7 @@ s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { ret = CONT_ERR_CONTRFAIL; } } else { - bcopy(&READ2FORMAT(ptr)->data, buffer, ARRLEN(READ2FORMAT(ptr)->data)); + bcopy(READ2FORMAT(ptr)->data, buffer, ARRLEN(READ2FORMAT(ptr)->data)); } } else { ret = CONT_ERR_NO_CONTROLLER; diff --git a/src/voice/voicecontread36.c b/src/voice/voicecontread36.c index 6c1677e..c537aff 100644 --- a/src/voice/voicecontread36.c +++ b/src/voice/voicecontread36.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define READ36FORMAT(p) ((__OSVoiceRead36Format*)(ptr)) +#define READ36FORMAT(ptr) ((__OSVoiceRead36Format*)(ptr)) s32 __osVoiceContRead36(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; @@ -24,7 +24,7 @@ s32 __osVoiceContRead36(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_READ36_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; diff --git a/src/voice/voicecontwrite20.c b/src/voice/voicecontwrite20.c index 53b78eb..d1a7446 100644 --- a/src/voice/voicecontwrite20.c +++ b/src/voice/voicecontwrite20.c @@ -5,18 +5,16 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define WRITE20FORMAT(p) ((__OSVoiceWrite20Format*)(ptr)) +#define WRITE20FORMAT(ptr) ((__OSVoiceWrite20Format*)(ptr)) s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; u8 status; int i; u8* ptr; - int retry; + int retry = 2; u8 crc; - retry = 2; - __osSiGetAccess(); do { @@ -27,7 +25,7 @@ s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) __osContLastCmd = CONT_CMD_WRITE20_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -45,15 +43,15 @@ s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) WRITE20FORMAT(ptr)->addrh = address >> 3; WRITE20FORMAT(ptr)->addrl = (address << 5) | __osContAddressCrc(address); - bcopy(buffer, &WRITE20FORMAT(ptr)->data, 20); + bcopy(buffer, WRITE20FORMAT(ptr)->data, ARRLEN(WRITE20FORMAT(ptr)->data)); ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); - crc = __osVoiceContDataCrc(buffer, 20); + crc = __osVoiceContDataCrc(buffer, ARRLEN(WRITE20FORMAT(ptr)->data)); osRecvMesg(mq, NULL, OS_MESG_BLOCK); ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); - ret = (WRITE20FORMAT(ptr)->rxsize & 0xC0) >> 4; + ret = CHNL_ERR(*WRITE20FORMAT(ptr)); if (ret == 0) { if (crc != WRITE20FORMAT(ptr)->datacrc) { diff --git a/src/voice/voicecontwrite4.c b/src/voice/voicecontwrite4.c index 949952c..6f00586 100644 --- a/src/voice/voicecontwrite4.c +++ b/src/voice/voicecontwrite4.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define WRITE4FORMAT(p) ((__OSVoiceWrite4Format*)(ptr)) +#define WRITE4FORMAT(ptr) ((__OSVoiceWrite4Format*)(ptr)) s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; @@ -25,7 +25,7 @@ s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_WRITE4_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -43,15 +43,15 @@ s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { WRITE4FORMAT(ptr)->addrh = address >> 3; WRITE4FORMAT(ptr)->addrl = (address << 5) | __osContAddressCrc(address); - bcopy(buffer, &WRITE4FORMAT(ptr)->data, 4); + bcopy(buffer, WRITE4FORMAT(ptr)->data, ARRLEN(WRITE4FORMAT(ptr)->data)); ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); - crc = __osVoiceContDataCrc(buffer, 4); + crc = __osVoiceContDataCrc(buffer, ARRLEN(WRITE4FORMAT(ptr)->data)); osRecvMesg(mq, NULL, OS_MESG_BLOCK); ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); - ret = (WRITE4FORMAT(ptr)->rxsize & 0xC0) >> 4; + ret = CHNL_ERR(*WRITE4FORMAT(ptr)); if (ret == 0) { if (crc != WRITE4FORMAT(ptr)->datacrc) { diff --git a/src/voice/voicegetstatus.c b/src/voice/voicegetstatus.c index 966e539..e7328c1 100644 --- a/src/voice/voicegetstatus.c +++ b/src/voice/voicegetstatus.c @@ -17,7 +17,7 @@ s32 __osVoiceGetStatus(OSMesgQueue* mq, s32 port, u8* status) { if (ret != CONT_ERR_CONTRFAIL) { __osContPifRam.pifstatus = CONT_CMD_EXE; - for (i = 0; i < port; i++, *ptr++ = 0) { + for (i = 0; i < port; i++, *ptr++ = CONT_CMD_REQUEST_STATUS) { ; } diff --git a/src/voice/voicesetadconverter.c b/src/voice/voicesetadconverter.c index 7dcbaf0..d1c5eb2 100644 --- a/src/voice/voicesetadconverter.c +++ b/src/voice/voicesetadconverter.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define SWRITEFORMAT(p) ((__OSVoiceSWriteFormat*)(p)) +#define SWRITEFORMAT(ptr) ((__OSVoiceSWriteFormat*)(ptr)) s32 __osVoiceSetADConverter(OSMesgQueue* mq, s32 channel, u8 data) { s32 ret = 0; @@ -24,7 +24,7 @@ s32 __osVoiceSetADConverter(OSMesgQueue* mq, s32 channel, u8 data) { __osContLastCmd = CONT_CMD_SWRITE_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE;