Sign in to follow this  
Followers 0
Kademlia

DllCall & Sound input

6 posts in this topic

#1 ·  Posted (edited)

Hey,

im writing a small soundtool für a company im working in. its a online karaoke platform and the tool is designed to help the people to get their soundsettings right.

I am using the Example scripts wirebits wrote. They can be found here:

http://www.autoitscript.com/forum/index.ph...aded&start=

Im not new to AutoIt but im new to DllCalls and WindowsAPI. I tried to figure some things out for 4 days now but i just don´t get it...

There is one thing i just can´t get to work:

I need a Slider (GUICtrlCreateSlider) für the Microphone INPUT (not the output!)

i know this line(MXVolume.au3):

CODE
If $doset Then $ret = DllCall("winmm.dll", "long", "mixerSetControlDetails", "hwnd", $hmxobj, "ptr", DllStructGetPtr($mxcd), "long", BitOR($MIXER_OBJECTF_HMIXER, $MIXER_SETCONTROLDETAILSF_VALUE))

sets the windows slider and i can change what slider to manipulat, but i cant jump from Output to input.

if anyone is acquainted with this....pleeeeeeeease...... :):)

there is just wayyyy to less description in the example.

Edited by Kademlia

Share this post


Link to post
Share on other sites



bump :-/

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

I was working on something like this, to make myself a simple volume mixer control for my 2 soundcards, and mic recording was one of the things, but I put it aside for awhile to work with other projects. I should be getting back to it someday soon. But until that...

You said you'd been working on this for 4 days. So what exactly have you tried? Show us some code.

Anyway, the way I see it, if you're working with scripts from the topic you linked, have you tried to do like this:

Get mic line ID like with this function:

GetMXWaveoutID($mixers,$curmixer,$MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT)

Just instead of MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT you obviously need MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE

Once you have mic source line ID, try getting/setting volume like with this function:

GetSetOutVolume

Edited by Siao

"be smart, drink your wine"

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

thanks for your post!

but thats one of my problems...

$MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE returns the OUTPUT microphone :-/

What i did is trying to understand what wirebits wrote...

I spent the 4 days by writing

for $i = 0 to 16

ConsoleWrite(X)

next

for nearly every line... just dont get it...

MikestarGUI.au3

Mikestar.au3

Edited by Kademlia

Share this post


Link to post
Share on other sites

I found his code to be hard to read and understand too (any code that (over)uses arrays without thoroughly documenting them is), I'll give you that. I also thought his functions weren't as generic as I'd like them to be for my needs, therefore I decided to write my own wrappers for these API calls. And in this task I found the links he posted very useful. That tutorial page describes the process very nicely. Have you read that?


"be smart, drink your wine"

Share this post


Link to post
Share on other sites

No i did not read it, i just used it as "helpfile". but as i am am not into c/c++ it din´t give me much to read. Just staret java 6month ago...

but jeah...

MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE Microphone input (but also used for a combination of Mic/Line input if there isn't a separate line input source).

Dunno why this is Output for me...thats why i startet looking for some other values in his arrays - to maybe find a adressingvalue that had changed or something

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0