Line 28: |
Line 28: |
| |- | | |- |
| | 0x00080000 | | | 0x00080000 |
− | | GetSemaphore(unsigned short * pMask) | + | | [[DSP:GetSemaphore|GetSemaphore]] |
| |- | | |- |
| | 0x00090040 | | | 0x00090040 |
− | | ClearSemaphore(unsigned short mask) | + | | [[DSP:ClearSemaphore|ClearSemaphore]] |
| |- | | |- |
| | 0x000A0040 | | | 0x000A0040 |
− | | MaskSemaphore(unsigned short mask) | + | | [[DSP:MaskSemaphore|MaskSemaphore]] |
| |- | | |- |
| | 0x000B0000 | | | 0x000B0000 |
− | | CheckSemaphoreRequest(bool * pIsRequested ) | + | | [[DSP:CheckSemaphoreRequest|CheckSemaphoreRequest]] |
| |- | | |- |
| | 0x000C0040 | | | 0x000C0040 |
Line 46: |
Line 46: |
| |- | | |- |
| | 0x000E00C0 | | | 0x000E00C0 |
− | | ReadPipe(int, int, unsigned char *, unsigned short) | + | | [[DSP:ReadPipe|ReadPipe]] |
| |- | | |- |
| | 0x000F0080 | | | 0x000F0080 |
− | | GetPipeReadableSize(int, int, unsigned short *) | + | | [[DSP:GetPipeReadableSize|GetPipeReadableSize]] |
| |- | | |- |
| | 0x001000C0 | | | 0x001000C0 |
Line 55: |
Line 55: |
| |- | | |- |
| | 0x001100C2 | | | 0x001100C2 |
− | | [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000). | + | | [[DSP:LoadComponent|LoadComponent]]. |
| |- | | |- |
| | 0x00120000 | | | 0x00120000 |
Line 67: |
Line 67: |
| |- | | |- |
| | 0x00150082 | | | 0x00150082 |
− | | [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]] | + | | [[DSP:RegisterInterruptEvents|RegisterInterruptEvents]] |
| |- | | |- |
| | 0x00160000 | | | 0x00160000 |
Line 76: |
Line 76: |
| |- | | |- |
| | 0x00180040 | | | 0x00180040 |
− | | GetPhysicalAddress (0x14000000+ -> 0x20000000+, 0x1FF00000+ -> 0x1FF00000+, 0x08000000-0x0E000000 -> 0x00000000+, 0 otherwise) | + | | [[DSP:GetPhysicalAddress|GetPhysicalAddress]] |
| |- | | |- |
| | 0x00190040 | | | 0x00190040 |
− | | GetVirtualAddress (0x20000000+ -> 0x14000000+, 0x1FF00000+ -> 0x1FF00000+, 0 otherwise) | + | | [DSP:GetVirtualAddress|GetVirtualAddress]] |
| |- | | |- |
| | 0x001A0042 | | | 0x001A0042 |
Line 100: |
Line 100: |
| |- | | |- |
| | 0x00200040 | | | 0x00200040 |
− | | ForceHeadphoneOut(bool forceout) (Wrapper for cdc:DSP cmd 8) | + | | [[DSP:ForceHeadphoneOut|ForceHeadphoneOut]] |
| |- | | |- |
| | 0x00210000 | | | 0x00210000 |
− | | GetIsDspOccupied(bool *) returns a byte (can be 1 or 0) can be set to 1 in LoadComponent | + | | [[DSP:GetIsDspOccupied|GetIsDspOccupied]] |
| |} | | |} |
| | | |
| This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously. | | This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously. |