Added ability to set Playback speed and pitch
This commit is contained in:
parent
3a6645ab35
commit
943de60f23
12 changed files with 229 additions and 18 deletions
|
@ -0,0 +1,52 @@
|
|||
package code.name.monkey.retromusic.dialogs
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.DialogPlaybackSpeedBinding
|
||||
import code.name.monkey.retromusic.extensions.accent
|
||||
import code.name.monkey.retromusic.extensions.colorButtons
|
||||
import code.name.monkey.retromusic.extensions.materialDialog
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import com.google.android.material.slider.Slider
|
||||
|
||||
class PlaybackSpeedDialog : DialogFragment() {
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val binding = DialogPlaybackSpeedBinding.inflate(layoutInflater)
|
||||
binding.playbackSpeedSlider.accent()
|
||||
binding.playbackPitchSlider.accent()
|
||||
binding.playbackSpeedSlider.addOnChangeListener(Slider.OnChangeListener { _, value, _ ->
|
||||
binding.speedValue.text = "$value"
|
||||
})
|
||||
binding.playbackPitchSlider.addOnChangeListener(Slider.OnChangeListener { _, value, _ ->
|
||||
binding.pitchValue.text = "$value"
|
||||
})
|
||||
binding.playbackSpeedSlider.value = PreferenceUtil.playbackSpeed
|
||||
binding.playbackPitchSlider.value = PreferenceUtil.playbackPitch
|
||||
|
||||
return materialDialog(R.string.playback_settings)
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setPositiveButton(R.string.save) { _, _ ->
|
||||
updatePlaybackAndPitch(
|
||||
binding.playbackSpeedSlider.value,
|
||||
binding.playbackPitchSlider.value
|
||||
)
|
||||
}
|
||||
.setView(binding.root)
|
||||
.create()
|
||||
.colorButtons()
|
||||
}
|
||||
|
||||
private fun updatePlaybackAndPitch(speed: Float, pitch: Float) {
|
||||
PreferenceUtil.playbackSpeed = speed
|
||||
PreferenceUtil.playbackPitch = pitch
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun newInstance(): PlaybackSpeedDialog {
|
||||
return PlaybackSpeedDialog()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue