#include <OGLMachineWinDxSound.h>
Inherits OGLMachine.
Definition at line 21 of file OGLMachineWinDxSound.h.
Public Types | |
enum | eVMResult { vmr_OK = 0, vmr_FAILED } |
error enum for InitMachine() More... | |
enum | InternalObject3DBuffer_InitBit { bOb3D_VertexNormal = 1, bOb3D_VertexUVMapping = 2, bOb3D_VertexRGBA = 4 } |
see VirtualMachine::NewObject3DBuffer() More... | |
enum | eMachineLocalization { eMachineLocalization_LocalisationNotImplemented = 0, eMachineLocalization_English, eMachineLocalization_French, eMachineLocalization_SpanishCastellano, eMachineLocalization_German, eMachineLocalization_Italian, eMachineLocalization_Polish, eMachineLocalization_Portuguese } |
This enum spots a cultural langage. returned by GetCurrentWorldLocalizationEnum(). More... | |
Public Member Functions | |
OGLMachineWinDxSound (void) | |
Constructor. | |
virtual | ~OGLMachineWinDxSound (void) |
Destructor. | |
virtual eVMResult | InitMachine () |
Init. | |
virtual void | SwapMainScreenBuffer () |
Swap buffer so that what was drawn is shown. | |
virtual void | ProcessInterface () |
Check the Process the message of the interface, in the real time:. | |
virtual void | EnableMediaSound (SoundInterface *_pNoisyObject, bool _enable=true) |
Register a SoundInterface object that will then generate a mixed sound through SoundInterface::ProcessSoundInterupt() The sound will start instantly. if false, Unregister a media object previously registered with EnableMediaSound(). The sound stops instantly. | |
virtual void | SetSoundCurrentTime (int _seconds, unsigned int _fraction) |
force a date to the clock passed to the sound objects. | |
virtual void | GetCurrentSoundBufferImage (float **const _ppSoundBuffer, unsigned int *_pLength) const |
return an image of the current short sound buffer which is currently played. This is always a 2 float(stereo left,right) table. the play frequency of this sound signal is given by GetPlayFrequency() . The buffer size may vary in time and implementation, and this table is refresh on an undefined rate. It can be used by sound preview methods or live effects. | |
virtual void | SetSoundVolume (float _newVolumeValue) |
tool: change main volume [0,1]. Yes, you can saturate when >1. | |
virtual float | GetSoundVolume () |
tool: get main volume value [0,1]. | |
virtual float | GetPlayFrequency () |
Return the machine main play frequency, in herz, (tick per sec). | |
virtual eMachineLocalization | GetCurrentWorldLocalizationEnum () |
Return the language of the machine, as a simple enum. It can be used by exemple. | |
virtual bool | FileRequester (const char *_pDisplayString, char *_pResultFileName, unsigned int _nameMaxLength) |
In edition mode, ask a file path to a file requester. the string format should vary, but will be compatible with LoadFile() and SaveFile(). | |
virtual const char * | LoadFile (const char *_pFilePath, unsigned int _pFileStart, unsigned int &_LoadByteLength, unsigned int _maximumSizeLoad=0xffffffff) |
load a file into a memory chunk. You can load all in one row, or stream. memory is to be deleted by the CALLER with operator: "delete [] pointer", for each succesfull call. return 0L if failed. | |
virtual bool | SaveFile (const char *_pFilePath, const char *_chunkToWrite, unsigned int _ChunkLength, bool _append=false) |
write a file from a memory chunk. You can save all in one row, or stream. | |
virtual void | Sleep (unsigned int _milliseconds) |
in edition mode, redirection of machine task wait. | |
virtual void | NewObject3DBuffer (InternalObject3DBuffer **_ppVertexAndPolygonBufferOut, unsigned int _maxNbVertex, unsigned int _maxNbTriangle, unsigned int _extraMemberFlags) |
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle() and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods, and drawn with RenderMesh() The object shape can be dynamic and rebuilt, until a call to CompileAsStatic(). In edition mode, object has to be destroyed with DeleteObject3DBuffer(). | |
virtual void | NewObject3DBuffer (InternalObject3DBuffer **_ppVertexAndPolygonBufferOut, unsigned int _maxNbVertex, unsigned int _maxNbTriangle, unsigned int _extraMemberFlags)=0 |
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle(). Important: All the vertex members and polygon index are inited to zero when built. and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods in VirtualMachine::InternalViewPort, and drawn with VirtualMachine::InternalViewPort::RenderMesh(). The object shape can be dynamic and rebuilt, until a call to VirtualMachine::InternalObject3DBuffer::CompileAsStatic(). In edition compilation mode, objects had to be destroyed with VirtualMachine::DeleteObject3DBuffer(). | |
virtual void | DeleteObject3DBuffer (InternalObject3DBuffer **_ppBufferToDestroy)=0 |
Destroy objects previously created with NewObject3DBuffer(). | |
virtual void | NewTexture (InternalTexture **_ppTextureOut) |
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture(). | |
virtual void | NewTexture (InternalTexture **_ppTextureOut)=0 |
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture(). | |
virtual void | DeleteTexture (InternalTexture **_ppTextureToDestroy) |
Destroy objects previously created with NewTexture(). | |
virtual void | DeleteTexture (InternalTexture **_ppTextureToDestroy)=0 |
Destroy objects previously created with NewTexture(). | |
virtual void | NewViewPortChild (InternalViewPort **_ppViewPortOut, InternalViewPort *_pFatherViewPort=0L) |
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | NewViewPortChild (InternalViewPort **_ppViewPortOut, InternalViewPort *_pFatherViewPort=0L)=0 |
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | NewViewPortOnTexture (InternalViewPort **_ppViewPortOut, InternalTexture *_pRootTexture, unsigned int _np2PixelWidth, unsigned int _np2PixelHeight, InternalTexture::TextureImageLayerEnum _layerToAffect) |
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | NewViewPortOnTexture (InternalViewPort **_ppViewPortOut, InternalTexture *_pRootTexture, unsigned int _np2PixelWidth, unsigned int _np2PixelHeight, InternalTexture::TextureImageLayerEnum _layerToAffect)=0 |
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | DeleteViewPort (InternalViewPort **_ppViewPortToDestroy) |
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture(). | |
virtual void | DeleteViewPort (InternalViewPort **_ppViewPortToDestroy)=0 |
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture(). If it has children, children are detached , not destoyed, but are invalid. | |
InternalViewPort * | GetDefaultViewPort () |
Access to the default screen object created with InitMachine(). | |
virtual void | EnableMediaSound (SoundInterface *_pNoisyObject, bool _enable=true) |
Register a SoundInterface object that will then generate a mixed sound through SoundInterface::ProcessSoundInterupt(). The sound will start instantly. if false, Unregister a media object previously registered with EnableMediaSound(,true). The sound stops instantly. Note, that if you choose to use the BaseObject implementation, class VirtualMedia will manage the sound in its own way, and you will not need to use this method. | |
virtual void | ShutTheFuckUp () |
Now, AzurVeda virtual machine implements a very efficient BASS technology known as "ShutTheFuckUp" ! Yes, it will unregister all sound objects to silent the machine. | |
bool | GetQuitMessage () |
If true, means that the user want to quit:. | |
Static Public Member Functions | |
static void | UpdateCircularSoundBuffer () |
Method that update the cicular buffer. It is to be thrown by the main task message handling, for event GetSoundBufferEventHandle(). | |
Static Public Attributes | |
static PFNGLACTIVETEXTUREARBPROC | glActiveTextureARB |
static PFNGLCLIENTACTIVETEXTUREARBPROC | glClientActiveTextureARB |
static bool | m_RenderObjectExtension |
static PFNGLGENRENDERBUFFERSEXTPROC | glGenRenderbuffersEXT |
static PFNGLGENFRAMEBUFFERSEXTPROC | glGenFramebuffersEXT |
static PFNGLBINDRENDERBUFFEREXTPROC | glBindRenderbufferEXT |
static PFNGLRENDERBUFFERSTORAGEEXTPROC | glRenderbufferStorageEXT |
static PFNGLDELETEFRAMEBUFFERSEXTPROC | glDeleteFramebuffersEXT |
static PFNGLDELETERENDERBUFFERSEXTPROC | glDeleteRenderbuffersEXT |
static PFNGLBINDFRAMEBUFFEREXTPROC | glBindFramebufferEXT |
static PFNGLFRAMEBUFFERTEXTURE2DEXTPROC | glFramebufferTexture2DEXT |
static PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC | glFramebufferRenderbufferEXT |
Protected Member Functions | |
int | ActivateScreen (RenderScreen *_pToActivate) |
void | SoundInit (HWND _window) |
protected sound init | |
void | SoundExit () |
protected sound exit | |
void | InitLocalization () |
init localization : | |
Protected Attributes | |
RenderScreen | m_FullScreen |
RenderScreen | m_WindowScreen |
RenderScreen * | m_pCurrentScreen |
HWND | m_hWnd |
handle to the window: | |
HDC | m_DC |
window or screen drawing object | |
HGLRC | m_hRC |
the OpenGL context: | |
const char * | m_pMachineTitle |
keep display title from a context: | |
HINSTANCE | m_hInstance |
Holds The Instance Of The Application. | |
bool | m_active |
true when windows or screen is shown, so we got to draw: | |
volatile unsigned int | m_Width |
screen dimension: can change when resizing: | |
volatile unsigned int | m_Height |
screen dimension: can change when resizing: | |
float | m_SoundVolume |
the current main sound volume of the machine.[0,1] | |
bool | m_AskSwitchScreen |
a switch screen is to be done | |
unsigned int | m_TotalPlaySize |
the total of amount played by a machine, in sample frequency. (to calculate cuurrent sound date.) | |
int | m_LastStartPlayTime_SecondUnit |
unsigned int | m_LastStartPlayTime_SecondFrac |
OGLMachineWinDxSound * | m_pNextMachine |
VirtualMachine::eMachineLocalization | m_MachineLocalization |
InternalViewPort * | m_pDefaultViewPort |
this is the default viewport, it stands the whole screen by default. Used by GetDefaultViewPort(). | |
bool | m_QuitMessage |
If true, means that the user want to quit. Updated by ProcessInterface(). | |
SoundUpdateListCell * | m_pFirstSoundObject |
start of the chained list of the sound object update method: | |
Static Protected Attributes | |
static bool | m_OGLClassIsRegistered |
tell if vOpenGL class is registered. | |
static OGLMachineWinDxSound * | m_LastInstance |
to be reached from process functions | |
static MiniDirectSound * | m_pSoundManager |
static unsigned int | m_NumberOfMachine |
static HANDLE | m_dwNotifyThreadID |
static volatile BOOL | m_ThreadIsAlive |
static DWORD | m_dwDSBufferSize |
Figure out how big the DSound buffer should be 1 * 2 channel * sizeof(short). | |
static DWORD | m_dwPrimaryFreq |
sec freq. | |
static double | m_d32InvPrimaryFreq |
4Go/ freq for double -> lon long conversion. | |
static DWORD | m_dwNextWriteOffset |
circular sound buffer: offset where to write. | |
static float *volatile | m_pStaticSoundBuffer |
the m_dwDSBufferSize * 2 * sizeof(float) table passed to AzurVeda contextes: | |
static float *volatile | m_pStaticSoundBuffer2 |
another one for double buffer. We use dbf to read a previously done chunk and return the curve ! | |
static volatile unsigned int | m_LastSoundBufferLength |
the length on which the last sound buffer(2) was written | |
static OGLMachineWinDxSound * | m_pFirstMachine |
link the machine to a static machine list | |
static volatile bool | m_MachineIsLockedForSoundManagement |
true if MachineIsLockedForSoundManagement. so that we don't use a list that is worked on. | |
static volatile bool | m_MachineIsLockedForSoundUpdate |
Classes | |
class | MiniDirectSound |
struct | RenderScreen |
|
Constructor.
|
|
Destructor.
|
|
|
|
Destroy objects previously created with NewTexture().
|
|
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture().
|
|
Register a SoundInterface object that will then generate a mixed sound through SoundInterface::ProcessSoundInterupt() The sound will start instantly. if false, Unregister a media object previously registered with EnableMediaSound(). The sound stops instantly. OVERRIDED to handle a lock when editing the machine list of for what have to be mixed, and have no mutex.
|
|
In edition mode, ask a file path to a file requester. the string format should vary, but will be compatible with LoadFile() and SaveFile().
Implements VirtualMachine. |
|
return an image of the current short sound buffer which is currently played. This is always a 2 float(stereo left,right) table. the play frequency of this sound signal is given by GetPlayFrequency() . The buffer size may vary in time and implementation, and this table is refresh on an undefined rate. It can be used by sound preview methods or live effects.
Implements VirtualMachine. |
|
Return the language of the machine, as a simple enum. It can be used by exemple.
Implements VirtualMachine. |
|
Return the machine main play frequency, in herz, (tick per sec).
Implements VirtualMachine. |
|
tool: get main volume value [0,1].
Implements VirtualMachine. |
|
init localization :
|
|
Init.
Reimplemented from OGLMachine. |
|
load a file into a memory chunk. You can load all in one row, or stream. memory is to be deleted by the CALLER with operator: "delete [] pointer", for each succesfull call. return 0L if failed.
|
|
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle() and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods, and drawn with RenderMesh() The object shape can be dynamic and rebuilt, until a call to CompileAsStatic(). In edition mode, object has to be destroyed with DeleteObject3DBuffer().
|
|
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture().
|
|
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture().
|
|
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort().
|
|
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort().
|
|
Check the Process the message of the interface, in the real time:.
Implements VirtualMachine. |
|
write a file from a memory chunk. You can save all in one row, or stream.
Implements VirtualMachine. |
|
force a date to the clock passed to the sound objects.
Implements VirtualMachine. |
|
tool: change main volume [0,1]. Yes, you can saturate when >1.
Implements VirtualMachine. |
|
in edition mode, redirection of machine task wait.
Implements VirtualMachine. |
|
protected sound exit
|
|
protected sound init
|
|
Swap buffer so that what was drawn is shown.
Implements OGLMachine. |
|
Method that update the cicular buffer. It is to be thrown by the main task message handling, for event GetSoundBufferEventHandle().
|
|
true when windows or screen is shown, so we got to draw:
Definition at line 218 of file OGLMachineWinDxSound.h. |
|
a switch screen is to be done
Definition at line 244 of file OGLMachineWinDxSound.h. |
|
4Go/ freq for double -> lon long conversion.
Definition at line 267 of file OGLMachineWinDxSound.h. |
|
window or screen drawing object
Definition at line 204 of file OGLMachineWinDxSound.h. |
|
Figure out how big the DSound buffer should be 1 * 2 channel * sizeof(short).
Definition at line 261 of file OGLMachineWinDxSound.h. |
|
circular sound buffer: offset where to write.
Definition at line 272 of file OGLMachineWinDxSound.h. |
|
sec freq.
Definition at line 265 of file OGLMachineWinDxSound.h. |
|
screen dimension: can change when resizing:
Definition at line 222 of file OGLMachineWinDxSound.h. |
|
Holds The Instance Of The Application.
Definition at line 216 of file OGLMachineWinDxSound.h. |
|
the OpenGL context:
Definition at line 206 of file OGLMachineWinDxSound.h. |
|
handle to the window:
Definition at line 202 of file OGLMachineWinDxSound.h. |
|
to be reached from process functions
Definition at line 210 of file OGLMachineWinDxSound.h. |
|
the length on which the last sound buffer(2) was written
Definition at line 279 of file OGLMachineWinDxSound.h. |
|
true if MachineIsLockedForSoundManagement. so that we don't use a list that is worked on.
Definition at line 293 of file OGLMachineWinDxSound.h. |
|
tell if vOpenGL class is registered.
Definition at line 208 of file OGLMachineWinDxSound.h. |
|
this is the default viewport, it stands the whole screen by default. Used by GetDefaultViewPort().
Definition at line 840 of file VirtualMachine.h. Referenced by VirtualMachine::GetDefaultViewPort(). |
|
link the machine to a static machine list
Definition at line 288 of file OGLMachineWinDxSound.h. |
|
start of the chained list of the sound object update method:
Definition at line 852 of file VirtualMachine.h. |
|
keep display title from a context:
Definition at line 214 of file OGLMachineWinDxSound.h. |
|
the m_dwDSBufferSize * 2 * sizeof(float) table passed to AzurVeda contextes:
Definition at line 275 of file OGLMachineWinDxSound.h. |
|
another one for double buffer. We use dbf to read a previously done chunk and return the curve !
Definition at line 277 of file OGLMachineWinDxSound.h. |
|
If true, means that the user want to quit. Updated by ProcessInterface().
Definition at line 843 of file VirtualMachine.h. Referenced by VirtualMachine::GetQuitMessage(). |
|
the current main sound volume of the machine.[0,1]
Definition at line 242 of file OGLMachineWinDxSound.h. |
|
the total of amount played by a machine, in sample frequency. (to calculate cuurrent sound date.)
Definition at line 281 of file OGLMachineWinDxSound.h. |
|
screen dimension: can change when resizing:
Definition at line 220 of file OGLMachineWinDxSound.h. |
/\/\ 4 N k ! N D _______ _ __ ___ _____ ___ _ _ ____ ___________ __//___ /________ |/ / ___________\_______/ \ / _ _ \/ _ / _ / _/_/____/ _ __ / / / / / / / \ \/ / / \ \ / \\___/___/___/ ¯ _____/_____/ ______\___/_____/\________\\ \________/_ ___ __ l____\ /elD! http://www.m4nkind.com \____/