Beep

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Beep

Berichtdoor anthonio » vr aug 15, 2008 7:12 pm

Ik botste daarnet op de "beep" API.
Nu in LB hebben we daar een native commande voor en deze is "beep"
Nu bij deze api call heb je de functie "beep" nodig, maar aangezien dit een gereserveerd is heb ik
er function beeper van gemaakt.
Als je deze test krijg je result = 0 terug, wat wil zeggen dat er een fout is opgetreden.
Kan dit liggen aan het feit dat de functie Beep moet noemen en niet beeper?
note: ik teste juist even de beep command uit en deze hoor ik dus niet, zal wrs aan men computer liggen.
WIl iemands es deze code uittesten en kijken of hij een beep hoort of niet.

Code: Selecteer alles
WindowWidth = 100
WindowHeight = 100

button #main, "Beep", [Beep], UL, 10, 10
open "Beep" for window as #main
#main "trapclose [Quit]"
wait

[Beep]

'frequentie moet in hexadecimaal zijn, deze gaat van 0x25 tot 0x7FFF
r = Beeper(hexdec("0x7FFFF"), 10000)
print r
wait

[Quit]
close #main
end

Function Beeper(hexdec, tijd)
    calldll #kernel32, "Beep",_
    dwFreq as long, _
    dwDuration as long
End Function
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Beep

Berichtdoor Gordon » za aug 16, 2008 12:25 pm

Tja,.... er was iets ermee.
Het LB commando beep werkt niet in XP, daarom gebruikt iedereen ding.wav

Maar de functie geeft geen fout bij mij.
Ik heb de long in ulong gewijzigd (dat schijnt bij XP ook gewijzigd te zijn)
en een return parameter meegegeven. Om die parameter te lezen, heb ik
het global gemaakt.

Resultaat = 1, maar mijn speaker geeft geen kik. NPORT heb ik zeker geinstalleerd.

Gordon.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Beep

Berichtdoor Gordon » za aug 16, 2008 2:04 pm

Code: Selecteer alles
        calldll #kernel32, "Beep", 790 As Long, 400 As Long, r As Long  'C
        calldll #kernel32, "Beep", 750 As Long, 400 As Long, r As Long  'B
        calldll #kernel32, "Beep", 670 As Long, 400 As Long, r As Long  'A
        calldll #kernel32, "Beep", 600 As Long, 400 As Long, r As Long  'G
        calldll #kernel32, "Beep", 540 As Long, 400 As Long, r As Long  'F
        calldll #kernel32, "Beep", 500 As Long, 400 As Long, r As Long  'E
        calldll #kernel32, "Beep", 450 As Long, 400 As Long, r As Long  'D
        calldll #kernel32, "Beep", 400 As Long, 400 As Long, r As Long  'C
        calldll #kernel32, "Beep", 370 As Long, 400 As Long, r As Long  'B
        calldll #kernel32, "Beep", 330 As Long, 400 As Long, r As Long  'A
        calldll #kernel32, "Beep", 300 As Long, 400 As Long, r As Long  'G
        calldll #kernel32, "Beep", 270 As Long, 400 As Long, r As Long  'F
        calldll #kernel32, "Beep", 250 As Long, 300 As Long, r As Long  'E


Ik hoor mijn speaker wel.
Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Beep

Berichtdoor Gordon » za aug 16, 2008 2:11 pm

Hier is een demo die hier thuis prima werkt. (op XP)

Gordon
Bijlagen
anniv.zip
(272.72 KiB) 255 keer gedownload
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Beep

Berichtdoor anthonio » zo aug 17, 2008 10:29 am

Men laptop geeft hier dus geen kik, zelfs bij het laatste zip-voorbeeld hoor ik niets.
Wel mooi gedaan trouwens.

de fout bedoelde ik dat de output "0" is, en een NULL output wil zeggen dat er een fout opgetreden is, dit geld
trouwens voor alle API-calls.

Andy
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Beep

Berichtdoor Gordon » zo aug 17, 2008 11:17 am

Hallo Antonio,

Heb je Vista op je laptop?
Ik ga het ook even met Vista proberen.

Nog even over de foutmelding:
Code: Selecteer alles

global b
Function Beeper(dWFreq,dwDuration)
    calldll #kernel32, "Beep",_
    dwFreq as long, _
    dwDuration as long , _
    b as boolean
End Function



print b geeft als resultaat 1
De hexdec functie in jouw voorbeeld geeft de waarde 0

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Beep

Berichtdoor anthonio » zo aug 17, 2008 12:46 pm

Ik heb alleen linux, windows XP via VMware en Windows XP gewoon.
Na de aanpassing van de code krijg ik nog steeds een 0 output van r.

Code: Selecteer alles
WindowWidth = 100
WindowHeight = 100

button #main, "Beep", [Beep], UL, 10, 10
open "Beep" for window as #main
#main "trapclose [Quit]"
wait

[Beep]

'frequentie moet in hexadecimaal zijn, deze gaat van 0x25 tot 0x7FFF
r = Beeper(hexdec("0x7FFFF"), 10000)
print r
wait

[Quit]
close #main
end

Function Beeper(dWFreq,dwDuration)
    calldll #kernel32, "Beep",_
    dwFreq as long, _
    dwDuration as long
End Function

Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm


Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron