[Mono-dev] Please Miguel de Icaza or other help-me MonoBasic+FMOD

LB Audio Uchoa NET lbaudio at uchoanet.com.br
Thu Apr 19 07:21:47 EDT 2007


Code Error Only Click Button "Play a sine wave":
Could anybody make the test in Open Suse 10.2 32Bits?

http://www.radiopclb.bluehosting.com.br/fmodVB.rar

Or

FmodEx.vb

Imports System.Runtime.InteropServices
Public Class FMODEx

Public Enum FMOD_RESULT

FMOD_OK ' No errors.

FMOD_ERR_ALREADYLOCKED ' Tried to call lock a second time before unlock was 
called.

FMOD_ERR_BADCOMMAND ' Tried to call a function on a data type that does not 
allow this type of functionality (ie calling Sound::lock on a streaming 
sound).

FMOD_ERR_CDDA_DRIVERS ' Neither NTSCSI nor ASPI could be initialised.

FMOD_ERR_CDDA_INIT ' An error occurred while initialising the CDDA 
subsystem.

FMOD_ERR_CDDA_INVALID_DEVICE ' Couldn't find the specified device.

FMOD_ERR_CDDA_NOAUDIO ' No audio tracks on the specified disc.

FMOD_ERR_CDDA_NODEVICES ' No CD/DVD devices were found.

FMOD_ERR_CDDA_NODISC ' No disc present in the specified drive.

FMOD_ERR_CDDA_READ ' A CDDA read error occurred.

FMOD_ERR_CHANNEL_ALLOC ' Error trying to allocate a channel.

FMOD_ERR_CHANNEL_STOLEN ' The specified channel has been reused to play 
another sound.

FMOD_ERR_COM ' A Win32 COM related error occured. COM failed to initialize 
or a QueryInterface failed meaning a Windows codec or driver was not 
installed properly.

FMOD_ERR_DMA ' DMA Failure. See debug output for more information.

FMOD_ERR_DSP_CONNECTION ' DSP connection error. Connection possibly caused a 
cyclic dependancy.

FMOD_ERR_DSP_FORMAT ' DSP Format error. A DSP unit may have attempted to 
connect to this network with the wrong format.

FMOD_ERR_DSP_NOTFOUND ' DSP connection error. Couldn't find the DSP unit 
specified.

FMOD_ERR_DSP_RUNNING ' DSP error. Cannot perform this operation while the 
network is in the middle of running. This will most likely happen if a 
connection or disconnection is attempted in a DSP callback.

FMOD_ERR_DSP_TOOMANYCONNECTIONS ' DSP connection error. The unit being 
connected to or disconnected should only have 1 input or output.

FMOD_ERR_FILE_BAD ' Error loading file.

FMOD_ERR_FILE_COULDNOTSEEK ' Couldn't perform seek operation. This is a 
limitation of the medium (ie netstreams) or the file format.

FMOD_ERR_FILE_EOF ' End of file unexpectedly reached while trying to read 
essential data (truncated data?).

FMOD_ERR_FILE_NOTFOUND ' File not found.

FMOD_ERR_FILE_UNWANTED ' Unwanted file access occured.

FMOD_ERR_FORMAT ' Unsupported file or audio format.

FMOD_ERR_HTTP ' A HTTP error occurred. This is a catch-all for HTTP errors 
not listed elsewhere.

FMOD_ERR_HTTP_ACCESS ' The specified resource requires authentication or is 
forbidden.

FMOD_ERR_HTTP_PROXY_AUTH ' Proxy authentication is required to access the 
specified resource.

FMOD_ERR_HTTP_SERVER_ERROR ' A HTTP server error occurred.

FMOD_ERR_HTTP_TIMEOUT ' The HTTP request timed out.

FMOD_ERR_INITIALIZATION ' FMOD was not initialized correctly to support this 
function.

FMOD_ERR_INITIALIZED ' Cannot call this command after System::init.

FMOD_ERR_INTERNAL ' An error occured that wasnt supposed to. Contact 
support.

FMOD_ERR_INVALID_ADDRESS ' On Xbox 360, this memory address passed to FMOD 
must be physical, (ie allocated with XPhysicalAlloc.)

FMOD_ERR_INVALID_FLOAT ' Value passed in was a NaN, Inf or denormalized 
float.

FMOD_ERR_INVALID_HANDLE ' An invalid object handle was used.

FMOD_ERR_INVALID_PARAM ' An invalid parameter was passed to this function.

FMOD_ERR_INVALID_SPEAKER ' An invalid speaker was passed to this function 
based on the current speaker mode.

