Audio

Audio

Audio rev. 1Today I want to introduce my „Audio Controller“.
This a lite tool which I wrote in C#, with visual studio.
It has only one main job, the adjustment of all programs with active audio sessions.

NOTE: I don’t allow right now the upload on other servers.

First of all a simple image of the program:

1

 

You can see the basic program in smallest size. In list you see two active audio sessions. When we would move the trackbar to left all audio sessions, will decrease volume by 5%. But selected items in the list are not affected, also you can select multiple items.

Now we want maybe change the name or the volume of different items. For that we can just right click on an item, and click „Edit Session“.

2

 

At this window you can see „Process Name“, „Description“ also you give the item a custom name, after you selected a displayed name you see the result in „Displayed Name“.
Volume is the value which you would also see in „Volume Mixer“ of Windows. When you set up all you can press „Save“, normally the window will disappear.

Last window which I want show you is the option window, changed in new version. Update of image soon.

3

Here you can set opacity of the main window, also enable beta stuff.
„Save main volume“ allows the program to save the value which set in runtime.
„Close ‚Edit Session‘ on save“ will close the „Edit Session“ window, when not checked it will stay open.

Hotkeys:

STRG + Arrow UP = Set volume to 100%.
STRG + Arrow DOWN = Set volume to 0%.
STRG + Arrow LEFT = Decrease volume by 5%.
STRG + Arrow RIGHT = Increase volume by 5%.

What is about a download ?

Sure here you have the download, but for the source code you have to wait a few more weeks.
Before download know it is only for windows and with .NET Framework 4.5, download only from Microsoft or trusted site.
Download here, not ads, directly from this server: Audio rev. 1!

17.03.2015
New build soon.

A few information around the program:

  • Drag’n’Drop is a beta, because the focus is lost.
  • Opacity, don’t set it to ‚0‘. Should it happen just delete the „Options“ folder in main folder of „Audio“
  • „Session Data“ folder, contains all single saved data.
  • Hotkeys maybe not work in every game.
  • „Data -> OverAll“ if enabled „Audio“ will stay in foreground.
  • „Auto Update“ isn’t ready right now.
  • Custom hotkeys are on the way.  :)
  • My blog is at freedmo.de.
  • I’m looking for icon, contact via e-mail feedback[@]online.de.

You have feedback just write an e-mail „feedback[@]online.de“.

Small design

Small design

A preview of the small window of audio controller.2

Full resizeable, minimum size of 160 x 135 pixel.

Compare default vs small, in 1:1 ratio:

audioctl1 vs 2

C++ Funktionspointer

C++ Funktionspointer

*Überarbeitungen noch möglich, Beispiel ist voll Funktionsfähig.

Heute möchte ich euch ein Beispiel für Funktionspointer unter C++ zeigen.
Dabei soll eine Funktion Multi(int val), durch eine Klasse aufgerufen werden.

Erstmal aber was zum Aufbau eines Funktionspointer:

void ( *POINTERNAME ) ( int )

Als erster haben wir mit „void“ den Rückgabewert der Funktion für die wir einen Pointer haben wollen.
Eingeklammert folgt der Name des Pointers „( *POINTERNAME )“.
Wenn wir uns es so anschauen hätten wir einen Pointer vom Typ „void“:

void ( *POINTERNAME )

Erst durch das Einfügen der Parameter, in diesem Beispiel „( int )“, wird das ganze zu einem Funktionspointer.

Eine Funktion, als Prototyp, für diesen Pointer könnte so aussehen:

void Multi(int val);

Es geht aber auch folgendes:


//Funktionsprototyp
int Multi( int );

//Funktionspointer
int (*POINTERNAME) (int);

dabei könnte Multiplikation nun den Wert der Berechnung zurückgeben.

Nun kommt ein komplettes Beispiel, mit Code und Kommentaren.

Dazu werden wir folgende Klasse nutzen:


//PointerKlasse.h

#ifndef POINTERKLASSE_H
#define POINTERKLASSE_H

class PointerKlasse
{
private:
 //Pointer zur Funktion außerhalb der Klasse
 void ( *ptr ) ( int );
public:
 PointerKlasse();
 ~PointerKlasse();
 //Funktion mit der die Funktion, welches außerhalb der Klasse ist, aufgerufen wird.
 virtual void Funktion(int);
 //Setzen der Externen Funktion
 void SetPointer ( void ( *fk ) ( int ) );
};

#endif // POINTERKLASSE_H

 


//PointerKlasse.cpp

#include "PointerKlasse.h"

PointerKlasse::PointerKlasse()
{
 //ctor
}

PointerKlasse::~PointerKlasse()
{
 //dtor
}

void PointerKlasse::Funktion(int val)
{
 //Aufruf der externen Funktion, in dem wir den Pointer nutzen.
 ptr(val);
}

void PointerKlasse::SetPointer ( void ( *fk ) ( int ) )
{
 //Parameter zur Membervariable setzen.
 ptr = fk;
}

Damit wir das ganze nun auch benutzen können, kommt hier noch die „main.cpp“:


#include "aufruf.h"
#include <iostream>

using namespace std;
//Prototyp
static void Multi(int);

int main()
{
 //Erstellung der Klasse.
 PointerKlasse Aufrufer;
 //Funktion die wir aufrufen wollen, als Argument übergeben.
 //Wichtig ist der Adressoperator '&', damit die Adresse der Funktion übergeben wird.
 Aufrufer.SetPointer(&Multi);

cout << "Zahl eingeben: ";
 int Zahl;
 //Überprüfung ob die Eingabe eine Zahl ist.
 do
 {
 if(cin.fail())
 {
 cin.clear();
 cin.ignore (1000, '\n');
 cout << "Eingabe kein Zahl." << endl << "Neue Zahl eingeben: ";
 }
 cin >> Zahl;
 }
 while(cin.fail());

//Aufruf der Funktion mit der Variable Zahl.
 //Diese Funktion ruft nun über den Pointer Multi(Zahl) auf.
 Aufrufer.Funktion(Zahl);
 return 0;
}

//Multi(int) führt eine Berechnung aus.
void Multi(int val)
{
 cout << val << "x" << val << "=" << val + val << endl;
}

ƒreedmo