Commit 3a348579 authored by Rémi Duraffort's avatar Rémi Duraffort

libvlcpp: add an audio class to handle audio functions.

parent cd6da087
lib_LTLIBRARIES = libvlcpp.la lib_LTLIBRARIES = libvlcpp.la
libvlcpp_la_SOURCES = \ libvlcpp_la_SOURCES = \
audio.cpp \
audio.hpp \
exception.cpp \ exception.cpp \
exception.hpp \ exception.hpp \
libvlc.cpp \ libvlc.cpp \
......
/*****************************************************************************
* audio.cpp: audio part of the media player
*****************************************************************************
* Copyright (C) 2010 the VideoLAN team
* $Id$
*
* Authors: Rémi Duraffort <ivoire@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "audio.hpp"
#include "exception.hpp"
using namespace libvlc;
Audio::Audio( libvlc_instance_t *libvlcInstance, libvlc_media_player_t *player )
{
m_libvlcInstance = libvlcInstance;
libvlc_retain( m_libvlcInstance );
m_player = player;
libvlc_media_player_retain( m_player );
}
Audio::~Audio()
{
libvlc_media_player_release( m_player );
libvlc_release( m_libvlcInstance );
}
void Audio::toggleMute()
{
libvlc_audio_toggle_mute( m_libvlcInstance );
}
int Audio::mute()
{
return libvlc_audio_get_mute( m_libvlcInstance );
}
void Audio::setMute( int mute )
{
libvlc_audio_set_mute( m_libvlcInstance, mute );
}
int Audio::volume()
{
return libvlc_audio_get_volume( m_libvlcInstance );
}
void Audio::setVolume( int volume )
{
Exception ex;
libvlc_audio_set_volume( m_libvlcInstance, volume, &ex.ex );
}
int Audio::track()
{
Exception ex;
return libvlc_audio_get_track( m_player, &ex.ex );
}
int Audio::trackCount()
{
Exception ex;
return libvlc_audio_get_track_count( m_player, &ex.ex );
}
void Audio::setTrack( int track )
{
Exception ex;
libvlc_audio_set_track( m_player, track, &ex.ex );
}
/*****************************************************************************
* audio.hpp: audio part of the media player
*****************************************************************************
* Copyright (C) 2010 the VideoLAN team
* $Id$
*
* Authors: Rémi Duraffort <ivoire@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef LIBVLCPP_AUDIO_HPP
#define LIBVLCPP_AUDIO_HPP
#include <vlc/libvlc.h>
#include <vlc/libvlc_media.h>
#include <vlc/libvlc_media_player.h>
#include "libvlc.hpp"
namespace libvlc
{
class Audio
{
public:
/**
* Constructor
* @param libvlcInstance: the libvlc instance
* @param player: the player handling the audio
*/
Audio( libvlc_instance_t *libvlcInstance, libvlc_media_player_t *player );
/** Destructor */
~Audio();
/**
* Toggle mute status
*/
void toggleMute();
/**
* Get the mute status
* @return true if the sound is muted
*/
int mute();
/**
* Set the mute status
* @param mute: true to mute, otherwise unmute
*/
void setMute( int mute );
/**
* Get the current volume
* @return the current volume
*/
int volume();
/**
* Set the volume
* @param volume: the new volume
*/
void setVolume( int volume );
/**
* Get the current track
* @return the current audio track
*/
int track();
/**
* Get the number of audio tracks
* @return the number of audio tracks
*/
int trackCount();
/**
* Set the audio track
* @param track: the audio track
*/
void setTrack( int track );
/**
* Get the current audio channel
* @return the current audio channel
*/
int channel();
/**
* Set the audio channel
* @param channel: the new audio channel
*/
void setChannel( int channel );
/** trackDescription */
private:
/** The media player instance of libvlc */
libvlc_media_player_t *m_player;
/** The instance of libvlc */
libvlc_instance_t *m_libvlcInstance;
};
};
#endif // LIBVLCPP_AUDIO_HPP
/***************************************************************************** /*****************************************************************************
* video.cpp: video part of an media player * video.cpp: video part of the media player
***************************************************************************** *****************************************************************************
* Copyright (C) 2010 the VideoLAN team * Copyright (C) 2010 the VideoLAN team
* $Id$ * $Id$
......
/***************************************************************************** /*****************************************************************************
* video.hpp: video part of an media player * video.hpp: video part of the media player
***************************************************************************** *****************************************************************************
* Copyright (C) 2010 the VideoLAN team * Copyright (C) 2010 the VideoLAN team
* $Id$ * $Id$
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment