Coverage Summary for Class: PrimitiveAudioProvider (com.vsevolodganin.clicktrack.primitiveaudio)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| PrimitiveAudioProvider |
0%
(0/2)
|
0%
(0/2)
|
0%
(0/4)
|
0%
(0/25)
|
| PrimitiveAudioProvider$Const |
|
| PrimitiveAudioProvider$MetroFactory |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/11)
|
| PrimitiveAudioProvider$MetroFactory$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/12)
|
| Total |
0%
(0/4)
|
0%
(0/2)
|
0%
(0/6)
|
0%
(0/48)
|
package com.vsevolodganin.clicktrack.primitiveaudio
import com.vsevolodganin.clicktrack.di.component.ApplicationScope
import com.vsevolodganin.clicktrack.model.ClickSoundSource
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
@SingleIn(ApplicationScope::class)
@Inject
class PrimitiveAudioProvider(
private val primitiveAudioExtractor: PrimitiveAudioExtractor,
) {
fun get(sound: ClickSoundSource): PrimitiveFloatAudioData? {
return primitiveAudioExtractor.extract(sound.uri, MAX_SECONDS)
?.let(PrimitiveFloatAudioData::from)
}
private companion object Const {
const val MAX_SECONDS = 2
}
}