mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 04:19:19 +02:00
67 lines
2.6 KiB
C++
67 lines
2.6 KiB
C++
//---------------------------------------------------------------------------
|
|
#ifndef RealSoundH
|
|
#define RealSoundH
|
|
|
|
#include "Sound.h"
|
|
#include "Geometry.h"
|
|
|
|
class TRealSound
|
|
{
|
|
protected:
|
|
PSound pSound;
|
|
char* Nazwa; //dla celow odwszawiania
|
|
double fDistance,fPreviousDistance; //dla liczenia Dopplera
|
|
float fFrequency; //częstotliwość samplowania pliku
|
|
int iDoppler; //Ra 2014-07: możliwość wyłączenia efektu Dopplera np. dla śpiewu ptaków
|
|
public:
|
|
vector3 vSoundPosition; //polozenie zrodla dzwieku
|
|
double dSoundAtt; //odleglosc polowicznego zaniku dzwieku
|
|
double AM; //mnoznik amplitudy
|
|
double AA; //offset amplitudy
|
|
double FM; //mnoznik czestotliwosci
|
|
double FA; //offset czestotliwosci
|
|
bool bLoopPlay; //czy zapętlony dźwięk jest odtwarzany
|
|
__fastcall TRealSound();
|
|
__fastcall ~TRealSound();
|
|
void __fastcall Free();
|
|
void __fastcall Init(char *SoundName,double SoundAttenuation,double X,double Y,double Z,bool Dynamic,bool freqmod=false,double rmin=0.0);
|
|
double __fastcall ListenerDistance(vector3 ListenerPosition);
|
|
void __fastcall Play(double Volume,int Looping,bool ListenerInside,vector3 NewPosition);
|
|
void __fastcall Start();
|
|
void __fastcall Stop();
|
|
void __fastcall AdjFreq(double Freq,double dt);
|
|
void __fastcall SetPan(int Pan);
|
|
double GetWaveTime(); //McZapkie TODO: dorobic dla roznych bps
|
|
int GetStatus();
|
|
void __fastcall ResetPosition();
|
|
//void __fastcall FreqReset(float f=22050.0) {fFrequency=f;};
|
|
};
|
|
|
|
class TTextSound : public TRealSound
|
|
{//dźwięk ze stenogramem
|
|
AnsiString asText;
|
|
float fTime; //czas trwania
|
|
public:
|
|
void __fastcall Init(char *SoundName,double SoundAttenuation,double X,double Y,double Z,bool Dynamic,bool freqmod=false,double rmin=0.0);
|
|
void __fastcall Play(double Volume,int Looping,bool ListenerInside,vector3 NewPosition);
|
|
};
|
|
|
|
class TSynthSound
|
|
{//klasa generująca sygnał odjazdu (Rp12, Rp13), potem rozbudować o pracę manewrowego...
|
|
int iIndex[44]; //indeksy początkowe, gdy mamy kilka wariantów dźwięków składowych
|
|
//0..9 - cyfry 0..9
|
|
//10..19 - liczby 10..19
|
|
//21..29 - dziesiątki (*21==*10?)
|
|
//31..39 - setki 100,200,...,800,900
|
|
//40 - "tysiąc"
|
|
//41 - "tysiące"
|
|
//42 - indeksy początkowe dla "odjazd"
|
|
//43 - indeksy początkowe dla "gotów"
|
|
PSound *sSound; //posortowana tablica dźwięków, rozmiar zależny od liczby znalezionych plików
|
|
//a może zamiast wielu plików/dźwięków zrobić jeden połączony plik i posługiwać się czasem od..do?
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
#endif
|