FMOD_ERR_INVALID_VECTOR ' The vectors passed in are not unit length, or 
perpendicular.

FMOD_ERR_IRX ' PS2 only. fmodex.irx failed to initialize. This is most 
likely because you forgot to load it.

FMOD_ERR_MEMORY ' Not enough memory or resources.

FMOD_ERR_MEMORY_IOP ' PS2 only. Not enough memory or resources on 
PlayStation 2 IOP ram.

FMOD_ERR_MEMORY_SRAM ' Not enough memory or resources on console sound ram.

FMOD_ERR_MEMORY_CANTPOINT ' Can't use FMOD_OPENMEMORY_POINT on non PCM 
source data, or non mp3/xma/adpcm data if FMOD_CREATECOMPRESSEDSAMPLE was 
used.

FMOD_ERR_NEEDS2D ' Tried to call a command on a 3d sound when the command 
was meant for 2d sound.

FMOD_ERR_NEEDS3D ' Tried to call a command on a 2d sound when the command 
was meant for 3d sound.

FMOD_ERR_NEEDSHARDWARE ' Tried to use a feature that requires hardware 
support. (ie trying to play a VAG compressed sound in software on PS2).

FMOD_ERR_NEEDSSOFTWARE ' Tried to use a feature that requires the software 
engine. Software engine has either been turned off or command was executed 
on a hardware channel which does not support this feature.

FMOD_ERR_NET_CONNECT ' Couldn't connect to the specified host.

FMOD_ERR_NET_SOCKET_ERROR ' A socket error occurred. This is a catch-all for 
socket-related errors not listed elsewhere.

FMOD_ERR_NET_URL ' The specified URL couldn't be resolved.

FMOD_ERR_NOTREADY ' Operation could not be performed because specified sound 
is not ready.

FMOD_ERR_OUTPUT_ALLOCATED ' Error initializing output device, but more 
specifically, the output device is already in use and cannot be reused.

FMOD_ERR_OUTPUT_CREATEBUFFER ' Error creating hardware sound buffer.

FMOD_ERR_OUTPUT_DRIVERCALL ' A call to a standard soundcard driver failed, 
which could possibly mean a bug in the driver or resources were missing or 
exhausted.

FMOD_ERR_OUTPUT_FORMAT ' Soundcard does not support the minimum features 
needed for this soundsystem (16bit stereo output).

FMOD_ERR_OUTPUT_INIT ' Error initializing output device.

FMOD_ERR_OUTPUT_NOHARDWARE ' FMOD_HARDWARE was specified but the sound card 
does not have the resources nescessary to play it.

FMOD_ERR_OUTPUT_NOSOFTWARE ' Attempted to create a software sound but no 
software channels were specified in System::init.

FMOD_ERR_PAN ' Panning only works with mono or stereo sound sources.

FMOD_ERR_PLUGIN ' An unspecified error has been returned from a 3rd party 
plugin.

FMOD_ERR_PLUGIN_MISSING ' A requested output, dsp unit type or codec was not 
available.

FMOD_ERR_PLUGIN_RESOURCE ' A resource that the plugin requires cannot be 
found. (ie the DLS file for MIDI playback)

FMOD_ERR_RECORD ' An error occured trying to initialize the recording 
device.

FMOD_ERR_REVERB_INSTANCE ' Specified Instance in FMOD_REVERB_PROPERTIES 
couldn't be set. Most likely because another application has locked the EAX4 
FX slot.

FMOD_ERR_SUBSOUNDS ' The error occured because the sound referenced contains 
subsounds. (ie you cannot play the parent sound as a static sample, only its 
subsounds.)

FMOD_ERR_SUBSOUND_ALLOCATED ' This subsound is already being used by another 
sound, you cannot have more than one parent to a sound. Null out the other 
parent's entry first.

FMOD_ERR_TAGNOTFOUND ' The specified tag could not be found or there are no 
tags.

FMOD_ERR_TOOMANYCHANNELS ' The sound created exceeds the allowable input 
channel count. This can be increased using the maxinputchannels parameter in 
System::setSoftwareFormat.

FMOD_ERR_UNIMPLEMENTED ' Something in FMOD hasn't been implemented when it 
should be! contact support!

FMOD_ERR_UNINITIALIZED ' This command failed because System::init or 
System::setDriver was not called.

FMOD_ERR_UNSUPPORTED ' A command issued was not supported by this object. 
Possibly a plugin without certain callbacks specified.

FMOD_ERR_UPDATE ' On PS2, System::update was called twice in a row when 
System::updateFinished must be called first.

FMOD_ERR_VERSION ' The version number of this file format is not supported.

FMOD_ERR_EVENT_FAILED ' An Event failed to be retrieved, most likely due to 
"just fail" being specified as the max playbacks behaviour.

FMOD_ERR_EVENT_INTERNAL ' An error occured that wasn't supposed to. See 
debug log for reason.

FMOD_ERR_EVENT_NAMECONFLICT ' A category with the same name already exists.

FMOD_ERR_EVENT_NOTFOUND ' The requested event, event group, event category 
or event property could not be found.

End Enum

Public Enum FMOD_INITFLAGS

FMOD_INIT_NORMAL = &H0 ' All platforms - Initialize normally.

FMOD_INIT_STREAM_FROM_UPDATE = &H1 ' All platforms - No stream thread is 
created internally. Streams are driven from System::update. Mainly used with 
non-realtime outputs. '

FMOD_INIT_3D_RIGHTHANDED = &H2 ' All platforms - FMOD will treat +X as left, 
+Y as up and +Z as forwards.

FMOD_INIT_DISABLESOFTWARE = &H4 ' All platforms - Disable software mixer to 
save memory. Anything created with FMOD_SOFTWARE will fail and DSP will not 
work.

FMOD_INIT_DSOUND_HRTFNONE = &H200 ' Win32 only - for DirectSound output - 
FMOD_HARDWARE | FMOD_3D buffers use simple stereo 
panning/doppler/attenuation when 3D hardware acceleration is not present.

FMOD_INIT_DSOUND_HRTFLIGHT = &H400 ' Win32 only - for DirectSound output - 
FMOD_HARDWARE | FMOD_3D buffers use a slightly higher quality algorithm when 
3D hardware acceleration is not present.

FMOD_INIT_DSOUND_HRTFFULL = &H800 ' Win32 only - for DirectSound output - 
FMOD_HARDWARE | FMOD_3D buffers use full quality 3D playback when 3d 
hardware acceleration is not present.

FMOD_INIT_PS2_DISABLECORE0REVERB = &H10000 ' PS2 only - Disable reverb on 
CORE 0 to regain SRAM.

FMOD_INIT_PS2_DISABLECORE1REVERB = &H20000 ' PS2 only - Disable reverb on 
CORE 1 to regain SRAM.

FMOD_INIT_XBOX_REMOVEHEADROOM = &H100000 ' XBox only - By default 
DirectSound attenuates all sound by 6db to avoid clipping/distortion. 
CAUTION. If you use this flag you are responsible for the final mix to make 
sure clipping / distortion doesn't happen.

End Enum

Public Enum FMOD_MODE

FMOD_DEFAULT = &H0 ' FMOD_DEFAULT is a default sound type. Equivalent to all 
the defaults listed below. FMOD_LOOP_OFF, FMOD_2D, FMOD_HARDWARE.

FMOD_LOOP_OFF = &H1 ' For non looping sounds. (default). Overrides 
FMOD_LOOP_NORMAL / FMOD_LOOP_BIDI.

FMOD_LOOP_NORMAL = &H2 ' For forward looping sounds.

FMOD_LOOP_BIDI = &H4 ' For bidirectional looping sounds. (only works on 
software mixed static sounds).

FMOD_2D = &H8 ' Ignores any 3d processing. (default).

FMOD_3D = &H10 ' Makes the sound positionable in 3D. Overrides FMOD_2D.

FMOD_HARDWARE = &H20 ' Attempts to make sounds use hardware acceleration. 
(default).

FMOD_SOFTWARE = &H40 ' Makes sound reside in software. Overrides 
FMOD_HARDWARE. Use this for FFT, DSP, 2D multi speaker support and other 
software related features.

FMOD_CREATESTREAM = &H80 ' Decompress at runtime, streaming from the source 
provided (standard stream). Overrides FMOD_CREATESAMPLE.

FMOD_CREATESAMPLE = &H100 ' Decompress at loadtime, decompressing or 
decoding whole file into memory as the target sample format. (standard 
sample).

FMOD_CREATECOMPRESSEDSAMPLE = &H200 ' Load MP2, MP3, IMAADPCM or XMA into 
memory and leave it compressed. During playback the FMOD software mixer will 
decode it in realtime as a 'compressed sample'. Can only be used in 
combination with FMOD_SOFTWARE.

FMOD_OPENUSER = &H400 ' Opens a user created static sample or stream. Use 
FMOD_CREATESOUNDEXINFO to specify format and/or read callbacks. If a user 
created 'sample' is created with no read callback, the sample will be empty. 
Use FMOD_Sound_Lock and FMOD_Sound_Unlock to place sound data into the sound 
if this is the case.

FMOD_OPENMEMORY = &H800 ' "name_or_data" will be interpreted as a pointer to 
memory instead of filename for creating sounds.

FMOD_OPENRAW = &H1000 ' Will ignore file format and treat as raw pcm. User 
may need to declare if data is FMOD_SIGNED or FMOD_UNSIGNED '

FMOD_OPENONLY = &H2000 ' Just open the file, dont prebuffer or read. Good 
for fast opens for info, or when FMOD_Sound_ReadData is to be used.

FMOD_ACCURATETIME = &H4000 ' For FMOD_System_CreateSound - for accurate 
FMOD_Sound_GetLength / FMOD_Channel_SetPosition on VBR MP3, AAC and 
MOD/S3M/XM/IT/MIDI files. Scans file first, so takes longer to open. 
FMOD_OPENONLY does not affect this.

FMOD_MPEGSEARCH = &H8000 ' For corrupted / bad MP3 files. This will search 
all the way through the file until it hits a valid MPEG header. Normally 
only searches for 4k.

FMOD_NONBLOCKING = &H10000 ' For opening sounds asyncronously, return value 
from open function must be polled for when it is ready.

FMOD_UNIQUE = &H20000 ' Unique sound, can only be played one at a time '

FMOD_3D_HEADRELATIVE = &H40000 ' Make the sound's position, velocity and 
orientation relative to the listener.

FMOD_3D_WORLDRELATIVE = &H80000 ' Make the sound's position, velocity and 
orientation absolute (relative to the world). (DEFAULT)

FMOD_3D_LOGROLLOFF = &H100000 ' This sound will follow the standard 
logarithmic rolloff model where mindistance = full volume, maxdistance = 
where sound stops attenuating, and rolloff is fixed according to the global 
rolloff factor. (default)

FMOD_3D_LINEARROLLOFF = &H200000 ' This sound will follow a linear rolloff 
model where mindistance = full volume, maxdistance = silence.

FMOD_3D_CUSTOMROLLOFF = &H4000000 ' This sound will follow a rolloff model 
defined by FMOD_Sound_Set3DCustomRolloff / FMOD_Channel_Set3DCustomRolloff.

FMOD_CDDA_FORCEASPI = &H400000 ' For CDDA sounds only - use ASPI instead of 
NTSCSI to access the specified CD/DVD device.

FMOD_CDDA_JITTERCORRECT = &H800000 ' For CDDA sounds only - perform jitter 
correction. Jitter correction helps produce a more accurate CDDA stream at 
the cost of more CPU time.

FMOD_UNICODE = &H1000000 ' Filename is double-byte unicode.

FMOD_IGNORETAGS = &H2000000 ' Skips id3v2/asf/etc tag checks when opening a 
sound, to reduce seek/read overhead when opening files (helps with CD 
performance).

FMOD_LOWMEM = &H8000000 ' Removes some features from samples to give a lower 
memory overhead, like FMOD_Sound_GetName.

End Enum

Public Enum FMOD_CHANNELINDEX

FMOD_CHANNEL_FREE = -1 ' For a channel index, FMOD chooses a free voice 
using the priority system.

FMOD_CHANNEL_REUSE = -2 ' For a channel index, re-use the channel handle 
that was passed in.

End Enum

Public Enum FMOD_SOUND_TYPE

FMOD_SOUND_TYPE_UNKNOWN ' 3rd party / unknown plugin format.

FMOD_SOUND_TYPE_AAC ' AAC. Currently unsupported.

FMOD_SOUND_TYPE_AIFF ' AIFF.

FMOD_SOUND_TYPE_ASF ' Microsoft Advanced Systems Format (ie WMA/ASF/WMV).

FMOD_SOUND_TYPE_AT3 ' Sony ATRAC 3 format

FMOD_SOUND_TYPE_CDDA ' Digital CD audio.

FMOD_SOUND_TYPE_DLS ' Sound font / downloadable sound bank.

FMOD_SOUND_TYPE_FLAC ' FLAC lossless codec.

FMOD_SOUND_TYPE_FSB ' FMOD Sample Bank.

FMOD_SOUND_TYPE_GCADPCM ' GameCube ADPCM

FMOD_SOUND_TYPE_IT ' Impulse Tracker.

FMOD_SOUND_TYPE_MIDI ' MIDI.

FMOD_SOUND_TYPE_MOD ' Protracker / Fasttracker MOD.

FMOD_SOUND_TYPE_MPEG ' MP2/MP3 MPEG.

FMOD_SOUND_TYPE_OGGVORBIS ' Ogg vorbis.

FMOD_SOUND_TYPE_PLAYLIST ' Information only from ASX/PLS/M3U/WAX playlists

FMOD_SOUND_TYPE_RAW ' Raw PCM data.

FMOD_SOUND_TYPE_S3M ' ScreamTracker 3.

FMOD_SOUND_TYPE_SF2 ' Sound font 2 format.

FMOD_SOUND_TYPE_USER ' User created sound.

FMOD_SOUND_TYPE_WAV ' Microsoft WAV.

FMOD_SOUND_TYPE_XM ' FastTracker 2 XM.

FMOD_SOUND_TYPE_XMA ' Xbox360 XMA

FMOD_SOUND_TYPE_VAG ' PlayStation 2 / PlayStation Portable adpcm VAG format.

End Enum

Public Enum FMOD_SOUND_FORMAT

FMOD_SOUND_FORMAT_NONE ' Unitialized / unknown.

FMOD_SOUND_FORMAT_PCM8 ' 8bit integer PCM data.

FMOD_SOUND_FORMAT_PCM16 ' 16bit integer PCM data.

FMOD_SOUND_FORMAT_PCM24 ' 24bit integer PCM data.

FMOD_SOUND_FORMAT_PCM32 ' 32bit integer PCM data.

FMOD_SOUND_FORMAT_PCMFLOAT ' 32bit floating point PCM data.

FMOD_SOUND_FORMAT_GCADPCM ' Compressed GameCube DSP data.

FMOD_SOUND_FORMAT_IMAADPCM ' Compressed XBox ADPCM data.

FMOD_SOUND_FORMAT_VAG ' Compressed PlayStation 2 ADPCM data.

FMOD_SOUND_FORMAT_XMA ' Compressed Xbox360 data.

FMOD_SOUND_FORMAT_MPEG ' Compressed MPEG layer 2 or 3 data.

FMOD_SOUND_FORMAT_MAX ' Maximum number of sound formats supported.

End Enum

Public Enum FMOD_DSP_TYPE

FMOD_DSP_TYPE_UNKNOWN ' This unit was created via a non FMOD plugin so has 
an unknown purpose. '

FMOD_DSP_TYPE_MIXER ' This unit does nothing but take inputs and mix them 
together then feed the result to the soundcard unit. '

FMOD_DSP_TYPE_OSCILLATOR ' This unit generates sine/square/saw/triangle or 
noise tones. '

FMOD_DSP_TYPE_LOWPASS ' This unit filters sound using a high quality, 
resonant lowpass filter algorithm but consumes more CPU time. '

FMOD_DSP_TYPE_ITLOWPASS ' This unit filters sound using a resonant lowpass 
filter algorithm that is used in Impulse Tracker, but with limited cutoff 
range (0 to 8060hz). '

FMOD_DSP_TYPE_HIGHPASS ' This unit filters sound using a resonant highpass 
filter algorithm. '

FMOD_DSP_TYPE_ECHO ' This unit produces an echo on the sound and fades out 
at the desired rate. '

FMOD_DSP_TYPE_FLANGE ' This unit produces a flange effect on the sound. '

FMOD_DSP_TYPE_DISTORTION ' This unit distorts the sound. '

FMOD_DSP_TYPE_NORMALIZE ' This unit normalizes or amplifies the sound to a 
certain level. '

FMOD_DSP_TYPE_PARAMEQ ' This unit attenuates or amplifies a selected 
frequency range. '

FMOD_DSP_TYPE_PITCHSHIFT ' This unit bends the pitch of a sound without 
changing the speed of playback. '

FMOD_DSP_TYPE_CHORUS ' This unit produces a chorus effect on the sound. '

FMOD_DSP_TYPE_REVERB ' This unit produces a reverb effect on the sound. '

FMOD_DSP_TYPE_VSTPLUGIN ' This unit allows the use of Steinberg VST plugins 
'

FMOD_DSP_TYPE_WINAMPPLUGIN ' This unit allows the use of Nullsoft Winamp 
plugins '

FMOD_DSP_TYPE_ITECHO ' This unit produces an echo on the sound and fades out 
at the desired rate as is used in Impulse Tracker. '

FMOD_DSP_TYPE_COMPRESSOR ' This unit implements dynamic compression (linked 
multichannel, wideband) '

FMOD_DSP_TYPE_SFXREVERB ' This unit implements SFX reverb '

FMOD_DSP_TYPE_LOWPASS_SIMPLE ' This unit filters sound using a simple 
lowpass with no resonance, but has flexible cutoff and is fast. '

End Enum

Public Enum FMOD_DSP_OSCILLATOR

