Tengo un Timer donde debo realizar una operación.
Estos son los elementos:
Código
Dim Time_Measure As String = "M" Dim Time_Out As Integer = 1 Dim Current_Volume As Single = 1 Dim Target_Volume As Single = 0.80
"Time_Measure" es un string y se refiere a segundos, minutos u horas. (S,M,H)
"Time_Out" es la cantidad "X" de "Time_Measure" (Ejemplo: 30 segundos, 1 minuto, o 5 horas)
"Current_Volume" es un valor single indefinido de 0 a 1
"Target_Volume" es otro valor single de 0 a 1
Lo que necesito hacer es calcular la relación de tiempo EN MILISEGUNDOS para disminuir un valor de "0.01" progresívamente desde al valor de "Current_Volume" hasta alcanzar el valor de "Target_Volume"
Por poner un ejemplo, si tengo estos valores:
Código
Dim Time_Measure As String = "M" Dim Time_Out As Integer = 1 Dim Current_Volume As Single = 1.0 Dim Target_Volume As Single = 0.0
Traducido:
1 minuto
Current volume: 100
Target volume: 0
...Entonces deberé disminuir Cada 600 milisegundos un valor de 1 a "current volume" para alcanzar el valor de "target volume".
Para eso, con una función que hice, primero convierto los "segundos, minutos u horas" elegidas, a milisegundos, y lo divido por 100:
Código
Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / 100
Pero luego ya no sé como calcular el resto de la operación teniendo en cuenta el valor de "Current_Volume" y "target_Volume"... :
Mi intento:
Código
* MS / targetvolume * currentvolume Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / (100 - Target_Volume) * (100 - CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100))
Creo que consigo un valor aproximado en mis estimaciones, pero no el exacto, me falta colocar bien algún factor que no sé...
¿Alguna ayuda porfavor?