SirWayNe Posted November 14, 2012 Posted November 14, 2012 (edited) Hey,AutoIt Version: 3.3.8.1i am using AudioGenie3.dll to get some information about my audio files, currently *.mp3.http://sourceforge.net/projects/audiogenie/Im getting used to use DllCall and in using different variable types, but i cannot solve this problem:Local $test = "3" Local $test2 = "chemicals1" Local $dll = DllOpen("AudioGenie3.dll") If @error Then ConsoleWrite("DllOpen - " & $dll & " - Error: " & @error & @CRLF) Local $file = "9 - Chemicals.mp3" ; Set Current File, used in later Functions by AudioGenie3.dll $aAudioFile = DllCall($dll,"WORD","AUDIOAnalyzeFileW","wstr",$file) If @error Then ConsoleWrite("Error - Analyze - " & @error & @CRLF) ; Set V1 Track DllCall($dll,"wstr","ID3V1SetTrackW","wstr",$test) If @error Then ConsoleWrite("Error - V1SetTrack - " & @error & @CRLF) ; Set V1 Title DllCall($dll,"wstr","ID3V1SetTitleW","wstr",$test2) If @error Then ConsoleWrite("Error - V1SetTitle - " & @error & @CRLF) ; Check File if Saving worked Local $field1 = DllCall($dll,"wstr","ID3V1GetTitleW") Local $field2 = DllCall($dll,"wstr","ID3V1GetTrackW") ConsoleWrite("Title: " & $field1[0] & @CRLF) ConsoleWrite("Track: " & $field2[0] & @CRLF) ; close Dll DllClose($dll)I can set the Title to everything i want. But if i want to only set it to a number like:Local $test = "3"then AutoIt crashes and exits with exitcode 1073741819. It seems like DllCall cannot deal with the combination of "wstr" and "3".The Function in AudioGenie3.dll needs this Parameter: ID3V1SetTrackW(LPCWSTR myTrack)Can anyone explain that problem to me and maybe solve it?Greetings SirWayNe Edited November 14, 2012 by SirWayNe
JohnOne Posted November 14, 2012 Posted November 14, 2012 Can't find any documentation for the library on that link. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
SirWayNe Posted November 14, 2012 Author Posted November 14, 2012 Im sorry. providing this link with Docs now http://sourceforge.net/projects/audiogenie/files/V2.0.4.0/doc/
BrewManNH Posted November 14, 2012 Posted November 14, 2012 Are you having problems setting the title or the track? Because you mentioned title, but you're referencing the track in the code "ID3V1SetTrackW(LPCWSTR myTrack)" If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
SirWayNe Posted November 14, 2012 Author Posted November 14, 2012 I am referring to change the Track. I can change the Title the way i want it to be, because i am using the String like DllCall($dll,"wstr","ID3V1SetTitleW","wstr","SomeArtist") -> works And for the Title i use a Number like this: DllCall($dll,"wstr","ID3V1SetTitleW","wstr","3") -> does not work DllCall($dll,"wstr","ID3V1SetTitleW","wstr","SomeString") -> doesnt crash AutoIt, but wont save it to the Audio File, Audio FIle only takes a number 0-255 (Read on ID3V1 Tags, Track takes 2 bytes in total = 255) same Parameter type: wstr.
JohnOne Posted November 14, 2012 Posted November 14, 2012 That function (ID3V1SetTitleW) has no return value, but you specify it as "wstr" AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
SirWayNe Posted November 14, 2012 Author Posted November 14, 2012 Oh... bless me. That really made a difference. i changed it into "none" from "wstr" and it went pretty fast to success. Thanks for helping me out here. Gotta read more careful on the Docs (audiograbber and autoit) So the Function DllCall is expecting a return value that isnt provided by (ID3V1SetTitleW) and crashes? Greetings SirWayNe.
KaFu Posted November 14, 2012 Posted November 14, 2012 (edited) expandcollapse popupLocal $sFilename = @ScriptDir & "test.mp3" Local $sID3V1SetTrackW = "3" Local $sID3V1SetTitleW = "chemicals1" Local $h_DLL_AudioGenie3 = DllOpen(@ScriptDir & "AudioGenie3.dll") If @error Then ConsoleWrite("DllOpen - " & $h_DLL_AudioGenie3 & " - Error: " & @error & @CRLF) ; Set Current File, used in later Functions by AudioGenie3.dll $iRes = DllCall($h_DLL_AudioGenie3, "int", "AUDIOAnalyzeFileW", "wstr", $sFilename) If @error Then ConsoleWrite("Error - Analyze - " & @error & @CRLF) ConsoleWrite($iRes[0] & @crlf) #cs Wert Beschreibung 0 unbekanntes Format 1 MP3 2 WMA 3 MONKEY 4 FLAC 5 WAV 6 OGG VORBIS 7 MPP 8 AAC 9 MP4/M4A 10 TTA 11 wavpack #ce ; Set V1 Track $iRes = DllCall($h_DLL_AudioGenie3, "int", "ID3V1SetTrackW", "wstr", $sID3V1SetTrackW) If @error Then ConsoleWrite("Error - V1SetTrack - " & @error & @CRLF) ConsoleWrite($iRes[0] & @crlf) ; Set V1 Title $iRes = DllCall($h_DLL_AudioGenie3, "int", "ID3V1SetTitleW", "wstr", $sID3V1SetTitleW) If @error Then ConsoleWrite("Error - V1SetTitle - " & @error & @CRLF) ConsoleWrite($iRes[0] & @crlf) ; Check File if Saving worked $iRes = DllCall($h_DLL_AudioGenie3, "wstr", "ID3V1GetTitleW") ConsoleWrite("Title: " & $iRes[0] & @CRLF) $iRes = DllCall($h_DLL_AudioGenie3, "wstr", "ID3V1GetTrackW") ConsoleWrite("Track: " & $iRes[0] & @CRLF) ; close Dll DllClose($h_DLL_AudioGenie3) Edit: Btw, nice find , will be added to SMF asap ... Edited November 14, 2012 by KaFu OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2024-Oct-20) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
BrewManNH Posted November 14, 2012 Posted November 14, 2012 I found uses the audiogenie dll to read and write the tags. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
SirWayNe Posted November 14, 2012 Author Posted November 14, 2012 This is what i got so far. Functions to Include it into my Script, only the beginning and quite not fully tested. Global $hScriptAudioGenie; Handle für die AudioGenie3.dll Global $aScriptAudioFile; Array für AudioGenie3.dll. Return der DLLCall: [0]: Typ. [1]: Ort. And the Code: expandcollapse popup#cs Datentypen Variable: AudioGenie.dll AutoItV3 Int16 short Int32 DWORD UInt32 DWORD _StringtoInt($var) Float float BSTR wstr LPCWSTR wstr Pointer ?? #ce #cs AUDIOAnalyzeW Return Value Beschreibung 0 unbekannt 1 MP3 2 WMA 3 MONKEY 4 FLAC 5 WAV 6 OGG Vorbis 7 MPP 8 AAC 9 MP4/M4A 10 TTA 11 wavpack #ce Func _AudioGenieInit() FileInstall("0-Include\AudioGenie3.dll","AudioGenie3.dll",1) $hScriptAudioGenie = DllOpen("AudioGenie3.dll") Return @error EndFunc Func _AudioGenieReadFile($file) $aScriptAudioFile = DllCall($hScriptAudioGenie,"WORD","AUDIOAnalyzeFileW","wstr",$file) Return @error EndFunc Func _AudioGenieReadTag($tag,$ext = "") Local $field[1] If Not $tag Then Return SetError(1,0,1) Switch $tag ; ID3V1 auslesen Case "Title" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTitleW") Case "Artist" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW") Case "Album" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW") Case "Track" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTrackW") Case "Genre" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetGenreW") Case "Year" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetYearW") ; ID3V2 auslesen Case "APIC"; Cover ; -1 bei gefundenem Tag ; 0 bei nicht gefundenen Tag If $ext = "" Then Return SetError(1,0,1) $field = DllCall($hScriptAudioGenie,"short","ID3V2GetPictureFileW","wstr",$ext,"WORD","1") If $field[0] = -1 Then $field[0] = $ext Case Else; alle anderen ID3V2 Tags werden über $tag ausgelesen $field = DllCall($hScriptAudioGenie,"wstr","ID3V2GetTextFrameW","DWORD",_StringToInt($tag)) EndSwitch If IsArray($field) = 1 Then Return $field[0] Else Return $field EndIf EndFunc Func _AudioGenieSaveV1() Local $i = DllCall($hScriptAudioGenie,"short","ID3V1SaveChangesW") ConsoleWrite("Error Save " & @error & @CRLF) EndFunc Func _AudioGenieSaveV2() Local $i = DllCall($hScriptAudioGenie,"short","ID3V2SaveChangesW") ConsoleWrite("Error Save " & $i[0] & @CRLF) Return @error EndFunc Func _AudioGenieSaveTag($tag,$field,$ext = "") $tag = StringStripWS(StringStripCR($tag),3) $field = StringStripWS(StringStripCR($field),3) If Not $tag Then Return SetError(1,0,1) If Not $field Then Return SetError(2,0,1) Switch $tag ; ID3V1 Tags speichern Case "Title" DllCall($hScriptAudioGenie,"none","ID3V1SetTitleW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Artist" DllCall($hScriptAudioGenie,"none","ID3V1SetArtistW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Album" DllCall($hScriptAudioGenie,"none","ID3V1SetAlbumW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Track" DllCall($hScriptAudioGenie,"none","ID3V1SetTrackW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF & $field) Case "Genre"; -> String führt zu Fehler, evtl die ID speichern mit ID3V1SetGenreIDW ;~ DllCall($hScriptAudioGenie,"wstr","ID3V1SetGenreW","wstr",$field) If $field = "" Then Return DllCall($hScriptAudioGenie,"none","ID3V1SetGenreW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Year" DllCall($hScriptAudioGenie,"none","ID3V1SetYearW","wstr",$field) ConsoleWrite("Error " & $tag & @error & @CRLF) ; ID3V2 Tags speichern Case "APIC" If $ext = "" Then Return SetError(3,2,1) $field = DllCall($hScriptAudioGenie,"short","ID3V2AddPictureFileW","wstr",$ext,"wstr","","WORD","03","WORD","0") If $field[0] = -1 Then $field[0] = $ext Case Else; alle anderen Tags werden über $tag gespeichert $field = DllCall($hScriptAudioGenie,"wstr","ID3V2SetTextFrameW","DWORD",_StringToInt($tag),"wstr",$field) EndSwitch If Isarray($field) = 1 Then Return $field[0] Else Return $field EndIf EndFunc Func _AudioGenieSaveTagGetGenreID($field) If $field = "" Then Return SetError(1,0,1) Local $array[148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","AlternRock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta","Top","Christian Rap","Pop & Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A capella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Trash Metal","Anime","JPop","Synthpop"] Local $int = _ArraySearch($array,$field,0,0,1) If $int = -1 Then Return SetError(2,0,1) $int += 1 Return $int EndFunc Func _AudioGenieReadBitrate() Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetBitrateW") Return $result[0] EndFunc Func _AudioGenieReadSamplerate() Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetSampleRateW") Return $result[0] EndFunc Func _AudioGenieReadChannel() Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetChannelModeW") Return $result[0] EndFunc Func _AudioGenieReadVersion() Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetVersionW") Return $result[0] EndFunc Func _AudioGenieReadDuration() Local $result = DllCall($hScriptAudioGenie,"float","AUDIOGetDurationW") $return = Floor($result[0]) Return $return EndFunc
KaFu Posted November 14, 2012 Posted November 14, 2012 Nice, thanks for posting ... OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2024-Oct-20) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
JohnOne Posted November 14, 2012 Posted November 14, 2012 #cs Datentypen Variable: AudioGenie.dll AutoItV3 Int16 short Int32 int UInt32 uint Float float BSTR wstr LPCWSTR wstr Pointer ptr or type* #ce AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
SirWayNe Posted November 15, 2012 Author Posted November 15, 2012 I fixed some Functions, it should work properly now: expandcollapse popup#cs Datentypen Variable: AudioGenie.dll AutoItV3 Int16 short Int32 DWORD UInt32 DWORD -> _StringtoInt($var) Float float BSTR wstr LPCWSTR wstr Pointer ptr #ce #cs AUDIOAnalyzeW Return Value Beschreibung 0 unbekannt 1 MP3 2 WMA 3 MONKEY 4 FLAC 5 WAV 6 OGG Vorbis 7 MPP 8 AAC 9 MP4/M4A 10 TTA 11 wavpack #ce Func _AudioGenieInit() FileInstall("0-IncludeAudioGenie3.dll","AudioGenie3.dll",1) $hScriptAudioGenie = DllOpen("AudioGenie3.dll") Return @error EndFunc Func _AudioGenieReadFile($file) $aScriptAudioFile = DllCall($hScriptAudioGenie,"WORD","AUDIOAnalyzeFileW","wstr",$file) Return @error EndFunc Func _AudioGenieReadTag($tag,$ext = "") Local $field[1] If Not $tag Then Return SetError(1,0,1) Switch $tag ; ID3V1 auslesen Case "Title" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTitleW") Case "Artist" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW") Case "Album" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetAlbumW") Case "Track" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTrackW") Case "Genre" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetGenreW") Case "Year" $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetYearW") ; ID3V2 auslesen Case "APIC"; Cover ; -1 bei gefundenem Tag ; 0 bei nicht gefundenen Tag If $ext = "" Then Return SetError(1,0,1) $field = DllCall($hScriptAudioGenie,"short","ID3V2GetPictureFileW","wstr",$ext,"WORD","1") If $field[0] = -1 Then $field[0] = $ext Case Else; alle anderen ID3V2 Tags werden über $tag ausgelesen $field = DllCall($hScriptAudioGenie,"wstr","ID3V2GetTextFrameW","DWORD",_StringToInt($tag)) If @error Then ConsoleWrite("Error Read " & $tag & @error & @CRLF) EndSwitch If IsArray($field) = 1 Then Return $field[0] Else Return $field EndIf EndFunc Func _AudioGenieSaveV1() Local $i = DllCall($hScriptAudioGenie,"short","ID3V1SaveChangesW") If @error Then ConsoleWrite("Error Save V1 " & @error & @CRLF) If $i = 0 Then ConsoleWrite("Error Save V1 " & $i & @CRLF) EndFunc Func _AudioGenieSaveV2() Local $i = DllCall($hScriptAudioGenie,"short","ID3V2SaveChangesW") If @error Then ConsoleWrite("Error Save V2 " & $i[0] & @CRLF) If $i = 0 Then ConsoleWrite("Error Save V2 " & $i & @CRLF) Return @error EndFunc Func _AudioGenieSaveTag($tag,$field) $tag = StringStripWS(StringStripCR($tag),3) $field = StringStripWS(StringStripCR($field),3) If Not $tag Then Return SetError(1,0,1) If Not $field Then Return SetError(2,0,1) Switch $tag ; ID3V1 Tags speichern Case "Title" DllCall($hScriptAudioGenie,"none","ID3V1SetTitleW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Artist" DllCall($hScriptAudioGenie,"none","ID3V1SetArtistW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Album" DllCall($hScriptAudioGenie,"none","ID3V1SetAlbumW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Track" DllCall($hScriptAudioGenie,"none","ID3V1SetTrackW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF & $field) Case "Genre"; -> String führt zu Fehler, evtl die ID speichern mit ID3V1SetGenreIDW DllCall($hScriptAudioGenie,"none","ID3V1SetGenreW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) Case "Year" DllCall($hScriptAudioGenie,"none","ID3V1SetYearW","wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) ; ID3V2 Tags speichern Case "APIC" DllCall($hScriptAudioGenie,"short","ID3V2AddPictureFileW","wstr",$field,"wstr","","WORD","03","WORD","0") If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) Case Else; alle anderen Tags werden über $tag gespeichert DllCall($hScriptAudioGenie,"wstr","ID3V2SetTextFrameW","DWORD",_StringToInt($tag),"wstr",$field) If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF) EndSwitch EndFunc Func _AudioGenieSaveTagGetGenreID($field) If $field = "" Then Return SetError(1,0,1) Local $array[148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk", _ "Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B", _ "Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal", _ "Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk", _ "Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip", _ "Gospel","Noise","AlternRock","Bass","Soul","Punk","Space","Meditative", _ "Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave", _ "Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock", _ "Comedy","Cult","Gangsta","Top","Christian Rap","Pop & Funk","Jungle", _ "Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer", _ "Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll", _ "Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob", _ "Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock", _ "Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening", _ "Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony", _ "Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba", _ "Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock", _ "Drum Solo","A capella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House", _ "Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat", _ "Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian", _ "Christian Rock","Merengue","Salsa","Trash Metal","Anime","JPop","Synthpop"] Local $int = _ArraySearch($array,$field,0,0,1) If $int = -1 Then Return SetError(2,0,1) $int += 1 Return $int EndFunc Func _AudioGenieReadBitrate() Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetBitrateW") Return $result[0] EndFunc Func _AudioGenieReadSamplerate() Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetSampleRateW") Return $result[0] EndFunc Func _AudioGenieReadChannel() Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetChannelModeW") Return $result[0] EndFunc Func _AudioGenieReadVersion() Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetVersionW") Return $result[0] EndFunc Func _AudioGenieReadDuration() Local $result = DllCall($hScriptAudioGenie,"float","AUDIOGetDurationW") $return = Floor($result[0]) Return $return EndFunc
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now