FMOD_DSP_OSCILLATOR_TYPE ' Waveform type. 0 = sine. 1 = square. 2 = sawup. 3 
= sawdown. 4 = triangle. 5 = noise. '

FMOD_DSP_OSCILLATOR_RATE ' Frequency of the sinewave in hz. 1.0 to 22000.0. 
Default = 220.0. '

End Enum

Public Structure FMOD_CREATESOUNDEXINFO

Dim cbsize As Integer ' [in] Size of this structure. This is used so the 
structure can be expanded in the future and still work on older versions of 
FMOD Ex.

Dim Length As Integer ' [in] Optional. Specify 0 to ignore. Size in bytes of 
file to load, or sound to create (in this case only if FMOD_OPENUSER is 
used). Required if loading from memory. If 0 is specified, then it will use 
the size of the file (unless loading from memory then an error will be 
returned).

Dim fileoffset As Integer ' [in] Optional. Specify 0 to ignore. Offset from 
start of the file to start loading from. This is useful for loading files 
from inside big data files.

Dim Numchannels As Integer ' [in] Optional. Specify 0 to ignore. Number of 
channels in a sound specified only if FMOD_OPENUSER is used.

Dim defaultfrequency As Integer ' [in] Optional. Specify 0 to ignore. 
Default frequency of sound in a sound specified only if FMOD_OPENUSER is 
used. Other formats use the frequency determined by the file format.

Dim Format As FMOD_SOUND_FORMAT ' [in] Optional. Specify 0 or 
FMOD_SOUND_FORMAT_NONE to ignore. Format of the sound specified only if 
FMOD_OPENUSER is used. Other formats use the format determined by the file 
format.

Dim decodebuffersize As Integer ' [in] Optional. Specify 0 to ignore. For 
streams. This determines the size of the double buffer (in PCM samples) that 
a stream uses. Use this for user created streams if you want to determine 
the size of the callback buffer passed to you. Specify 0 to use FMOD's 
default size which is currently equivalent to 400ms of the sound format 
created/loaded.

Dim initialsubsound As Integer ' [in] Optional. Specify 0 to ignore. In a 
multi-sample file format such as .FSB/.DLS/.SF2, specify the initial 
subsound to seek to, only if FMOD_CREATESTREAM is used.

Dim Numsubsounds As Integer ' [in] Optional. Specify 0 to ignore or have no 
subsounds. In a user created multi-sample sound, specify the number of 
subsounds within the sound that are accessable with Sound::getSubSound.

Dim inclusionlist As Integer ' [in] Optional. Specify 0 to ignore. In a 
multi-sample format such as .FSB/.DLS/.SF2 it may be desirable to specify 
only a subset of sounds to be loaded out of the whole file. This is an array 
of subsound indicies to load into memory when created.

Dim inclusionlistnum As Integer ' [in] Optional. Specify 0 to ignore. This 
is the number of integers contained within the inclusionlist array.

Dim pcmreadcallback As Integer ' [in] Optional. Specify 0 to ignore. 
Callback to 'piggyback' on FMOD's read functions and accept or even write 
PCM data while FMOD is opening the sound. Used for user sounds created with 
FMOD_OPENUSER or for capturing decoded data as FMOD reads it.

Dim pcmsetposcallback As Integer ' [in] Optional. Specify 0 to ignore. 
Callback for when the user calls a seeking function such as Channel::setTime 
or Channel::setPosition within a multi-sample sound, and for when it is 
opened.

Dim nonblockcallback As Integer ' [in] Optional. Specify 0 to ignore. 
Callback for successful completion, or error while loading a sound that used 
the FMOD_NONBLOCKING flag.

Dim dlsname As String ' [in] Optional. Specify 0 to ignore. Filename for a 
DLS or SF2 sample set when loading a MIDI file. If not specified, on windows 
it will attempt to open /windows/system32/drivers/gm.dls, otherwise the MIDI 
will fail to open.

Dim encryptionkey As String ' [in] Optional. Specify 0 to ignore. Key for 
encrypted FSB file. Without this key an encrypted FSB file will not load.

Dim maxpolyphony As Integer ' [in] Optional. Specify 0 to ingore. For 
sequenced formats with dynamic channel allocation such as .MID and .IT, this 
specifies the maximum voice count allowed while playing. .IT defaults to 64. 
.MID defaults to 32.

Dim userdata As Integer ' [in] Optional. Specify 0 to ignore. This is user 
data to be attached to the sound during creation. Access via 
Sound::getUserData.

Dim suggestedsoundtype As FMOD_SOUND_TYPE ' [in] Optional. Specify 0 or 
FMOD_SOUND_TYPE_UNKNOWN to ignore. Instead of scanning all codec types, use 
this to speed up loading by making it jump straight to this codec.

Dim useropen As Integer ' [in] Optional. Specify 0 to ignore. Callback for 
opening this file.

Dim userclose As Integer ' [in] Optional. Specify 0 to ignore. Callback for 
closing this file.

Dim userread As Integer ' [in] Optional. Specify 0 to ignore. Callback for 
reading from this file.

Dim userseek As Integer

End Structure

Public Const FMOD_VERSION As Integer = &H40614

Public Const FMOD_CREATESOUNDEXINFO_SIZE As Long = 92 
'sizeof(FMOD_CREATESOUNDEXINFO)

Public Declare Function FMOD_System_Create Lib "fmodex" Alias 
"FMOD_System_Create" (ByRef FmodSystem As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_GetVersion Lib "fmodex" Alias 
"FMOD_System_GetVersion" (ByVal FmodSystem As Integer, ByRef Version As 
Integer) As FMOD_RESULT

Public Declare Function FMOD_System_Init Lib "fmodex" Alias 
"FMOD_System_Init" (ByVal FmodSystem As Integer, ByVal Maxchannels As 
Integer, ByVal Flags As FMOD_INITFLAGS, ByVal Extradriverdata As Integer) As 
FMOD_RESULT

Public Declare Function FMOD_System_CreateStreamEx Lib "fmodex" Alias 
"FMOD_System_CreateStream" (ByVal FmodSystem As Integer, 
<MarshalAs(UnmanagedType.LPStr)> ByVal Name_or_data As String, ByVal Mode As 
FMOD_MODE, ByVal exinfo As Integer, ByRef Sound As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_CreateSoundEx Lib "fmodex" Alias 
"FMOD_System_CreateSound" (ByVal FmodSystem As Integer, 
<MarshalAs(UnmanagedType.LPStr)> ByVal Name_or_data As String, ByVal Mode As 
FMOD_MODE, ByVal exinfo As Integer, ByRef Sound As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_PlaySound Lib "fmodex" Alias 
"FMOD_System_PlaySound" (ByVal FmodSystem As Integer, ByVal Channelid As 
FMOD_CHANNELINDEX, ByVal Sound As Integer, ByVal Paused As Integer, ByRef 
Channel As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_GetNumDrivers Lib "fmodex" Alias 
"FMOD_System_GetNumDrivers" (ByVal FmodSystem As Integer, ByRef Numdrivers 
As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_GetDriverName Lib "fmodex" Alias 
"FMOD_System_GetDriverName" (ByVal FmodSystem As Integer, ByVal Id As 
Integer, ByRef name As Byte, ByVal Namelen As Integer) As FMOD_RESULT

Public Declare Function FMOD_System_CreateDSPByType Lib "fmodex" Alias 
"FMOD_System_CreateDSPByType" (ByVal FmodSystem As Integer, ByVal dsptype As 
FMOD_DSP_TYPE, ByRef Dsp As Integer) As FMOD_RESULT

Public Declare Function FMOD_DSP_SetParameter Lib "fmodex" Alias 
"FMOD_DSP_SetParameter" (ByVal Dsp As Integer, ByVal Index As Integer, ByVal 
Value As Single) As FMOD_RESULT

Public Declare Function FMOD_System_PlayDSP Lib "fmodex" Alias 
"FMOD_System_PlayDSP" (ByVal FmodSystem As Long, ByVal channelid As 
FMOD_CHANNELINDEX, ByVal Dsp As Integer, ByVal paused As Integer, ByRef 
channel As Integer) As FMOD_RESULT

Public Declare Function FMOD_Channel_SetVolume Lib "fmodex" Alias 
"FMOD_Channel_SetVolume" (ByVal channel As Integer, ByVal Volume As Single) 
As FMOD_RESULT

Public Declare Function FMOD_Channel_SetPaused Lib "fmodex" Alias 
"FMOD_Channel_SetPaused" (ByVal channel As Integer, ByVal paused As Integer) 
As FMOD_RESULT

Public Declare Function FMOD_Channel_GetFrequency Lib "fmodex" Alias 
"FMOD_Channel_GetFrequency" (ByVal channel As Integer, ByRef Frequency As 
Single) As FMOD_RESULT

Public Declare Function FMOD_Channel_GetPan Lib "fmodex" Alias 
"FMOD_Channel_GetPan" (ByVal channel As Integer, ByRef Pan As Single) As 
FMOD_RESULT

End Class





Form1.vb

Public Class Form1

Dim Result As FMODEx.FMOD_RESULT

Dim FmodSystem As Integer

Dim Version As Integer

Dim Sound As Integer

Dim Channel As Integer

Dim NumDrivers As Integer

Dim File As String

Dim Count As Integer

Dim drivernamearray(0 To 255) As Byte

Dim drivername As String

Dim bytes() As Byte

Dim Dsp As Integer

Dim Frequency, Pan As Single

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles MyBase.Load



File = "./wave.mp3"

bytes = System.Text.Encoding.UTF8.GetBytes(File)

File = System.Text.Encoding.UTF8.GetString(bytes)

Result = FMODEx.FMOD_System_Create(FmodSystem)

ListBox1.Items.Add("FmodSystem " & FmodSystem)

Result = FMODEx.FMOD_System_GetVersion(FmodSystem, Version)

ListBox1.Items.Add("Version " & Version)

Result = FMODEx.FMOD_System_Init(FmodSystem, 32, 
FMODEx.FMOD_INITFLAGS.FMOD_INIT_NORMAL, 0)

Result = FMODEx.FMOD_System_GetNumDrivers(FmodSystem, NumDrivers)

ListBox1.Items.Add("Num Drivers " & NumDrivers)

For Count = 0 To NumDrivers - 1

Result = FMODEx.FMOD_System_GetDriverName(FmodSystem, Count, 
drivernamearray(0), 256)

drivername = System.Text.Encoding.UTF8.GetString(drivernamearray)

ListBox1.Items.Add(drivername)

Next

'Create an oscillator DSP unit for the tone.

'Result = FMODEx.FMOD_System_CreateDSPByType(FmodSystem, 
FMODEx.FMOD_DSP_TYPE.FMOD_DSP_TYPE_OSCILLATOR, Dsp)

'Result = FMODEx.FMOD_DSP_SetParameter(Dsp, 
FMODEx.FMOD_DSP_OSCILLATOR.FMOD_DSP_OSCILLATOR_RATE, 440.0#) ' musical note 
'A'

'Result = FMODEx.FMOD_System_CreateSoundEx(FmodSystem, "./wave.mp3", 
FMODEx.FMOD_MODE.FMOD_HARDWARE, 0, Sound)

'Result = FMODEx.FMOD_System_PlaySound(FmodSystem, 
FMODEx.FMOD_CHANNELINDEX.FMOD_CHANNEL_FREE, Sound, 0, Channel)



End Sub

'Public Function FMOD_System_CreateStream(ByVal FmodSystem As Integer, ByVal 
Name_or_data As String, ByVal Mode As FMODEx.FMOD_MODE, ByRef Sound As 
Integer) As FMODEx.FMOD_RESULT

'Dim exinfo As FMODEx.FMOD_CREATESOUNDEXINFO

'Dim Result As FMODEx.FMOD_RESULT

' exinfo.cbsize = FMODEx.FMOD_CREATESOUNDEXINFO_SIZE

' Result = FMODEx.FMOD_System_CreateStreamEx(FmodSystem, Name_or_data, Mode, 
exinfo, Sound)

