102 case LinearVolumeScale:
103 volume = qMax(
float(0), volume);
105 case LinearVolumeScale:
107 case CubicVolumeScale:
108 return qPow(volume,
float(1 / 3.0));
109 case LogarithmicVolumeScale:
110 return 1 - std::exp(-volume *
LOG100);
111 case DecibelVolumeScale:
115 return float(20.0) * std::log10(volume);
118 case CubicVolumeScale:
119 volume = qMax(
float(0), volume);
121 case LinearVolumeScale:
122 return volume * volume * volume;
123 case CubicVolumeScale:
125 case LogarithmicVolumeScale:
126 return 1 - std::exp(-volume * volume * volume *
LOG100);
127 case DecibelVolumeScale:
131 return float(3.0 * 20.0) * std::log10(volume);
134 case LogarithmicVolumeScale:
135 volume = qMax(
float(0), volume);
137 case LinearVolumeScale:
141 return -std::log(1 - volume) /
LOG100;
142 case CubicVolumeScale:
146 return qPow(-std::log(1 - volume) /
LOG100,
float(1 / 3.0));
147 case LogarithmicVolumeScale:
149 case DecibelVolumeScale:
152 else if (volume > 0.99)
155 return float(20.0) * std::log10(-std::log(1 - volume) /
LOG100);
158 case DecibelVolumeScale:
160 case LinearVolumeScale:
161 return qPow(
float(10.0), volume /
float(20.0));
162 case CubicVolumeScale:
163 return qPow(
float(10.0), volume /
float(3.0 * 20.0));
164 case LogarithmicVolumeScale:
165 if (qFuzzyIsNull(volume))
168 return 1 - std::exp(-qPow(
float(10.0), volume /
float(20.0)) *
LOG100);
169 case DecibelVolumeScale:
231 QDebugStateSaver saver(dbg);
234 case QAudio::LinearVolumeScale:
235 dbg <<
"LinearVolumeScale";
237 case QAudio::CubicVolumeScale:
238 dbg <<
"CubicVolumeScale";
240 case QAudio::LogarithmicVolumeScale:
241 dbg <<
"LogarithmicVolumeScale";
243 case QAudio::DecibelVolumeScale:
244 dbg <<
"DecibelVolumeScale";
float convertVolume(float volume, VolumeScale from, VolumeScale to)
Converts an audio volume from a volume scale to another, and returns the result.