aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/alsa
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output/alsa')
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp17
-rw-r--r--src/plugins/Output/alsa/outputalsa.h10
2 files changed, 13 insertions, 14 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index f037d40b8..8b5a04c5c 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -361,7 +361,7 @@ void OutputALSA::uninitialize()
VolumeALSA::VolumeALSA()
{
//alsa mixer
- mixer = 0;
+ m_mixer = 0;
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
QString card = settings.value("ALSA/mixer_card","hw:0").toString();
QString dev = settings.value("ALSA/mixer_device", "PCM").toString();
@@ -371,8 +371,8 @@ VolumeALSA::VolumeALSA()
VolumeALSA::~VolumeALSA()
{
- if (mixer)
- snd_mixer_close(mixer);
+ if (m_mixer)
+ snd_mixer_close(m_mixer);
}
void VolumeALSA::setVolume(const VolumeSettings &vol)
@@ -391,7 +391,7 @@ VolumeSettings VolumeALSA::volume() const
return vol;
long value = 0;
- snd_mixer_handle_events(mixer);
+ snd_mixer_handle_events(m_mixer);
snd_mixer_selem_get_playback_volume(pcm_element, SND_MIXER_SCHN_FRONT_LEFT, &value);
vol.left = value;
snd_mixer_selem_get_playback_volume(pcm_element, SND_MIXER_SCHN_FRONT_RIGHT, &value);
@@ -407,12 +407,12 @@ int VolumeALSA::setupMixer(QString card, QString device)
qDebug("OutputALSA: setupMixer()");
- if ((err = getMixer(&mixer, card)) < 0)
+ if ((err = getMixer(&m_mixer, card)) < 0)
return err;
parseMixerName(device.toAscii().data(), &name, &index);
- pcm_element = getMixerElem(mixer, name, index);
+ pcm_element = getMixerElem(m_mixer, name, index);
free(name);
@@ -487,8 +487,10 @@ int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card)
{
qWarning("OutputALSA: Attaching to mixer %s failed: %s",
dev, snd_strerror(-err));
+ free(dev);
return -1;
}
+ free(dev);
if ((err = snd_mixer_selem_register(*mixer, NULL, NULL)) < 0)
{
qWarning("OutputALSA: Failed to register mixer: %s",
@@ -501,8 +503,5 @@ int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card)
snd_strerror(-err));
return -1;
}
-
- free(dev);
-
return (*mixer != NULL);
}
diff --git a/src/plugins/Output/alsa/outputalsa.h b/src/plugins/Output/alsa/outputalsa.h
index f909127ed..375a94db8 100644
--- a/src/plugins/Output/alsa/outputalsa.h
+++ b/src/plugins/Output/alsa/outputalsa.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2012 by Ilya Kotov *
+ * Copyright (C) 2006-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -70,7 +70,7 @@ class VolumeALSA : public Volume
{
public:
VolumeALSA();
- ~VolumeALSA();
+ virtual ~VolumeALSA();
void setVolume(const VolumeSettings &vol);
VolumeSettings volume() const;
@@ -79,9 +79,9 @@ private:
//alsa mixer
int setupMixer(QString card, QString device);
void parseMixerName(char *str, char **name, int *index);
- int getMixer(snd_mixer_t **mixer, QString card);
- snd_mixer_elem_t* getMixerElem(snd_mixer_t *mixer, char *name, int index);
- snd_mixer_t *mixer;
+ int getMixer(snd_mixer_t **m_mixer, QString card);
+ snd_mixer_elem_t* getMixerElem(snd_mixer_t *m_mixer, char *name, int index);
+ snd_mixer_t *m_mixer;
snd_mixer_elem_t *pcm_element;
bool m_use_mmap;
};