コード例 #1
0
ファイル: sceAudio.cpp プロジェクト: Bigpet/ppsspp
static u32 sceAudioOutputPannedBlocking(u32 chan, int leftvol, int rightvol, u32 samplePtr) {
    int result = 0;
    // For some reason, this is the only one that checks for negative.
    if (leftvol > 0xFFFF || rightvol > 0xFFFF || leftvol < 0 || rightvol < 0) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputPannedBlocking() - invalid volume");
        result = SCE_ERROR_AUDIO_INVALID_VOLUME;
    } else if (chan >= PSP_AUDIO_CHANNEL_MAX) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputPannedBlocking() - bad channel");
        result = SCE_ERROR_AUDIO_INVALID_CHANNEL;
    } else if (!chans[chan].reserved) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputPannedBlocking() - channel not reserved");
        result = SCE_ERROR_AUDIO_CHANNEL_NOT_INIT;
    } else {
        if (leftvol >= 0) {
            chans[chan].leftVolume = leftvol;
        }
        if (rightvol >= 0) {
            chans[chan].rightVolume = rightvol;
        }
        chans[chan].sampleAddress = samplePtr;
        result = __AudioEnqueue(chans[chan], chan, true);
    }

    DEBUG_LOG(SCEAUDIO, "%08x = sceAudioOutputPannedBlocking(%08x, %08x, %08x, %08x)", result, chan, leftvol, rightvol, samplePtr);
    return result;

}
コード例 #2
0
ファイル: sceAudio.cpp プロジェクト: Ryalian/ppsspp
void sceAudioOutputBlocking(u32 chan, u32 vol, u32 samplePtr)
{
  if (samplePtr == 0)
  {
    ERROR_LOG(HLE, "sceAudioOutputBlocking - Sample pointer null");
    RETURN(0);
  }
	if (chan < 0 || chan >= MAX_CHANNEL)
	{
		ERROR_LOG(HLE,"sceAudioOutputBlocking() - BAD CHANNEL");
    RETURN(SCE_ERROR_AUDIO_INVALID_CHANNEL);
	}
  else if (!chans[chan].reserved)
  {
    ERROR_LOG(HLE,"sceAudioOutputBlocking() - channel not reserved");
    RETURN(SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED);
  }
  else
	{
    DEBUG_LOG(HLE,"sceAudioOutputPanned(%d, %d, %08x )",chan,vol,samplePtr);
		chans[chan].running = true;
		chans[chan].leftVolume = vol;
		chans[chan].rightVolume = vol;
		chans[chan].sampleAddress = samplePtr;
		RETURN(0);
    __AudioEnqueue(chans[chan], chan, true);
	}
}
コード例 #3
0
ファイル: sceAudio.cpp プロジェクト: SanJaroICS/ppsspp
// Not sure about the range of volume, I often see 0x800 so that might be either
// max or 50%?
u32 sceAudioOutputPannedBlocking(u32 chan, u32 volume1, u32 volume2, u32 samplePtr)
{
  DEBUG_LOG(HLE,"sceAudioOutputPannedBlocking(%d,%d,%d, %08x )", chan, volume1, volume2, samplePtr);

  if (samplePtr == 0)
  {
    ERROR_LOG(HLE, "Sample pointer null");
    return 0;
  }

	if (chan < 0 || chan >= MAX_CHANNEL)
	{
		ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - BAD CHANNEL");
    return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	}
	else if (!chans[chan].reserved)
  {
    return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
  }
  else
	{
		chans[chan].running = true;
		chans[chan].leftVolume = volume1;
		chans[chan].rightVolume = volume2;
		chans[chan].sampleAddress = samplePtr;
    return __AudioEnqueue(chans[chan], chan, true);
	}
}
コード例 #4
0
ファイル: sceAudio.cpp プロジェクト: MasterShihoChief/ppsspp
u32 sceAudioOutput2OutputBlocking(u32 vol, u32 dataPtr){
	DEBUG_LOG(HLE,"sceAudioOutput2OutputBlocking(%08x, %08x)", vol, dataPtr);
	chans[0].leftVolume = vol;
	chans[0].rightVolume = vol;
	chans[0].sampleAddress = dataPtr;
	return __AudioEnqueue(chans[0], 0, true);
}
コード例 #5
0
ファイル: sceAudio.cpp プロジェクト: MasterShihoChief/ppsspp
u32 sceAudioSRCOutputBlocking(u32 vol, u32 buf) {
	DEBUG_LOG(HLE, "sceAudioSRCOutputBlocking(%08x, %08x)", vol, buf);
	chans[src].leftVolume = vol;
	chans[src].rightVolume = vol;
	chans[src].sampleAddress = buf;
	return __AudioEnqueue(chans[src], src, true);
}
コード例 #6
0
ファイル: sceAudio.cpp プロジェクト: Swyter/ppsspp
u32 sceAudioOutputPannedBlocking(u32 chan, int leftvol, int rightvol, u32 samplePtr) {
	if (leftvol > 0xFFFF || rightvol > 0xFFFF) {
		ERROR_LOG(HLE, "sceAudioOutputPannedBlocking() - invalid volume");
		return SCE_ERROR_AUDIO_INVALID_VOLUME;
	} else if (chan >= PSP_AUDIO_CHANNEL_MAX) {
		ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - bad channel");
		return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	} else if (!chans[chan].reserved) {
		ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - channel not reserved");
		return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
	} else {
		DEBUG_LOG(HLE, "sceAudioOutputPannedBlocking(%08x, %08x, %08x, %08x)", chan, leftvol, rightvol, samplePtr);
		if (leftvol >= 0) {
			chans[chan].leftVolume = leftvol;
		}
		if (rightvol >= 0) {
			chans[chan].rightVolume = rightvol;
		}
		chans[chan].sampleAddress = samplePtr;
		int ret = __AudioEnqueue(chans[chan], chan, true);
		if (chans[chan].waitingThreads.size() == 0)
			return hleDelayResult(ret, "output block", 1000);
		return ret;
	}
}
コード例 #7
0
ファイル: sceAudio.cpp プロジェクト: Falaina/ppsspp
void sceAudioOutputPannedBlocking(u32 chan, u32 volume1, u32 volume2, u32 samplePtr)
{
  if (samplePtr == 0)
  {
    ERROR_LOG(HLE, "sceAudioOutputPannedBlocking - Sample pointer null");
    RETURN(0);
  }
	else if (chan < 0 || chan >= MAX_CHANNEL)
	{
		ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - BAD CHANNEL");
    RETURN(SCE_ERROR_AUDIO_INVALID_CHANNEL);
	}
	else if (!chans[chan].reserved)
  {
		ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - CHANNEL NOT RESERVED");
		RETURN(SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED);
  }
  else
	{
	  DEBUG_LOG(HLE, "sceAudioOutputPannedBlocking(%d,%d,%d, %08x )", chan, volume1, volume2, samplePtr);
		chans[chan].leftVolume = volume1;
		chans[chan].rightVolume = volume2;
		chans[chan].sampleAddress = samplePtr;
		RETURN(0);
    int retval = __AudioEnqueue(chans[chan], chan, true);
		if (retval != 0) {
			// There was an error and didn't block (block always returns 0 here). Fine to RETURN.
			RETURN(retval);
		}
	}
}
コード例 #8
0
ファイル: sceVaudio.cpp プロジェクト: CPkmn/ppsspp
u32 sceVaudioOutputBlocking(int vol, u32 buffer) {
	DEBUG_LOG(HLE, "sceVaudioOutputBlocking(%i, %08x)", vol, buffer);
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].leftVolume = vol;
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].rightVolume = vol;
	// TODO: This may be wrong, not sure if's in a different format?
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].sampleAddress = buffer;
	return __AudioEnqueue(chans[PSP_AUDIO_CHANNEL_VAUDIO], PSP_AUDIO_CHANNEL_VAUDIO, true);
}
コード例 #9
0
ファイル: sceAudio.cpp プロジェクト: Falaina/ppsspp
void sceAudioOutput2OutputBlocking(u32 vol, u32 dataPtr)
{
	WARN_LOG(HLE,"FAKE sceAudioOutput2OutputBlocking(%i, %08x)", vol, dataPtr);
	chans[0].leftVolume = vol;
	chans[0].rightVolume = vol;
	chans[0].sampleAddress = dataPtr;
	RETURN(0);
	u32 retval = __AudioEnqueue(chans[0], 0, true);
	if (retval < 0)
		RETURN(retval);
}
コード例 #10
0
ファイル: sceAudio.cpp プロジェクト: Bigpet/ppsspp
static u32 sceAudioSRCOutputBlocking(u32 vol, u32 buf) {
    if (vol > 0xFFFFF) {
        ERROR_LOG(SCEAUDIO, "sceAudioSRCOutputBlocking(%08x, %08x) - invalid volume", vol, buf);
        return SCE_ERROR_AUDIO_INVALID_VOLUME;
    }
    DEBUG_LOG(SCEAUDIO, "sceAudioSRCOutputBlocking(%08x, %08x)", vol, buf);
    chans[PSP_AUDIO_CHANNEL_SRC].leftVolume = vol;
    chans[PSP_AUDIO_CHANNEL_SRC].rightVolume = vol;
    chans[PSP_AUDIO_CHANNEL_SRC].sampleAddress = buf;
    return __AudioEnqueue(chans[PSP_AUDIO_CHANNEL_SRC], PSP_AUDIO_CHANNEL_SRC, true);
}
コード例 #11
0
ファイル: sceAudio.cpp プロジェクト: Bigpet/ppsspp
static u32 sceAudioOutput2OutputBlocking(u32 vol, u32 dataPtr) {
    // Note: 0xFFFFF, not 0xFFFF!
    if (vol > 0xFFFFF) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutput2OutputBlocking(%08x, %08x) - invalid volume", vol, dataPtr);
        return SCE_ERROR_AUDIO_INVALID_VOLUME;
    }
    DEBUG_LOG(SCEAUDIO, "sceAudioOutput2OutputBlocking(%08x, %08x)", vol, dataPtr);
    chans[PSP_AUDIO_CHANNEL_OUTPUT2].leftVolume = vol;
    chans[PSP_AUDIO_CHANNEL_OUTPUT2].rightVolume = vol;
    chans[PSP_AUDIO_CHANNEL_OUTPUT2].sampleAddress = dataPtr;
    return __AudioEnqueue(chans[PSP_AUDIO_CHANNEL_OUTPUT2], PSP_AUDIO_CHANNEL_OUTPUT2, true);
}
コード例 #12
0
ファイル: sceAudio.cpp プロジェクト: Ryalian/ppsspp
void sceAudioOutput2OutputBlocking()
{
	int vol = PARAM(0);
	u32 dataPtr = PARAM(1);

  WARN_LOG(HLE,"FAKE sceAudioOutput2OutputBlocking(%i, %08x)", vol, dataPtr);
	chans[0].running = true;
	chans[0].leftVolume = vol;
	chans[0].rightVolume = vol;
	chans[0].sampleAddress = dataPtr;
	RETURN(chans[0].sampleCount);
  __AudioEnqueue(chans[0], 0, true);
}
コード例 #13
0
ファイル: sceAudio.cpp プロジェクト: Swyter/ppsspp
u32 sceAudioOutput2OutputBlocking(u32 vol, u32 dataPtr){
	// Note: 0xFFFFF, not 0xFFFF!
	if (vol < 0 || vol > 0xFFFFF) {
		ERROR_LOG(HLE,"sceAudioOutput2OutputBlocking(%08x, %08x) - invalid volume", vol, dataPtr);
		return SCE_ERROR_AUDIO_INVALID_VOLUME;
	}
	DEBUG_LOG(HLE,"sceAudioOutput2OutputBlocking(%08x, %08x)", vol, dataPtr);
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].leftVolume = vol;
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].rightVolume = vol;
	chans[PSP_AUDIO_CHANNEL_OUTPUT2].sampleAddress = dataPtr;
	int ret = __AudioEnqueue(chans[PSP_AUDIO_CHANNEL_OUTPUT2], PSP_AUDIO_CHANNEL_OUTPUT2, true);
	if (chans[PSP_AUDIO_CHANNEL_OUTPUT2].waitingThreads.size() == 0)
		return hleDelayResult(ret, "output block", 1000);
	return ret;
}
コード例 #14
0
ファイル: sceAudio.cpp プロジェクト: MasterShihoChief/ppsspp
u32 sceAudioOutputPanned(u32 chan, u32 leftVol, u32 rightVol, u32 samplePtr) {
	if (samplePtr == 0) {
		ERROR_LOG(HLE, "sceAudioOutputPannedBlocking() - Sample pointer null");
		return 0;
	} else if (chan >= PSP_AUDIO_CHANNEL_MAX) {
		ERROR_LOG(HLE,"sceAudioOutputPanned() - bad channel");
		return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	} else if (!chans[chan].reserved) {
		ERROR_LOG(HLE,"sceAudioOutputPanned(%08x, %08x, %08x, %08x) - channel not reserved", chan, leftVol, rightVol, samplePtr);
		return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
	} else {
		DEBUG_LOG(HLE,"sceAudioOutputPanned(%08x, %08x, %08x, %08x)", chan, leftVol, rightVol, samplePtr);
		chans[chan].leftVolume = leftVol;
		chans[chan].rightVolume = rightVol;
		chans[chan].sampleAddress = samplePtr;
		return __AudioEnqueue(chans[chan], chan, false);
	}
}
コード例 #15
0
ファイル: sceAudio.cpp プロジェクト: ChrisAldama/ppsspp
u32 sceAudioOutputBlocking(u32 chan, u32 vol, u32 samplePtr) {
	if (samplePtr == 0) {
		ERROR_LOG(HLE, "sceAudioOutputBlocking - Sample pointer null");
		return 0;
	}
	if (chan >= PSP_AUDIO_CHANNEL_MAX) {
		ERROR_LOG(HLE,"sceAudioOutputBlocking() - BAD CHANNEL");
		return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	} else if (!chans[chan].reserved) {
		ERROR_LOG(HLE,"sceAudioOutputBlocking() - channel not reserved");
		return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
	} else {
		DEBUG_LOG(HLE, "sceAudioOutputBlocking(%d, %d, %08x )",chan,vol,samplePtr);
		chans[chan].leftVolume = vol;
		chans[chan].rightVolume = vol;
		chans[chan].sampleAddress = samplePtr;
		return __AudioEnqueue(chans[chan], chan, true);
	}
}
コード例 #16
0
ファイル: sceAudio.cpp プロジェクト: Bigpet/ppsspp
static u32 sceAudioOutputBlocking(u32 chan, int vol, u32 samplePtr) {
    if (vol > 0xFFFF) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputBlocking() - invalid volume");
        return SCE_ERROR_AUDIO_INVALID_VOLUME;
    } else if (chan >= PSP_AUDIO_CHANNEL_MAX) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputBlocking() - bad channel");
        return SCE_ERROR_AUDIO_INVALID_CHANNEL;
    } else if (!chans[chan].reserved) {
        ERROR_LOG(SCEAUDIO, "sceAudioOutputBlocking() - channel not reserved");
        return SCE_ERROR_AUDIO_CHANNEL_NOT_INIT;
    } else {
        DEBUG_LOG(SCEAUDIO, "sceAudioOutputBlocking(%08x, %08x, %08x)", chan, vol, samplePtr);
        if (vol >= 0) {
            chans[chan].leftVolume = vol;
            chans[chan].rightVolume = vol;
        }
        chans[chan].sampleAddress = samplePtr;
        return __AudioEnqueue(chans[chan], chan, true);
    }
}
コード例 #17
0
ファイル: sceAudio.cpp プロジェクト: ChrisAldama/ppsspp
u32 sceAudioOutput(u32 chan, u32 vol, u32 samplePtr)
{
	if (chan >= PSP_AUDIO_CHANNEL_MAX) {
		ERROR_LOG(HLE,"sceAudioOutput() - BAD CHANNEL");
		return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	}
	else if (!chans[chan].reserved)
	{
		ERROR_LOG(HLE,"sceAudioOutput(%d, %d, %08x) - channel not reserved", chan, vol, samplePtr);
		return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
	}
	else
	{
		chans[chan].leftVolume = vol;
		chans[chan].rightVolume = vol;
		chans[chan].sampleAddress = samplePtr;
		u32 retval = __AudioEnqueue(chans[chan], chan, false);
		DEBUG_LOG(HLE, "%08x=sceAudioOutputPanned(%d, %d, %08x)", retval, chan, vol, samplePtr);
		return retval;
	}
}
コード例 #18
0
ファイル: sceAudio.cpp プロジェクト: CPkmn/ppsspp
u32 sceAudioOutputPanned(u32 chan, int leftvol, int rightvol, u32 samplePtr) {
	if (leftvol > 0xFFFF || rightvol > 0xFFFF) {
		ERROR_LOG(HLE, "sceAudioOutputPannedBlocking() - invalid volume");
		return SCE_ERROR_AUDIO_INVALID_VOLUME;
	} else if (chan >= PSP_AUDIO_CHANNEL_MAX) {
		ERROR_LOG(HLE,"sceAudioOutputPanned() - bad channel");
		return SCE_ERROR_AUDIO_INVALID_CHANNEL;
	} else if (!chans[chan].reserved) {
		ERROR_LOG(HLE,"sceAudioOutputPanned(%08x, %08x, %08x, %08x) - channel not reserved", chan, leftvol, rightvol, samplePtr);
		return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
	} else {
		DEBUG_LOG(HLE,"sceAudioOutputPanned(%08x, %08x, %08x, %08x)", chan, leftvol, rightvol, samplePtr);
		if (leftvol >= 0) {
			chans[chan].leftVolume = leftvol;
		}
		if (rightvol >= 0) {
			chans[chan].rightVolume = rightvol;
		}
		chans[chan].sampleAddress = samplePtr;
		return __AudioEnqueue(chans[chan], chan, false);
	}
}
コード例 #19
0
ファイル: sceAudio.cpp プロジェクト: SanJaroICS/ppsspp
u32 sceAudioOutputPanned(u32 chan, u32 leftVol, u32 rightVol, u32 samplePtr)
{
  if (chan < 0 || chan >= MAX_CHANNEL)
  {
    ERROR_LOG(HLE,"sceAudioOutputPannedBlocking() - BAD CHANNEL");
    return SCE_ERROR_AUDIO_INVALID_CHANNEL;
  }
  else if (!chans[chan].reserved)
  {
    ERROR_LOG(HLE,"sceAudioOutputPanned(%d, %d, %d, %08x) - channel not reserved", chan,leftVol,rightVol,samplePtr);
    return SCE_ERROR_AUDIO_CHANNEL_NOT_RESERVED;
  }
  else
  {
		chans[chan].running = true;
		chans[chan].leftVolume = leftVol;
		chans[chan].rightVolume = rightVol;
		chans[chan].sampleAddress = samplePtr;
    u32 retval = __AudioEnqueue(chans[chan], chan, false);
    DEBUG_LOG(HLE,"%08x=sceAudioOutputPanned(%d, %d, %d, %08x)",retval,chan,leftVol,rightVol,samplePtr);
    return retval;
	}
}