defuze.me  Client
audioeffectbalance.cpp
00001 /**************************************************************************
00002 ** defuze.me Epitech Innovative Project
00003 **
00004 ** Copyright 2010-2011
00005 **   Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard
00006 **   Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier
00007 **
00008 ** All rights reserved.
00009 **************************************************************************/
00010 
00011 #include "audioeffectbalance.hpp"
00012 #include "audioeffectbalancewidget.hpp"
00013 #include "math.h"
00014 
00015 using namespace Audio;
00016 
00017 AudioEffectBalance::AudioEffectBalance()
00018 {
00019     _balance = 0;
00020     widget = 0;
00021 }
00022 
00023 int&    AudioEffectBalance::balance()
00024 {
00025     return _balance;
00026 }
00027 
00028 void    AudioEffectBalance::apply(short *data, int len)
00029 {
00030     for(int i = 0; i < (len / 2); i++)
00031     {
00032         if ((i % 2 && _balance < 0) || (_balance > 0 && i%2 == 0))
00033             data[i] *= ((10 - abs(_balance)) / 10.);
00034     }
00035 }
00036 
00037 AudioEffectWidget*  AudioEffectBalance::getWidget()
00038 {
00039     if (!widget)
00040         widget = new AudioEffectBalanceWidget(this);
00041     return widget;
00042 }