- Main Page
- Namespaces
- Classes
- Files

- File List

# Listener.cpp

    00001
    00002 //
    00003 // SFML - Simple and Fast Multimedia Library
    00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
    00005 //
    00006 // This software is provided 'as-is', without any express or implied warranty.
    00007 // In no event will the authors be held liable for any damages arising from the use of this software.
    00008 //
    00009 // Permission is granted to anyone to use this software for any purpose,
    00010 // including commercial applications, and to alter it and redistribute it freely,
    00011 // subject to the following restrictions:
    00012 //
    00013 // 1. The origin of this software must not be misrepresented;
    00014 //    you must not claim that you wrote the original software.
    00015 //    If you use this software in a product, an acknowledgment
    00016 //    in the product documentation would be appreciated but is not required.
    00017 //
    00018 // 2. Altered source versions must be plainly marked as such,
    00019 //    and must not be misrepresented as being the original software.
    00020 //
    00021 // 3. This notice may not be removed or altered from any source distribution.
    00022 //
    00024
    00026 // Headers
    00028 #include <SFML/Audio/Listener.hpp>
    00029 #include <SFML/Audio/OpenAL.hpp>
    00030
    00031
    00032 namespace sf
    00033 {
    00037 void Listener::SetGlobalVolume(float Volume)
    00038 {
    00039     ALCheck(alListenerf(AL_GAIN, Volume * 0.01f));
    00040 }
    00041
    00042
    00046 float Listener::GetGlobalVolume()
    00047 {
    00048     float Volume = 0.f;
    00049     ALCheck(alGetListenerf(AL_GAIN, &Volume));
    00050
    00051     return Volume;
    00052 }
    00053
    00054
    00058 void Listener::SetPosition(float X, float Y, float Z)
    00059 {
    00060     ALCheck(alListener3f(AL_POSITION, X, Y, Z));
    00061 }
    00062
    00063
    00067 void Listener::SetPosition(const Vector3f& Position)
    00068 {
    00069     SetPosition(Position.x, Position.y, Position.z);
    00070 }
    00071
    00072
    00076 Vector3f Listener::GetPosition()
    00077 {
    00078     Vector3f Position;
    00079     ALCheck(alGetListener3f(AL_POSITION, &Position.x, &Position.y, &Position.z));
    00080
    00081     return Position;
    00082 }
    00083
    00084
    00089 void Listener::SetTarget(float X, float Y, float Z)
    00090 {
    00091     float Orientation[] = {X, Y, Z, 0.f, 1.f, 0.f};
    00092     ALCheck(alListenerfv(AL_ORIENTATION, Orientation));
    00093 }
    00094
    00095
    00100 void Listener::SetTarget(const Vector3f& Target)
    00101 {
    00102     SetTarget(Target.x, Target.y, Target.z);
    00103 }
    00104
    00105
    00110 Vector3f Listener::GetTarget()
    00111 {
    00112     float Orientation[6];
    00113     ALCheck(alGetListenerfv(AL_ORIENTATION, Orientation));
    00114
    00115     return Vector3f(Orientation[0], Orientation[1], Orientation[2]);
    00116 }
    00117
    00118 } // namespace sf

:: Copyright © 2007-2008 Laurent Gomila, all rights reserved :: Documentation generated by doxygen 1.5.2 ::