Merge with trunk r37757.
[blender.git] / intern / audaspace / intern / AUD_I3DDevice.h
index 629b0997d4d5da1888a6e9a7859b3c4395d1c35f..036f7b1fa94c5f40225cced8616bb1a33877ad87 100644 (file)
@@ -1,36 +1,40 @@
 /*
  * $Id$
  *
- * ***** BEGIN LGPL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
- * Copyright 2009 Jörg Hermann Müller
+ * Copyright 2009-2011 Jörg Hermann Müller
  *
  * This file is part of AudaSpace.
  *
- * AudaSpace is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
+ * Audaspace 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.
  *
  * AudaSpace 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 Lesser General Public License for more details.
+ * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public License
- * along with AudaSpace.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Audaspace; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * ***** END LGPL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
+/** \file audaspace/intern/AUD_I3DDevice.h
+ *  \ingroup audaspaceintern
+ */
+
+
 #ifndef AUD_I3DDEVICE
 #define AUD_I3DDEVICE
 
 #include "AUD_Space.h"
 #include "AUD_3DMath.h"
 
-struct AUD_Handle;
-
 /**
  * This class represents an output device for 3D sound.
  */
@@ -115,200 +119,6 @@ public:
         * \param model distance model.
         */
        virtual void setDistanceModel(AUD_DistanceModel model)=0;
-
-
-
-       /**
-        * Retrieves the location of a source.
-        * \param handle The handle of the source.
-        * \return The location.
-        */
-       virtual AUD_Vector3 getSourceLocation(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the location of a source.
-        * \param handle The handle of the source.
-        * \param location The new location.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setSourceLocation(AUD_Handle* handle, const AUD_Vector3& location)=0;
-
-       /**
-        * Retrieves the velocity of a source.
-        * \param handle The handle of the source.
-        * \return The velocity.
-        */
-       virtual AUD_Vector3 getSourceVelocity(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the velocity of a source.
-        * \param handle The handle of the source.
-        * \param velocity The new velocity.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setSourceVelocity(AUD_Handle* handle, const AUD_Vector3& velocity)=0;
-
-       /**
-        * Retrieves the orientation of a source.
-        * \param handle The handle of the source.
-        * \return The orientation as quaternion.
-        */
-       virtual AUD_Quaternion getSourceOrientation(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the orientation of a source.
-        * \param handle The handle of the source.
-        * \param orientation The new orientation as quaternion.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setSourceOrientation(AUD_Handle* handle, const AUD_Quaternion& orientation)=0;
-
-
-       /**
-        * Checks whether the source location, velocity and orientation are relative
-        * to the listener.
-        * \param handle The handle of the source.
-        * \return Whether the source is relative.
-        */
-       virtual bool isRelative(AUD_Handle* handle)=0;
-
-       /**
-        * Sets whether the source location, velocity and orientation are relative
-        * to the listener.
-        * \param handle The handle of the source.
-        * \param relative Whether the source is relative.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setRelative(AUD_Handle* handle, bool relative)=0;
-
-       /**
-        * Retrieves the maximum volume of a source.
-        * \param handle The handle of the source.
-        * \return The maximum volume.
-        */
-       virtual float getVolumeMaximum(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the maximum volume of a source.
-        * \param handle The handle of the source.
-        * \param volume The new maximum volume.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setVolumeMaximum(AUD_Handle* handle, float volume)=0;
-
-       /**
-        * Retrieves the minimum volume of a source.
-        * \param handle The handle of the source.
-        * \return The minimum volume.
-        */
-       virtual float getVolumeMinimum(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the minimum volume of a source.
-        * \param handle The handle of the source.
-        * \param volume The new minimum volume.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setVolumeMinimum(AUD_Handle* handle, float volume)=0;
-
-       /**
-        * Retrieves the maximum distance of a source.
-        * If a source is further away from the reader than this distance, the
-        * volume will automatically be set to 0.
-        * \param handle The handle of the source.
-        * \return The maximum distance.
-        */
-       virtual float getDistanceMaximum(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the maximum distance of a source.
-        * If a source is further away from the reader than this distance, the
-        * volume will automatically be set to 0.
-        * \param handle The handle of the source.
-        * \param distance The new maximum distance.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setDistanceMaximum(AUD_Handle* handle, float distance)=0;
-
-       /**
-        * Retrieves the reference distance of a source.
-        * \param handle The handle of the source.
-        * \return The reference distance.
-        */
-       virtual float getDistanceReference(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the reference distance of a source.
-        * \param handle The handle of the source.
-        * \param distance The new reference distance.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setDistanceReference(AUD_Handle* handle, float distance)=0;
-
-       /**
-        * Retrieves the attenuation of a source.
-        * \param handle The handle of the source.
-        * \return The attenuation.
-        */
-       virtual float getAttenuation(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the attenuation of a source.
-        * This value is used for distance calculation.
-        * \param handle The handle of the source.
-        * \param factor The new attenuation.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setAttenuation(AUD_Handle* handle, float factor)=0;
-
-       /**
-        * Retrieves the outer angle of the cone of a source.
-        * \param handle The handle of the source.
-        * \return The outer angle of the cone.
-        */
-       virtual float getConeAngleOuter(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the outer angle of the cone of a source.
-        * \param handle The handle of the source.
-        * \param angle The new outer angle of the cone.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setConeAngleOuter(AUD_Handle* handle, float angle)=0;
-
-       /**
-        * Retrieves the inner angle of the cone of a source.
-        * \param handle The handle of the source.
-        * \return The inner angle of the cone.
-        */
-       virtual float getConeAngleInner(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the inner angle of the cone of a source.
-        * \param handle The handle of the source.
-        * \param angle The new inner angle of the cone.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setConeAngleInner(AUD_Handle* handle, float angle)=0;
-
-       /**
-        * Retrieves the outer volume of the cone of a source.
-        * The volume between inner and outer angle is interpolated between inner
-        * volume and this value.
-        * \param handle The handle of the source.
-        * \return The outer volume of the cone.
-        */
-       virtual float getConeVolumeOuter(AUD_Handle* handle)=0;
-
-       /**
-        * Sets the outer volume of the cone of a source.
-        * The volume between inner and outer angle is interpolated between inner
-        * volume and this value.
-        * \param handle The handle of the source.
-        * \param volume The new outer volume of the cone.
-        * \return Whether the action succeeded.
-        */
-       virtual bool setConeVolumeOuter(AUD_Handle* handle, float volume)=0;
 };
 
 #endif //AUD_I3DDEVICE