Archiv verlassen und diese Seite im Standarddesign anzeigen : Lautstaerke in der Konsole
Hallo,
wenn ich mit meinem Notebook im Bett liege und per ssh auf meinem Desktop Musik laufen lasse stellt sich mir immer die Frage, wie ich die Systemlautstaerke in der Konsole aendere, da ich an die Boxen ja nicht rankomme. Kann mir da jemand weiterhelfen?
Danke
MajorPavian
16.06.03, 20:09
normalerweise dürfte das mit aumix gehen; welchen soundtreiber hast du den; alsa, oss,..?
Gruß
André
Ich habe eine Creative Soundblaster 128er on Board (genauer weiss ich nicht).
Im Kernel sind
Crystal Sound CS4281 und
Creative Ensoniq Audio PCI 97 (ES1371)
Seltsamerweise funktionierte das ganze nur mit Beiden. Fragt nicht warum...
Hilft dir das weiter?
zonendoedel
16.06.03, 21:16
Ich hatte für mich mal ein kleines Programm geschrieben.
// volume.cc
//
#include <stdlib.h>
#include <time.h>
//-------------------------------------------------------------------
#include <linux/soundcard.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#define DEV_MIXER "/dev/mixer"
#define MAX_VOLUME 95
#define MIN_VOLUME 05
#define RIGHT 0x01
#define LEFT 0x02
typedef struct stereovolume
{
unsigned char left;
unsigned char right;
unsigned char dummy[2];
} StereoVolume;
int mixer_fd;
int links,rechts;
//-------------------------------------------------------------------
static void get_laut(int descr,int *links,int *rechts)
{
StereoVolume volume;
int ergebnis;
*links = *rechts=0;
ergebnis=ioctl(descr, MIXER_READ(SOUND_MIXER_VOLUME), &volume) ;
if(ergebnis>=0)
{
*links = volume.left;
*rechts = volume.right;
if(*links>100)
*links =100;
if(*rechts>100)
*rechts =100;
}
} // get_laut
//-------------------------------------------------------------------
static void set_laut(int descr, int links, int rechts)
{
StereoVolume volume;
int ergebnis;
volume.left = links;
volume.right = rechts;
ergebnis = ioctl(mixer_fd, MIXER_WRITE(SOUND_MIXER_VOLUME), &volume);
ergebnis = ioctl(mixer_fd, MIXER_WRITE(SOUND_MIXER_PCM), &volume);
} // set_laut
//-------------------------------------------------------------------
//-------------------------------------------------------------------
static void setze_direkt(char *string_wert)
{
int zahl,gelungen;
gelungen = sscanf(string_wert,"%d",&zahl);
if(gelungen<=0)
return;
if(zahl<0 || zahl > 100)
return;
if ( (mixer_fd=open(DEV_MIXER, O_RDWR, 0)) < 0 )
{
fprintf(stderr, "Can't open %s: ", DEV_MIXER);
perror("");
exit(2);
}
set_laut(mixer_fd,zahl,zahl);
close(mixer_fd);
mixer_fd = -1;
} // setze_direkt
//-------------------------------------------------------------------
main(int arg_anzahl, char *arg_zeichen[])
{
if(arg_anzahl>=2)
{
setze_direkt(arg_zeichen[1]);
exit(0);
}
} // main
Danke, aber bevor ich rumkompiliere habe ich aumix probiert --> funktioniert wunderbar!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.