|
Autor |
Nachricht |
philipp_c
CPI Profi
Alter: 103
Anmeldung: 18.12.2004
Beiträge: 3214
2008 BMW e61_530d
|
|
Wie regelt Ihr in euren CarPC Programmen die Lautstärke? Ich habe bisher nur das hier gefunden:
Code:
|
//---------------------------------------------------------------------------
// Funktion SetWaveVolumePercent() setzt die aktuelle Lautstärke des
// rechten oder des linken Lautsprechers in Prozent von der max. Lautstärke.
// Übergabeparameter: dlValue = die neue Lautstärke in % von der max. möglichen,
// blLeft = false für den rechten und true für den linken Lautsprecher
//---------------------------------------------------------------------------
bool SetWaveVolumePercent(double dlValue, bool blLeft)
{
unsigned long ulCurrentVolume = 0;
if(dlValue < 0.0) dlValue = 0.0;
else if(dlValue > 100.0) dlValue = 100.0;
if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR)
{
WORD ilNewVolume = int(double(65535.0)/100.0*dlValue);
if(blLeft) ulCurrentVolume = ulCurrentVolume & 0xFFFF0000 | ilNewVolume;
else ulCurrentVolume = ulCurrentVolume & 0x0000FFFF | ilNewVolume*0x10000;
return waveOutSetVolume(0, ulCurrentVolume) == MMSYSERR_NOERROR;
}
else return false;
}
|
Ich programmiere wie man sieht übrigens in C++
Das regelt jetzt ja aber nur die Wave Lautstärke, wie bekomme ich denn die Master, CD, und Line-In Lautstärke gereglt?
Vielen Dank schonmal
Philipp
|
|
|
|
|
|
|
|
|
motroxx
Manchmalposter
Alter: 40
Anmeldung: 15.10.2004
Beiträge: 80
Wohnort: 74564 Crailsheim
|
|
puh, von c++ habe ich leider absolut keine ahnung...
aber schaue mal auf planet-source-code.com
-> ist echt ne super adresse für sowas...
bisher regle ich nur die viedeo und audio sound-lautstärke...
|
|
|
|
|
|
|
|
philipp_c
CPI Profi
Alter: 103
Anmeldung: 18.12.2004
Beiträge: 3214
2008 BMW e61_530d
|
|
Ja Vielen Dank ich suche mal dort. Ja im moment Regel ich wie gesagt auch die Wave Lautstärke ist für MP3 und Video ja auch ok. Würde aber gern Master regeln können (habe direkt ne Endstufe an der Soundkarte) und außerdem hab ich das Radio an CD-IN und das Telefon an LIne-In
|
|
|
|
|
|
|
|
Shadowrun
Foruminventar
Anmeldung: 21.04.2004
Beiträge: 1129
|
|
schon mal mach winapi funktionen gesucht.
geh auf die ms seite undd durchstöbr mal da das msdn. unter volume oder mastervolume findet sich da bestimmt was
|
|
|
|
|
|
|
|
Fabse
Stammposter
Anmeldung: 30.01.2005
Beiträge: 337
|
|
ok ich zeig euch, wie ich es mache:
erstmal habe ich ein c++ dll-projekt. das enthält die klasse AlexFMixer, die man an verschiedenen stellen im netz findet. zuerst wollte ich die klasse selbst in .net übersetzen (ich arbeite mit c#). aber das war dann doch zu viel interop und zu viel aufwand und da dachte ich, baue ich eine win32dll mit den funktionen und dann nur noch einen wrapper in .net. Die Dateien vom alexfmixer hänge ich an.
dann hab ich in der win32dll noch folgendes:
Code:
|
extern "C" VOLUME_API int GetMasterVolume(void);
extern "C" VOLUME_API void SetMasterVolume(int);
extern "C" VOLUME_API void SetMasterMute(bool Mute);
extern "C" VOLUME_API bool GetMasterMute(void);
|
und hier mit body:
Code:
|
VOLUME_API int GetMasterVolume(void)
{
CAlexfMixer mixer(MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,
NO_SOURCE, MIXERCONTROL_CONTROLTYPE_VOLUME);
if (!mixer.IsOk())
return -1;
return mixer.GetControlValue();
}
VOLUME_API void SetMasterVolume(int vol)
{
CAlexfMixer mixer(MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,
NO_SOURCE, MIXERCONTROL_CONTROLTYPE_VOLUME);
if (!mixer.IsOk())
return;
mixer.SetControlValue(vol);
return;
}
VOLUME_API void SetMasterMute(bool Mute)
{
CAlexfMixer mixer(MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,
NO_SOURCE, MIXERCONTROL_CONTROLTYPE_MUTE );
if (Mute)
{
mixer.Off();
}
else
{
mixer.On();
}
}
VOLUME_API bool GetMasterMute(void)
{
CAlexfMixer mixer(MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,
NO_SOURCE, MIXERCONTROL_CONTROLTYPE_MUTE );
if (mixer.GetControlValue() != 0)
{
return true;
}
else
{
return false;
}
}
|
das war auch schon der schwere teil. jetzt hab ich in meiner assembly dann folgendes:
Code:
|
[DllImport("volume.w32.dll")]
public static extern System.UInt16 GetMasterVolume();
[DllImport("volume.w32.dll")]
public static extern void SetMasterVolume(System.UInt16 val);
[DllImport("volume.w32.dll")]
public static extern bool GetMasterMute();
[DllImport("volume.w32.dll")]
public static extern void SetMasterMute(bool mute);
|
und das wars. so geht es wunderbar. um nicht mehr als nötig an dlls mit mir rumzuschleppen wird die win32-dll als recource in die assembly eingefügt beim kompilieren und erst beim ersten ausführen "entpackt"
die attachments enthalten nur die sourcen, keine vollständigen projekte, aber wer bisschen nen plan hat und das wirklich braucht, der bekommt es auch hin!
|
|
|
|
|
|
|
|
Fabse
Stammposter
Anmeldung: 30.01.2005
Beiträge: 337
|
|
so nu hab ich aber auch ne frage: mein surround mixer von meiner audigy 2 hat so einen netten kleinen bass-regler und den möchte ich bei mir gerne einbauen, einer ne idee ?
|
|
|
|
|
|
|
|
|
Konrad
Forumkenner
Anmeldung: 18.04.2004
Beiträge: 200
|
|
Ums mal einzuwerfen: wenn mal einer von euch ein Proggi schreibt, womit man Bässe und Höhen regeln kann, und das Touchscreen-freundlich, dann her damit .
|
|
|
|
|
|
|
|
Scyn
Stammposter
Alter: 39
Anmeldung: 28.04.2005
Beiträge: 275
Wohnort: Mühlheim(a.M.) / Mannheim
1996 Honda Civic
|
|
|
|
philipp_c
CPI Profi
Alter: 103
Anmeldung: 18.12.2004
Beiträge: 3214
2008 BMW e61_530d
|
|
Wo ist denn der Sozrce dazu?
Gruß Philipp
|
|
|
|
|
|
|
|
Shaker
Manchmalposter
Alter: 46
Anmeldung: 24.02.2010
Beiträge: 99
Wohnort: Lohmar
1989 Nissan 200SX S13
|
|
Hardware: AsRock QC5000-ITX (A4-5000); 4GB RAM; 256GB SSD; M3-ATX; USB: DVB-T/Radio,GPS,BT,WLAN; 7" Touch Software: Windows 8x64; cPOS 1.2; GarminMobilePC; custom tools...
|
|
|
|
|
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen
|
|
|