/// <summary> /// Create a new <see cref="PcmFloatDataSourceCommandVersion1"/>. /// </summary> /// <param name="voiceState">The <see cref="VoiceState"/> to generate the command from.</param> /// <param name="state">The <see cref="VoiceUpdateState"/> to generate the command from.</param> /// <param name="outputBufferIndex">The output buffer index to use.</param> /// <param name="channelIndex">The target channel index.</param> /// <param name="nodeId">The node id associated to this command.</param> public void GeneratePcmFloatDataSourceVersion1(ref VoiceState voiceState, Memory <VoiceUpdateState> state, ushort outputBufferIndex, ushort channelIndex, int nodeId) { PcmFloatDataSourceCommandVersion1 command = new PcmFloatDataSourceCommandVersion1(ref voiceState, state, outputBufferIndex, channelIndex, nodeId); command.EstimatedProcessingTime = _commandProcessingTimeEstimator.Estimate(command); AddCommand(command); }
public uint Estimate(PcmFloatDataSourceCommandVersion1 command) { Debug.Assert(_sampleCount == 160 || _sampleCount == 240); float costPerSample = 3490.9f; float baseCost = 10090.9f; if (_sampleCount == 160) { costPerSample = 2310.4f; baseCost = 7845.25f; } return((uint)(baseCost + (costPerSample * (((command.SampleRate / 200.0f) / _sampleCount) * (command.Pitch * 0.000030518f))))); }
public uint Estimate(PcmFloatDataSourceCommandVersion1 command) { // NOTE: This was added between REV7 and REV8 and for some reasons the estimator v2 was changed... Debug.Assert(_sampleCount == 160 || _sampleCount == 240); float costPerSample = 3490.9f; float baseCost = 10091.0f; if (_sampleCount == 160) { costPerSample = 2310.4f; baseCost = 7845.3f; } return((uint)(baseCost + (costPerSample * (((command.SampleRate / 200.0f) / _sampleCount) * (command.Pitch * 0.000030518f))))); }
public uint Estimate(PcmFloatDataSourceCommandVersion1 command) { return(0); }