PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Volume Regler (Open Source)


Codeq
30.05.2002, 13:09
So mal wieder lange weile gehabt ...
Der source unten ist ne Lautstärkenänderung des MasterVolume regelers mit den F11(leiser) und F12(lauter) tasten

er zeigt die lautstärke in prozent per echo an, wenn du eine der beiden Fx tasten drückst, und wenn du sie gedrück hälst und sie 0 oder 100 erreichen , oder wenn du sie wieder los lässt den aktuellen stand..
die lautstärke wird immer in 1000er schritten geändert und wenn weniger 1000 schritte in eine richung möglich sind, dann halt der rest zu (2^16)-1



on *:CONNECT: { set %mp3.vol.ticks $ticks }

alias mp3vol.print {
if (%mpvol.shown != $round($calc($vol(master) * 100 / 65535),1)) {
set %mpvol.shown $round($calc($vol(master) * 100 / 65535),1)
var %mpvol.text ** $me sets MasterVolume to:
if ($round($calc($vol(master) * 100 / 65535),1) >= 90) { echo $color(action) -a %mpvol.text 4 $round($calc($vol(master) * 100 / 65535),1) $+ % }
elseif ($round($calc($vol(master) * 100 / 65535),1) >= 70) { echo $color(action) -a %mpvol.text 7 $round($calc($vol(master) * 100 / 65535),1) $+ % }
else { echo $color(action) -a %mpvol.text 9 $round($calc($vol(master) * 100 / 65535),1) $+ % }
}
}

alias mpvol.check {
tokenize 32 $1-
if ($1 == key) {
if (%mp3.vol != $round($calc($vol(master) * 100 / 65535),1)) {
if (($round($calc($vol(master) * 100 / 65535),1) == 100) || ($round($calc($vol(master) * 100 / 65535),1) == $eval(0))) { mp3vol.print }
if ($calc($ticks - %mp3.vol.ticks) > 500) { mp3vol.print }
}
}
elseif ($1 == timer) {

if (($round($calc($vol(master) * 100 / 65535),1) != 100) && ($round($calc($vol(master) * 100 / 65535),1) != $eval(0))) { mp3vol.print }
unset %mp3.vol

}
set %mp3.vol.ticks
unset %mp3.vol.key
}

alias F11 {
var %ticks.delay 500
set %mp3.vol.key pressed
if ($vol(master) <= 999) { vol -v $calc($vol(master) - $vol(master)) }
else { vol -v $calc($vol(master) - 1000) }
mpvol.check key
.timermpvol off
.timermpvol -mc 1 %ticks.delay mpvol.check timer
set %mp3.vol $round($calc($vol(master) * 100 / 65535),1)
set %mp3.vol.ticks $ticks
}

alias F12 {
var %ticks.delay 500
set %mp3.vol.key pressed
if ($vol(master) >= 64536) { vol -v $calc($vol(master) + $vol(master)) }
else { vol -v $calc($vol(master) + 1000) }
mpvol.check key
.timermpvol off
.timermpvol -mc 1 %ticks.delay mpvol.check timer
set %mp3.vol $round($calc($vol(master) * 100 / 65535),1)
set %mp3.vol.ticks $ticks
}


Mac Fly
30.05.2002, 13:28
Feine Sache! Ich hab was ähnliches, aber in nem Dialog per MDX-Scrollbar:

im dialog:

button "0 0 114 15 2 1", 3, 250 24 200 10
check "Stumm", 5, 392 8 58 16

im init event

mdx SetControlMDX $dname 3 Scrollbar horizontal > $scriptdir $+ ctl_gen.mdx
did -a $dname 3 $round($calc(($vol(master)/65535)*100),0)
if ($vol(master).mute == $true) { did -c $dname 5
did -b $dname 3 }


beim betätigen der Taste
if ($devent == SCLICK) {
if ($did == 3) vol -v $calc(($gettok($did(3),1,32)/100)*65535)
if ($did == 5) {
if ($did(5).state == 1) { vol -vu1
did -b $dname 3
}
if ($did(5).state == 0) {
vol -vu2
did -e $dname 3
}
}


Screenie davon: Is aber noch net mal halb fertig ;)
http://www.netkiffer.de/MP3-Editor_pre.gif

Codeq
30.05.2002, 13:31
jo... das prob bei mir war eine Art OnKeyRelease Event zu simulieren..den es bei mirc ja leider ned gibt..

ich benutz ja winamp und hab nie lust die mouse anzufassen und dann an einem volume regeler rumzuschieben, deshalb die tasten wo meine finger eh die meiste zeit über sind :D

Mac Fly
30.05.2002, 13:34
Fein Fein, ich denk, ich bau auch noch Keyboard Support ein ;)