' FMOD_System_CreateStream = Result

'End Function

Private Sub cmdSineWave_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles cmdSineWave.Click

Result = FMODEx.FMOD_System_CreateStreamEx(FmodSystem, CStr(File), 
(FMODEx.FMOD_MODE.FMOD_SOFTWARE Or FMODEx.FMOD_MODE.FMOD_2D Or 
FMODEx.FMOD_MODE.FMOD_CREATESTREAM), 0, Sound)

Result = FMODEx.FMOD_System_PlaySound(FmodSystem, 
FMODEx.FMOD_CHANNELINDEX.FMOD_CHANNEL_FREE, Sound, 0, Channel)

'Result = FMODEx.FMOD_System_PlayDSP(FmodSystem, 
FMODEx.FMOD_CHANNELINDEX.FMOD_CHANNEL_REUSE, Dsp, 1, Channel)

'Result = FMODEx.FMOD_Channel_SetVolume(Channel, 0.5)

'Result = FMODEx.FMOD_DSP_SetParameter(Dsp, 
FMODEx.FMOD_DSP_OSCILLATOR.FMOD_DSP_OSCILLATOR_TYPE, 0)

'Result = FMODEx.FMOD_Channel_SetPaused(Channel, 0)

'Result = FMODEx.FMOD_Channel_GetFrequency(Channel, Frequency)

'Result = FMODEx.FMOD_Channel_GetPan(Channel, Pan)

End Sub

End Class
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070419/b9ec9e36/attachment.html 


More information about the Mono-devel-list mailing list