| 173 | }; |
| 174 | |
| 175 | static void appendAudioSampleRateMenu(ui::Menu* menu, audio::Port* port) { |
| 176 | if (!port) |
| 177 | return; |
| 178 | |
| 179 | std::set<float> sampleRates = port->getSampleRates(); |
| 180 | // Add current sample rate in case it's not in the list |
| 181 | sampleRates.insert(port->getSampleRate()); |
| 182 | |
| 183 | if (sampleRates.empty()) { |
| 184 | menu->addChild(createMenuLabel("(" + string::translate("AudioDisplay.lockedByDevice") + ")")); |
| 185 | } |
| 186 | for (float sampleRate : sampleRates) { |
| 187 | if (sampleRate <= 0) |
| 188 | continue; |
| 189 | AudioSampleRateValueItem* item = new AudioSampleRateValueItem; |
| 190 | item->port = port; |
| 191 | item->sampleRate = sampleRate; |
| 192 | item->text = string::f("%g kHz", sampleRate / 1000.0); |
| 193 | item->rightText = CHECKMARK(item->sampleRate == port->getSampleRate()); |
| 194 | menu->addChild(item); |
| 195 | } |
| 196 | } |
| 197 | |
| 198 | void AudioSampleRateChoice::onAction(const ActionEvent& e) { |
| 199 | ui::Menu* menu = createMenu(); |
no test coverage detected