Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

cardplayback_be.cpp

Go to the documentation of this file.
00001 /*
00002         $Id: cardplayback_be.cpp,v 1.1 2001/03/06 15:09:23 mbn Exp $
00003 
00004         ------------------------------------------------------------------------
00005         ClanLib, the platform independent game SDK.
00006 
00007         This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
00008         version 2. See COPYING for details.
00009 
00010         For a total list of contributers see CREDITS.
00011 
00012         ------------------------------------------------------------------------
00013 */
00014 
00015 #include "Core/precomp.h"
00016 #include <math.h>
00017 
00018 #include <Core/Sound/Be/cardplayback_be.h>
00019 
00020 CL_CardPlayback_Be::CL_CardPlayback_Be(BSimpleGameSound *buffer)
00021 {
00022         if (buffer)
00023         {
00024                 if (buffer->IsPlaying())
00025                 {
00026                         soundbuffer = (BSimpleGameSound*)buffer->Clone();
00027                 } else
00028                 {
00029                         soundbuffer = buffer;
00030                 }
00031                 if (soundbuffer->InitCheck() != B_OK)
00032                 {
00033                         std::cout << "Something went wrong with sound initialization" << std::endl;
00034                         delete soundbuffer;
00035                         soundbuffer = NULL;
00036                 }
00037         } else
00038         {
00039                 soundbuffer = NULL;
00040         }
00041 }
00042 
00043 CL_CardPlayback_Be::~CL_CardPlayback_Be()
00044 {
00045         std::cout << "deleted" << std::endl;
00046         if (soundbuffer)
00047                 delete soundbuffer;
00048 }
00049 
00050 // Functions inherited from Generic:
00051 // ---------------------------------
00052 
00053 int CL_CardPlayback_Be::get_position()
00054 {
00055         return -1;
00056 }
00057 
00058 float CL_CardPlayback_Be::get_position_relative()
00059 {
00060         return 0;
00061 }
00062 
00063 bool CL_CardPlayback_Be::set_position(int new_pos)
00064 {
00065         return false;
00066 }
00067 
00068 bool CL_CardPlayback_Be::set_position_relative(float new_pos)
00069 {
00070         return false;
00071 }
00072 
00073 int CL_CardPlayback_Be::get_length()
00074 {
00075         return 0;
00076 }
00077 
00078 int CL_CardPlayback_Be::get_frequency()
00079 {
00080         if (soundbuffer==NULL) return 0;
00081 
00082         gs_attribute attr;
00083         attr.attribute = B_GS_SAMPLING_RATE;
00084         
00085         soundbuffer->GetAttributes(&attr,1);
00086         return (int)attr.value;
00087 }
00088 
00089 bool CL_CardPlayback_Be::set_frequency(int new_freq)
00090 {
00091         if (soundbuffer==NULL) return 0;
00092 
00093         gs_attribute attr;
00094         attr.attribute = B_GS_SAMPLING_RATE;
00095         attr.value = new_freq;
00096 
00097         return (soundbuffer->SetAttributes(&attr,1) == B_OK);
00098 }
00099 
00100 float CL_CardPlayback_Be::get_volume()
00101 {
00102         if (soundbuffer==NULL) return 0;
00103 
00104         return soundbuffer->Gain();
00105 }
00106 
00107 bool CL_CardPlayback_Be::set_volume(float new_volume)
00108 {
00109         if (soundbuffer==NULL) return 0;
00110 
00111         return (soundbuffer->SetGain(new_volume) == B_OK);
00112 }
00113 
00114 float CL_CardPlayback_Be::get_pan()
00115 {
00116         if (soundbuffer==NULL) return 0;
00117 
00118         return soundbuffer->Pan();
00119 }
00120 
00121 bool CL_CardPlayback_Be::set_pan(float new_pan)
00122 {
00123         if (soundbuffer==NULL) return 0;
00124 
00125         return (soundbuffer->SetPan(new_pan) == B_OK);
00126 }
00127 
00128 CL_SoundPlayBackDesc *CL_CardPlayback_Be::add_playback_desc(
00129         CL_SoundPlayBackDesc * desc)
00130 {
00131         return desc;
00132 }
00133 
00134 bool CL_CardPlayback_Be::remove_playback_desc(
00135         CL_SoundPlayBackDesc * /*desc*/)
00136 {
00137         return true;
00138 }
00139 
00140 void CL_CardPlayback_Be::play()
00141 {
00142         if (soundbuffer==NULL) return;
00143 
00144         soundbuffer->StartPlaying();
00145 }
00146 
00147 void CL_CardPlayback_Be::stop()
00148 {
00149         if (soundbuffer==NULL) return;
00150 
00151         soundbuffer->StopPlaying();
00152 }
00153 
00154 bool CL_CardPlayback_Be::is_playing()
00155 {
00156         return soundbuffer->IsPlaying();
00157 }

Generated at Wed Apr 4 19:53:59 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001