Upload
others
View
24
Download
0
Embed Size (px)
Citation preview
ThankyoufordownloadingFMODmusicandsoundeffectssystem.
Withinthispackageyouwillfindthemeanstoproducethemostuptodateandefficient
audioinyourgamesandapplications.
Tofindoutmoregotohttp://www.fmod.org
THEBASICSIntroduction
ThisisthefirstplacetolookifyouhavenoideawhattodowhendownloadingFMOD,orthosewithsomeideabutneedalittlebitofhelp.Itwillgiveyouastepbystepintroductionandtutorialonwhattocall,whattolinkandwheretocallstuffsoyoucaneasilygetonyourwaytogreatsoundingaudio!
Thepackage
Thefirstthingyouwilldoisunzipfmodandfindthefollowingdirectorystructure.
/api
ThefilesyouareinterestedinforyourownprojectsareheldhereThisholds
FMOD.DLL,Theimportlibrary(fmodvc.lib,fmodbc.libetc)youneedtolink(forCusers),andTheheader(fmod.h,fmod.pas,fmod.basdependingonlanguage)youneedtoinclude.
CUsersMSVC-#include"fmod.h"intoyoursourcecodeandlinkfmodvc.libbyputtingitintoyourlinksection/makefile/project.Codewarrior-#include"fmod.h"intoyoursourcecodeandlinkfmodvc.libbyputtingitintoyourlinksection/makefile/project.Watcom-#include"fmod.h"intoyoursourcecodeandlinkfmodwc.libbyputtingitintoyourlinksection/makefile/project.Borland-#include"fmod.h"intoyoursourcecodeandlinkfmodbc.libbyputtingitintoyourlinksection/makefile/project.LCC-WIN32-#include"fmod.h"intoyoursourcecodeandlinkfmodlcc.libbyputtingitintoyourlinksection/makefile/project.MingwandCygWin-#include"fmod.h"intoyoursourcecodeandlinklibfmod.abyputtingitintoyourlinksection/makefile/project.Linux/GCC-#include"fmod.h"intoyoursourcecodeandlinkwithlibfmod-X-Y.so(i.egccfile.c-lfmod-3.5)
NotethereisnoDJGPPsupport.Ifyouaskforthisyouarelookinginthewrongplace.DJGPPisDOSonlyandtofindasimilarfreeWIN32compilertryLCC-WIN32orCygWin.
DelphiUsersYouneedtohaveusesFMODinyoursourcecodesomewhere.IfdelphicannotfindtheFMODheaderyouneedtohavethepathtofmod.pasinyourlibrarypath.GotoTools\EnvironmentOptions\Library.Addthepath,eg.C:\fmodapi340\api\delphi(ofcourse,usethepaththatyouhaveonyoursystem),toLibraryPathanditshouldbehappy.
VisualBasicUsersAddfmod.bastoyourproject.
/documentation
Youmustknowaboutthisalreadyifyouarereadingthis!
/media
Thisdirectoryholdssomewavfilesandsongsthattheexamplesuse.Forexamplejbtennis.wavwhichcontainslooppointsandwavsyncmarkersthatfmodcanread
/samples
ThisfolderisforCprogrammersandcontainsavarietyofsamplestodemonstrate3Dsound,dspeffects,recording,streamsandmoreToruntheprecompiledexecutables,firstcopytheFMOD.DLLfilefrom/apiintotherelevantsampledirectorytomakeitaccessablefortheprogram.
/samplesdelphi
ThisfolderisforDelphiprogrammersandcontainsavarietyofsamplestodemonstrateusingFMODwithDelphi.WrittenbySteveWilliamsToruntheprecompiledexecutables,firstcopytheFMOD.DLLfilefrom/apiintotherelevantsampledirectorytomakeitaccessablefortheprogram.
/samplesvb
ThisfolderisforVisualBasicprogrammersandcontainsexamplesofusingFMODwithVisualBasic.Toruntheprecompiledexecutables,firstcopytheFMOD.DLLfilefrom/apiintotherelevantsampledirectorytomakeitaccessablefortheprogram.
/tools
Thisfoldercontainsasioconfig.exe.Thisprogramsimplyconfiguresanyasiodevicesyouhaveonyoursystembybringingupthedriver'snativeconfigurationscreen.Ifyourunitandnoentriesareinthelist,yourasiodriversarenotinstalledproperly.Ifyouselectordoubleclickanentrythatdoesexistandnoconfigscreenappearsthenyourasiodriversarenotinstalledcorrectlyoryouhaveselectedthewrongdrivertoconfigure.TakenoteofthiswhenselectingthedevicefromtheFMODapi.
Gettingstarted
ThefirstthingyouneedtodoismakesureFMOD.DLLisaccessablefromyourprogram.Otherwiseyouwillgetanerrorsomethingliketheonebelowwhenyoutryandrunyourexecutable.
CopytheFMOD.DLLfileoutofthe/apidirectoryandintothedirectorywhereyourexecutablewillbe.Iftheyareinthesamedirectorythenitwillworkasexpected.Nowyouarereadytostartcoding,youneedtoinitializeFMODfirst!Youdothisonceatthestartofyourprogram.
DothiswithFSOUND_Init.ThesimplestwaytodothisistotellFMODtomixat44100hz,anduse32softwarechannels.Thisisdonelikeso.
FSOUND_Init(44100,32,0);
Togetmoredetailedcontrolpleaseseethefmod.hfiletoseewhatpre-FSOUND_Initfunctionscanbecalledtocontrolthingslikemixertype,outputdeviceetc.AlsoFSOUND_Inititselfhasflagswhichyoucanfindoutmoreaboutintherelevantdocumentation.Notethatyoudon'thavetoactuallyusethepre-initfunctionsasFMODautomaticallydetectsthebestsettingsforyou.Ifthisfunctionsucceeds,(seeerrorcodeifitdoesnt),thenFMODisnowrunningandsomemoreinterestingthingscanbedone.
Samples,StreamsandSongs
Youhaveamusicfileorasoundyouwanttoplay.WhatFMODAPIshouldyouusetoloadandplayit?Here'saguide.
Ifitisasequencedmusicfilesuchas.MOD,.S3M,.XM,.ITor.MID,thenusetheFMUSICAPI.YouwillwanttouseFMUSIC_LoadSongtoloaditintomemory.Whenthisgivesyouavalidreturnhandle,usethathandlewithFMUSIC_PlaySongtoplayit!ThehandletypeforthistypeoffilewhenloadedisFMUSIC_MODULE.IfitisaPCMbasedorcompressedfilesuchas.WAV,.MP2,.MP3,.OGGor.RAWthenyouhaveachoicetomake.Willitusetoomuchmemoryifyouloaditinanddecompressitintomemory?orisitsmallenoughtofit?-Forsmallsoundssuchassoundeffectsthatyouwanttotriggermultipletimesatonce(forexampleagunshot),thenyouwillwanttouseFSOUND_Sample_Load.Whenitgivesyouavalidreturnhandle,usethathandlewithFSOUND_PlaySoundorFSOUND_PlaySoundEx.Thisisthefastestwaytoreplaysounds,astheyaredecompressedintomemory(atloadtime)firstbeforebeingplayed.ThehandletypeforthistypeoffilewhenloadedisFSOUND_SAMPLE.-Ifthefileisgoingtobebig,anddoesntneedtobeplayedmultipletimesatonce(notethenextoptioncannotbeplayedmultipletimesatonce),thentheotherchoiceistouseFSOUND_Stream_Open.Thisopensafile,andpreparesitforplaying.Whenitgivesyouavalidreturnhandle,usethathandlewithFSOUND_Stream_PlayorFSOUND_Stream_PlayEx.Thisstreamsthefilefromthediskinrealtimeanddecompressesthefileonthefly.Thisoptionuseslessmemorythansampleswhenthefileispastacertainsize.Notethatthisoptionusesalotmorecputimethanasampleasithastoaccessthedisk,andifnescessary,decompressthedataonthefly.
FMODdecompressionroutinesareusuallyfairlyefficientbutitcanbesignificantonslowmachines(especiallyCEdevices),orifmultiplestreamsareplayedtogetheratonce.YoucanofcoursemeasurethiswithFSOUND_GetCPUUsageorjustseehowitaffectsyourframerate.ThehandletypeforthistypeoffilewhenloadedisFSOUND_STREAM.
Note:UseFSOUND_FREEwhenchoosingachanneltoplayasampleorstreamon.Itmakesthebestchoiceforyou.Ifyoumustuseavaluesuchas0-31etc,thencarefullyreadthechannelmapping/indexinformatiomnintheremarkssectionofFSOUND_PlaySound.
Manipulation
Finallythelastmostbasicthingsyoumightwanttodoarechangethesong'svolumeorspeedoranyothervarietyofattributes
ForFMUSIC_MODULEhandlesyoucanusetheFMUSICAPIforcommandslikeFMUSIC_SetPausedandFMUSIC_SetMasterVolume.Seefmod.h(orequivalent)orthedocumentationforalistofthesecommandsyoucanuse.ForFSOUND_SAMPLEhandlesyoucanuseavarietyofcommandsonaplayingsoundfromthechannelhandlereturnedfromFSOUND_PlaySoundorFSOUND_PlaySoundEx.TheseincludesuchcommandsasFSOUND_SetVolumeorFSOUND_SetFrequencyorawholehostofcommands.ForFSOUND_STREAMhandlesyoucanuseavarietyofcommandsonaplayingstream,alsofromthechannelhandlereturnedfromFSOUND_Stream_PlayorFSOUND_Stream_PlayEx.Becausethesealsousechannelstoplayon,theycanusethechannelfunctionsjustasasamplewould.YoucanpauseastreamwithFSOUND_SetPausedforexample.
3DSOUNDANDGAMECODINGIntroduction
3DSoundinFMODisaccomplishedthroughavariousdifferentAPI'swhicharehandledtransparentlytoyouthroughoneunifiedinterface.TheseareDirectSound3DwithEAX2.0andEAD3.0/HDsupport,orFMODfallbacksoftware3Dstereoengine.
ItisrecommendedwhenyouseeanAPIfunctionhighlightedasalink,thatyouchecktheAPIreferenceformoredetail.
HardwareSupport
AllocatingsampleswithFSOUND_HW3Disthekeytogettingyoursoundstouse3Dhardwareacceleration.Youdothiswhenloadingwav,raw,mp3,etcsamples,throughthefollowingfunction.
FSOUND_Sample_Load(intindex,constchar*name_or_data,unsignedintinputmode,intoffset,intlength);BitwiseORintheFSOUND_HW3Dflagintothemodeparameteroftheloadingfunction.
Ifyouhavethecorrecthardware,thesoundwillbeloadedintohardwaremode.Ifnot,thesamplewillbeloadedinsoftwaremode,transparentlytotheprogrammer,butitwillnotbeacceleratedortakeadvantageofadvanced3dalgorithmsandEAX.
Hereisanexampleofawavfileattemptingtobeloadedasa3DHardwarebuffer.FSOUND_Sample_Load(FSOUND_FREE,"engine.wav",FSOUND_HW3D|FSOUND_LOOP_NORMAL,0,0);
OryoucanforceitintosoftwarebynotspecifyingtheFSOUND_HW3DflagFSOUND_Sample_Load(FSOUND_FREE,"engine.wav",FSOUND_LOOP_NORMAL,0,0);
Oryoucanhaveitasa2Dsound(2dsoundsarenotaffectedby3dfunctions,andarerenderedinsoftware),usingtheFSOUND_2Dflag.FSOUND_Sample_Load(FSOUND_FREE,"engine.wav",FSOUND_2D|FSOUND_LOOP_NORMAL,0,0);
Typicalgameloop
Thiswouldbeatypicalexampleofagameaudioloop.
do{
UpdateGame();//herethegameisupdatedandthesourceswouldbemovedwithFSOUND_SetAttributes
FSOUND_3D_Listener_SetAttributes(listenerpos,listenervel,fx,fy,fz,tx,ty,tz);//update'ears'FSOUND_Update();//neededtoupdate3dengine,onceperframe
}while(gamerunning);
Mostgamesusuallytaketheposition,velocityandorientationfromthecamera'svectorsandmatrix.
Velocityparameter
Velocityisonlyrequiredifyouwantdopplereffects.OtherwiseyoucanpassNULLtobothFSOUND_3D_Listener_SetAttributesandFSOUND_3D_SetAttributesforthevelocityparameter,andnodopplereffectwillbeheard
Thisisstressedoverandoveragain,butcan'tbestressedenough.ItisimportantthatthevelocitypassedtoFMODisMETERSPERSECONDandNOTmetersperFRAME.
Whatdoesthismean?Usepropervelocityvectorsfromphysicscodeetc,anddon'tjustsubtractlastframespositionfromthecurrentposition,asthisisaffectedbyframerate.(iethehighertheframeratethesmallerthepositiondeltas,andthereforesmallerdopplereffects,whichisincorrect)
Iftheonlywayyoucangetthevelocityistosubtractthisandlastframe'spositionvectors,thenremembertotimeadjustthemfrommetersperframebackuptometerspersecond.Thisisdonesimplybyscalingthedifferencevectorobtainedbysubtractingthe2positionvectors,byoneovertheframetimedelta.
Hereisanexamplevelx=(posx-lastposx)*1000/timedelta;velz=(posy-lastposy)*1000/timedelta;velz=(posz-lastposz)*1000/timedelta;timedeltaisthetimesincethelastframeinmilliseconds.ThiscanbeobtainedwithfunctionssuchastimeGetTime().Soat60fps,thetimedeltawouldbe16.67ms.ifthesourcemoved0.1metersinthistime,theactualvelocityinmeterspersecondwouldbevel=0.1*1000/16.67=6meterspersecond.Similarly,ifweonlyhavehalftheframerateof30fps,thensubtractingpositiondeltaswillgivesustwicethedistancethatitwouldat60fps(soitwouldhavemoved0.2metersthistime)vel=0.2*1000/33.33=6meterspersecondstill!phew!.
Orientationandcoordinatesystems
Gettingthecorrectorientationsetupisessentialifyouwantthesourcetomovearoundyouin3dspace.FMODUsesalefthandedcoordinatesystem,(x=right,y=up,z=forwards),whichisthesameasDirectSound3DandA3D
Ifyouuseadifferentcoordinatesystem,thenyouwillneedtoflipcertainaxisorevenswapthemaroundinsidethecalltoFSOUND_3D_Listener_SetAttributes.Taketherighthandedcoordinatesystem,whereZpointsbackwards,orcomesoutofthescreenatyou.ToconvertthistoFMODcoordinatesystemsimplynegatetheZcoordinateofthelistenerupandforwardvector.
JustthinkRIGHT,UP,FORWARDSforeachelementofavector(iex,y,z),andmapwhateveraxisfityourmodelintothis,togeneratethe2vectorsthatpointsforwardsandup.
Channelresourcemanagementandlowendcards
Somesoundcardsonlysupport4or83Dhardwarechannels,whereasothersoundcardssupport32and96hardware3Dchannels.Whatdoyoudoinyourgame?onlyplay43Dhardwarebasedsoundsatoncetomeetthebasespec?Notlikely.Itwouldberidiculoustolimityourselftothese4channelswhenyouhavethepotentialofotherhighendcardsthatcandonearly100hardwarechannelsatonce.
ThesolutionistouseFSOUND_SetMinHardwareChannels.ThisfunctioniscalledoncebeforecallingFSOUND_Init.WhatthisallowsyoutodoisassumeanumberofchannelswilleitherALLbeplayedinhardware,orNONEinhardware(thereforeinsoftware).Itbasicallysays'ifthecarddoesn'thavennumberofchannels,thenmixallsoundsinsoftware'.Thisallowsyoutoassumethatyouhavesay16soundstobeplayingatonce,andifthehardwarehasatleastthatmanychannelsavailable,itwillplaythemallinhardware.Ifyoucomeacrossacardthatonlysupports4hardwarechannelsatonce,thenitfailsthecriteriaandyoursoundsareplayedallinsoftware.
ThebestthingaboutthisisNOPlaySound'sfailbecauseofrunningoutofchannelsonunexpectedcards!Youcanguaranteeacertainnumberofchannelsavailable,andifthehardwareisthere,thenallthebetter!
Usepriorities!
FMOD'sprioritysystemistheretobeused.Ifyoutriggerlotsofsoundsonalimitednumberofchannels,somemightbemoreimportantthanothers.Ifyouweredoingafirstpersonshooter,theplayer'sgunshotsoundwouldbeoneofthemostimportantsounds.SoitshouldhaveahighprioritysetwithFSOUND_SetPriority.Otherlessimportantsoundswouldberejectedifthenumberofallocatedchannelsbecamefull,andthatgunshotneededtobeheard!
MUSICSYNCRHONIZATIONIntroduction
ThissectionwilldescribehowtosynchronizegraphicswithsoundeffectivelyusingFMODfunctions.Itusuallyinvolveseitherpollingagainstamusicvaluetotriggeryoureffect,orgettingacallbackfromFMOD.
Streams
Thebestwaytosynchronizeastream,suchasawavormp3isbyusingFSOUND_Stream_SetSyncCallback.Allyouhavetodoisdrop'markers'intoawaveditingprogramlikeSoundForge,andFMODwillautomaticallygeneratecallbacksasthestreamplayswhentheplaycursorrunsoverthemarkers!.Thestringsthatyoulabelmarkerswithareevenpassedintothecallback.NotethatonlyWAVfilesandMP3withRIFFwrapperswillworkhere.ThemarkersaresavedinaRIFFchunk.
Ifyoudon'thavethisluxuryorwanttouseaformatthatdoesn'tsupportthisfeature,thenthenextbestwaytosynchronizeastreamisbyusingcustomsyncpoints.Thiswayyoucanaddandremoveyourownpointsthatwavmarkerswouldnormallygenerate.SeeFSOUND_Stream_AddSyncPoint.AddyourmarkersmanuallywiththisandsetyoursyncpointcallbackwithFSOUND_Stream_SetSyncCallbackYourcallbackcouldthenlooksomethinglikethisbutyoucanputwhatyoulikeinthecallbackfunction.
signedcharendcallback(FSOUND_STREAM*stream,void*buff,intlen,intparam){
//endofstreamcallbackdoesn'thavea'buff'value,ifitdoesn'titcouldbeasyncpoint.if(buff){
printf("\nSYNCPOINT:\"%s\"\n",buff);}
returnTRUE;}
RememberFMODisareal-timesystemandtheamountoftimespentinacallbackhastobelow,oryoucouldcausebufferunderrunorstuttering.
MODs
Tosynchronizegraphicswithmodmusic,trythesefunctions.FMUSIC_SetZxxCallbackFMUSIC_SetRowCallback
FMUSIC_SetOrderCallbackFMUSIC_SetInstCallbackThisallowsyoutosetcallbacksonrow,order,instrumentorZxxmodeffectevents.ThereisalsoatimebasedfunctionFMUSIC_GetTime.
CUSTOMSAMPLESANDSTREAMS
Introduction
Thisanswerssomeofthequestionsregardinghowtocreateacustom/userstream,andacustom/usersample.
CustomSamples
1.Declareandallocateacustomsample...FSOUND_SAMPLE*mysamp=FSOUND_Sample_Alloc(FSOUND_FREE,length,mode,deffreq,defvol,defpan,defpri);
Remember'length'ismeasuredin*samples*notbytes,andmodeisabitfieldusingFSOUND_MODES(seethehelpforadescriptionofmodestodescribethesampleyouareallocating)Thiswillcreateyouanemptysampletouploaddatainto.
2.Uploadyourdatatothesample.UseFSOUND_Sample_Lock()/FSOUND_Sample_Unlock()orFSOUND_Sample_Upload()togetyourdataintothesample.WithFSOUND_Sample_Lock()/FSOUND_Sample_Unlock(),thedatayoucopyinMUSTbeinsignedformat.FSOUND_Sample_Upload()isthefavouredchoicethough,asyoucandescribetheformat,anditwillconvertitforyou,butyouhavetopre-readthedataintoyourownbufferfirstbeforepassingittoFSOUND_Sample_Upload(),whichtemporarilyusesmorememory.Thisconvertsfromalltypesofsources..unsigned,deltasamples,evenITcompressed.moretypeswillcomeinthefuture.
3.Playit!:)
CustomStreams
SeeFSOUND_Stream_Create.Youcanpassacallbackfunctionpointerandalengthtothisfunction.WhenyoustartthestreamwithFSOUND_Stream_Play(asyouwouldwithanyotherstream),youstartgettingcallbacks.
DSPENGINEIntroduction
ThiswillbrieflycoversomeoftheessentialstousingtheFMODDSPengine.TheDSPengineallowsyoutoread-andprocessthemixedsounddataasittravelstothesoundcardinitsvariousphases.Thiswillbedescribedinmoredetailbelow.Whywouldyouwanttodothis?Itallowsyoutofilterthedataifyoulike.Youcouldaddyourownreverb,distortion,EQtotheglobalFMODsoundstreamoranythingthatyoucanthinkofthatinvolvessounddata.Anotherreasonistoreaditandmaybedoanalysisorevenjustplotitasanoscilloscopeforeffect!
Whatisit?
TheDSPsystemdrivesFMOD'ssoftwareengine.Roughlyevery25milliseconds(platformdependant),FMODmixesabatchofdatatobesendtothesounddevice.Todothisitexecutesachainofalgorithmstoproducethesound.Thischainisexecutedeverytimeandperformsthevariousjobssuchasmixing,clippingandcallingusercallbackstoprocessthesounddata.Atthelowlevel,itissimplyalinkedlistofcallbacks.Eachtimeoneofthesecallbacksiscalleditispassedinthemixerbuffer.YoucanseethecallbackofaDSPunitdescribedhereasFSOUND_DSPCALLBACK.
Internally,FMODusestheseDSPcallbackstoperformvariousstagesofitsownmixingroutines.Itisalwaysworkingwiththemixbuffer.Thisissimplyastereobufferofintegersorfloats(dependingonthemixertypesetwithFSOUND_SetOutputordeterminedwithFSOUND_GetOutput.Itisjustlongenoughtomix25msworthofdata,soyoucouldprobablycalculatehowmanysamplesitwouldcontainbasedonthesamplerate,and25ms,butthereisafunctionsuppliedtoworkthisoutforyouFSOUND_DSP_GetBufferLength
The"System"DSPUnits
ThediagramaboveshowsthesystemDSPunitsthatarealwayspresent.ClearUnit-AllthisDSPunitdoesissilencethemixbufferbysettingitallto0's.ThenextDSPunitswillgenerallyfillinthisdatawithaudiobyadding/accumulatingtoit(mixing).YoucangetahandletothisunitsimplybycallingFSOUND_DSP_GetClearUnitMixSFXUnit-ThisunitcallsFMOD'sinternaloptimizedmixingroutinesandmixesanysoundeffectsspawnedbytheuserwithFSOUND_PlaySoundorFSOUND_PlaySoundEx.YoucangetahandletothisunitsimplybycallingFSOUND_DSP_GetSFXUnitMixMusicUnit-ThisunitexecutestheFMUSICmusicsequencingengine,andmixestheresultingchannelsusedbytheFMUSICengine.YoucangetahandletothisunitsimplybycallingFSOUND_DSP_GetMusicUnitFFTUnit-ThisunitperformsanFFTonthemixedoutputsothatFSOUND_DSP_GetSpectrumcanbeused.ItisturnedoffbydefaultduetotheCPUexpenseincurred,soifyouwanttousetheFSOUND_DSP_GetSpectrumfunctionthisneedstobeturnedonwithFSOUND_DSP_SetActivefirst.YoucangetahandletothisunitsimplybycallingFSOUND_DSP_GetFFTUnitClipandCopyUnit-ThisisthefinalsystemunitintheFSOUNDchain.YoucangetahandletothisunitsimplybycallingFSOUND_DSP_GetClipAndCopyUnit
Thesystemunitscanbedisabled,enabledandshiftedaroundinthislist!YoucouldeventhrowouttheFSOUNDsoftwareenginealltogetherandreplaceitwithyourown!
Priorities
NoticehowinthediagramaboveeachDSPunithada'priority'.ThisissimplyanumericvaluedeterminingitsorderintheDSPchain.Thelowertheprioritytheearlieritgetsexecuted.NoticehowtheClearUnithasapriorityof0,asitwantstobetheveryfirstunitexecuted.
Thisisbecauseitwouldn'tmakemuchsensetodoanythingbeforeit,astheClearUnitwilljustwipeitoutwithzero'sanyway!Youmaydisagreewiththis,wellok!(youmaywanttoexecutesomenonbufferalteringlogiclikeatimerthatcallsPlaySoundeverynowandthenforexample),soyoucansimplymoveitwithFSOUND_DSP_SetPriority.
Nowitsyourturn
Youmaybethinking,wellthissoundslikeagoodplaceifIwantedtocreatemyowneffectssuchasreverboralowpassfilterforexample,ormaybeyoujustwanttoreadthedatathatcomesinsoyoucangraphicallyplotit!Wellyou'rerightthisistheplacetodoit.JustcallFSOUND_DSP_Create,andgiveitacallback,andapriority.SetitactivewithFSOUND_DSP_SetActiveandimmediatelyyourDSPunitwillbeticking.Nowthedatapassedinwillbeeither16bitstereointeger(-32768to+32767)or32bitstereofloatingpoint(-32768.0fto+32767.0f,not0to1).Thiscanbedeterminedbywhatmixerisbeingusedatthetime,withFSOUND_GetMixer.It'suptoyounowwhatyoudowiththisdata.OneimportantthingtonoteisthatFMODmixesthedataaheadoftime,andthedatayouareprocessingisnotthedatathatisimmediatelyaudible.Ifyouarethinkingofplottingthedatatosyncwiththeaudibleoutput,itiswisetobufferthedatainacircularbuffer,forthenumberofsamplesspecifiedbyFSOUND_DSP_GetBufferLengthTotal.ThislengthisdivisiblebytheDSPcallbacklength(alwaysamultipleof25ms).Fromthispointthenyouwouldplottheblockofdataprecedingtheoneyouarefilling,whichistheoneplayingatthatpointintime!SeetheFMODexampleinthe/samples/fmoddirectoryforsourcecodethatdoesthis,andmanyotherexamplesofDSPprocessing.
FSOUND_PlaySoundExandthe'FSOUND_DSPUNIT*dsp'parameter
The'dsp'parameterinthisnewPlaySoundcommand,allowsyoutoassignor'group'achanneltoaspecificDSPunit.Thedspunityouassignhastobeanewoneandnotanexistingsystemunit,withnocallback.ADSPunitwithsoundeffectsattachedtoitdoesnothingbutexecutechannelmixing,asitreplacestheDSPcallbackwithitsowninternalmixercallback.Onereasonfordoingthisishavingawet/drymixforaneffect.Thisisdemonstratedinthe/samples/dspdirectory.Youmaywanttohavesomeeffectsaffectedbyreverbforexample,butnotothers.ThisispartofthereasontheMusicUnitisseparatefromtheSFXunit,asyoulikelydon'twantmusicaffectedbyDSPeffectsbutdowantthein-gamesoundeffectstobeaffected.
SPECTRUMANALYSIS
Introduction
ThisshortsectionrevealshoweasyitistoobtaintherealtimespectrumgraphforFMOD'sDSPoutputasyouhearit,forgraphicaldisplayorevenadvancedsignalprocessing!
Usingit
ThespectrumanalysisunitisanFMODSystemDSPUnit.IfyouareunsureoftheFMODDSPsystemthenseetheDSPtutorial.Bydefaultitisturnedoffbecauseitcanconsumeareasonableamountofcputimeanditdoesn'twanttobedoingFastFourierTransformcodewhenthespectrumisn'tevenbeingqueried!Toturnitonisquitesimple.Justcall.
FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit,TRUE);
Toturnitoffagainisjustassimple.Justcall.
FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(),FALSE);
Whenyouraudioisplaying,thisDSPunitwillevery25ms,ortherateoftheDSPengine,updateasnapshotofthecurrentaudiblespectrum.
TherangeforthisFFTproducesaspectrumarraybetween1hzandNyquist,orinotherwords,1hzandthesamplerategiventoFSOUND_Initdividedby2.Ifyouhada44khzoutputitwouldproduceresultsupto22khz.
Togetthespectrum,useFSOUND_DSP_GetSpectrum.Asthedocumentationforthisfunctionsays,itreturnsapointertoanarrayof512floatingpointvaluesbetween0.0and1.0.Simplyplotthesevalues,scalingthe0to1valuetotheheightofyourspectrumdisplay,orprocessthemforthingslikebeatdetectionetc.Valuesabove11khz(wheninitializedwith44khz)becomeverysmallandaresometimesgraphicallynotveryinteresting.TheFMODmediaplayeronlyplotsthefirst256entriesbecauseofthis.Itisuptoyouhowyouinterpretthedata.Ifyouwantadifferentsizewindowbeside512thensimplyinterpolate,disregardorskipentriesandaveragethemtoyourdesiredrange.DifferentwindowsizesforthecurrentFFTarenotplannedfor
futurereleasesofFMOD.
NOTE:YoucanchangethepositionofthesystemFFTDSPunit.ItiscurrentlypositionedlastinthechainofDSPunitsbydefaultsothatthespectrumresultsinfeedbackfromeverythingplayedthroughtheFMODsoftwareengine.SeeFSOUND_DSP_PRIORITIESfortherelativesystemDSPunitpriorities.YoucouldmoveittobeforethemusicunitandaftertheSFXunitforexample,whichwouldexcludemodsfromhavingitsinputintothespectrumgraph.ItwouldbeachievedlikethisFSOUND_DSP_SetPriority(FSOUND_DSP_GetFFTUnit(),150);
WhathappensifIwanttogetaSpectrumbutuseFSOUND_FX?Aren'tthe2incompatible?.
Itispossiblebutwithsomelimitations,Seethissectionformoreinformation
FSOUNDFXAPIIntroduction
TheFSOUND_FXapiallowsyoutodospecialeffectsprocessingperchannelthroughDirectX8only.Youcandosucheffectsaschorus,compression,distortion,echo,flange,gargle,reverb,andEQthroughasimpleAPI.
Limitations
BeforeusingtheFSOUND_FXapi,thereareafewlimitationsthatmustbeknownaboutbecauseoftheDirectXAPI.
FXenabledsamplescanonlybeplayedonceatatime,notmultipletimesatonce.SamplesorstreamshavetobecreatedwithFSOUND_HW2DorFSOUND_HW3D,andFSOUND_ENABLEFXforthistowork.IfyouareusingDirectX8,FSOUND_SetFrequencywillnotworkanymoreforthatsound,youcannotchangethepitchofaFXenabledsound.ThisisaDirectXlimitation.DirectX9doesnothavethislimitation.FSOUND_FX_Enablecannotbecalledifthesoundisplayingorlocked.IfFSOUND_FX_DisableisnotcalledeffectswillbuildupontopofeachothereverytimeFSOUND_FX_Enableiscalled.Oncethesearetakenintoaccount,youcangoforit!
Usingit
YouhavetousethepausefeatureofFSOUND_PlaySoundExforthisAPItowork.ThereasonforthisisDirectXneedsachannelresourceinhardwaretobeallocated,andsoactuallyPLAYED(butpaused)beforetheFXfunctionscansucceed.
Onceyouhaveitplayedbutpaused,youcanenablemultipleeffectsononechannel,andeventhesameeffectmultipletimesonthesamechannel,thenunpauseittohearwhathappens,butatthispointyoucannotenablemoreeffects.Ithastobepausedorrestarted.Youcanupdatetheparametersofeffectswhiletheyareplayingorwhileitispaused.
Hereisanexample
intchannel,echoid,echoid2;channel=FSOUND_PlaySoundEx(FSOUND_FREE,samp2,DrySFXUnit,TRUE);
echoid=FSOUND_FX_Enable(channel,FSOUND_FX_ECHO);//enableechoandgetthefirstechohandleechoid2=FSOUND_FX_Enable(channel,FSOUND_FX_ECHO);//enableechoagainandgetthesecondechohandleFSOUND_FX_Enable(channel,FSOUND_FX_FLANGER);//enabletheflangeeffect,
don'tbotherwiththehandle,we'lljustusethedefaultparameters<
FSOUND_SetPaused(channel,FALSE);//nowstartthesoundplaying
FSOUND_FX_SetEcho(echoid,80.0f,70.0f,100.0f,100.0f,TRUE);//Altertheparametersofthefirstechoforthechannelitwasenabledon.Thishandleisuniquetothiseffectandthischannel.The2ndechoweenabledwillbeunaffected
Thisprocessmustberepeatedaswhenasoundisrestarted,allFXinformationisreset,soeffectsmustbeenabledeachtime.
FXonthe'output'channel.
Thisisaspecialfeaturewhichallowsyoutoenableeffectsontheoutputresultofthesoftwaremixedchannels!IfyouspecifyFSOUND_INIT_ENABLESYSTEMCHANNELFXXintheflagsfieldofFSOUND_Init.ThechannelIDtouseforalteringtheoutputresultisFSOUND_SYSTEMCHANNEL.CallFSOUND_SetPausedonthistoenableeffects.Thiswillstopallsoftwaremixedsoundeffects.
FSOUND_FX+SpectrumandDSP?.
TousetheFSOUND_FXapitodofxonchannelsrequiresFSOUND_HW2DorFSOUND_HW3D(andFSOUND_ENABLEFX)flagstowork.Youmaynoticeifyoudothis,youwilllosetheabilitytodoFSOUND_DSP_GetSpectrumoranyDSPunitwillnotregister,becauseFSOUND_FXchannelsplayinhardware,anddon'trunthroughtheFMODDSPEngine.
Thereisawaytodothisthough.InsteadofperformingEQonachannelbychannelbasis,performitontheglobalsoftwaremixoutput.
Thismeansyoucan'thaveperchannelcontrol,butifyouarejustlookingforawaytodoEQonyouraudioforexample,thenusethefollowingmethod.
CallFSOUND_SetBufferSize(100);WhenyoucallFSOUND_InitwithFSOUND_INIT_ENABLESYSTEMCHANNELFX(seestep2)youwillneedabigenoughsoftwareenginebuffertoallowFXtobeprocessed.FMODdefaultsto50whichistoosmall.ThisisalimitationofDirectSoundandneedstobetakencareof.UseFSOUND_INIT_ENABLESYSTEMCHANNELFXinFSOUND_Init.ThiswillreadythesoftwareengineoutputtohavetheFXapiusedonit.Pausethesoftwareengine.YoualwaysneedtopausethesourcewhenusingFSOUND_FX_Enable(seestep3),socallFSOUND_SetPaused(FSOUND_SYSTEMCHANNEL,TRUE);CallFSOUND_FX_EnabletocreateallyourFXhandles(EQ,distortionwhatever).Unpausethesoftwareengine.FSOUND_SetPaused(FSOUND_SYSTEMCHANNEL,FALSE);Nowyouareready!Createstreamsandsoundsinsoftwaremode(FSOUND_NORMAL-don'tuseFSOUND_HW2DorFSOUND_HW3D)
Nowthatallyoursoundsandstreamsareinsoftware,yougetspectrumanalysisback,andalsoyoucanusetheDSPengineforyourownsoftwareprocessingoroscilliscopeplotting-withtheaddedbenefitofFSOUND_FXprocessing!
THEFSBFORMAT,BANKS,STREAMSANDSENTENCING
Introduction
FMODIntroducesanewformatcalled.FSB,ortheFMODSampleBankformat.Thisformatisgeneratedbythesuppliedtool.FSBank(fsbank.exe).Itismainlyrecommendedforconsoleformats,butcanbeusedonanyplatform.ItisespeciallyrecommendedforPlayStation2,XBoxandGameCubeasitisamoreoptimalmethodofloadingsounddataintosoundramratherthanusingindividualsoundfileswhichisslowandinefficientwhencomingoffCD.
CompilingtheFSBfile
CreatinganFSBfile(ormultiplefsbfiles!)iseasy.Justopenthetoolcalledfsbank.exeprovidedinthetoolsdirectory.Currentlythisisonlyprovidedasawin32application.Youwillfindaninterfacelookingsomethinglikethis.
FSBankisveryeasytouse.YouhavetofirstdecidewhattypeofFSBfileoutputyouwanttogenerate.Themostcommonisa
single.FSBfilecontainingmultiplesounds.Thisisthedefaultandaccessiblebychoosing'GenerateSingleFSBFile'fromthepull-down'Build'menuasshowninthediagram.
SingleFSBfileYousimplytakeadirectoryofanysoundfiles,andspecifyasthe'SourceDirectory'field.Thentellthecompilerwheretobuildthefiletobychoosinga'DestinationFile'.Nowchooseaplatformtobuildto('ChooseTarget'fieldatthebottomofthescreen),andhitthebig'Build'button.Thisgeneratesasingle.FSBfile,andontopofthisitalsogivesyouaCheaderfiletoincludeintoyourprogramtoallowindexedaccesstothesounddatawithintheFSBfile.
MultipleFSBfilesThisissimilartobefore,butnowyoucangeneratemultiplefsbfilesinsteadof1file.Thisisonlyusefulforgeneratingmultiple.FSBfilestobeusedforstreaming(Thinkofitasabatchbuildforindividualstreams).NotethatyoucanuseasingleFSBfileasdescribedaboveforstreaming,butitislimitedduringplaybacktoonlyoneofthesoundsinthebankatatime.Yousimplytakeadirectoryofanysoundfiles,andspecifyasthe'SourceDirectory'field.Thentellthecompilerwheretobuildthefiletobychoosinga'DestinationDirectory'.Nowchooseatheplatformtobuildtoo('ChooseTarget'fieldatthebottomofthescreen),andhitthebig'Build'button.Thisgeneratesmultiple.FSBfiles,oneforeachsourcefile,andontopofthisitalsogivesyouaCheaderfileforeachoutputfile.
SingleInterleavedFSBFileThismodeallowsmultiplesoundfilestobeinterleavedinto1stream.Itonlygenerates1FSBentry,butasmonohas1channel,stereohas2channels,thesefilescanhaveupto16channelsofinterleavedaudio.Thedataismultiplexedinunitssuitabletothehardware(iePlayStation2willinterleavedataevery16bytes,36bytesonXBoxWhyisthisuseful?Wellwiththisfeature,youcouldget16channelsofplaybackwithnoseeking.Ifyouloadedandplayed16streamsindividuallyyouwouldnoticeaLOTofseekingwhichisinneficient,andcausesstutteringortheneedforhugebuffersizes,usinguplotsofRAM.Usinginterleavedstreamswillremoveseeking,andreducestreambuffersizes.Whywouldyouwanttohave16tracksofsoundgoingatonce?Wellthisisuptotheuser,butthemainbenefitsforthisare
Interactivemusic.Becausethesestreamsareinterleaved,italsomeanstheyareperfectlysynchronized.Youcanhavemultiplelayersofsoundtrackinterleaved,andforthedurationofthesong,themajorityofthechannelscanbesettovolume0,sotheyaremuted.Whenaneventorsituationarisesinthegameyoucanfadeupanddowndifferenttrackstobringinanewdrumbeatoroverlayforexample,addingmood.Multichannelambience.Thiswouldbepurelybeneficialforthetechnicalsideofstreaming,reducingtheamountofseekingandmemoryneededtoplaymultipleindividualstreams.Youcanhavemanytracksofhugeambiencedatastreamingatonce,and3dpositioneachsubchannelifyoulike,sostreamdatacomesinandoutdependingonlocationinthegameworldforexample.
Note:TheseinterleavedfilescanalsobestaticallyloadedusingtheFMUSICapi,andplayedbackas'samples'aswellasstreams,aslongasyouhaveenoughsoundram.
PlayStation2StreamsbenefitimmenselyfromFSBcompilingonPlayStation2.As.VAG(thenativeps2format)doesnotsupportstereodatanatively,.FSBovercomesthisbyinterleavingstereovagblocksintoeachother,thendeinterleavingitatruntimewhenstreaming.Thishasabenefitofnothavingtoplay2monostreamsatonce(panningoneleftandoneright),likeyoumighthavetowithotherplaybacksystems.
AccessingFSBfilesfromwithinyourprogram
Loadingan.FSBfileasastaticsoundbankintosoundramTodothis,youusetheFMUSIC_LoadSongorFMUSIC_LoadSongEx,andFMUSIC_GetSamplefunctions.BecausethesefunctionsalreadyexistedintheFMODapiformod,s3m,xm,it,midiitseemedappropriatetousethisAPIforFSBfiles,eventhoughtheyarestrictlynot'songs'.TheCheadergeneratedbytheFSBanktoolcontains#definesorindicestoreferenceeachindividualsoundfromyourcode,usingFMUSIC_GetSample.YoucansimplycallFSOUND_PlaySoundoneachofthesesamplehandlesyouretrievethroughtheFMUSICapiandmanipulatethemasyouwouldwithnormalsamples.
UseFMUSIC_GetNumSamplestodeterminethenumberofsamplesintheFSBformat.
YoucanmodifythewayallsoundsareloadedbyusingthemodeparameteroftheFMUSIC_LoadSongExfunction.Forexampleifyouwanttomakeallsoundshardware3dyoujustspecifytheFSOUND_HW3Dflag.Youcouldalsomakethemall2d,ormaybemakethemallloopwithFSOUND_LOOP_NORMAL.
OpeningamultisoundFSBfileasastreamThisisthesameasopeninganyotherstream.UseFSOUND_Stream_Open.Toaccessthesubsoundswithinthebankisdifferentthanwithsamples.Becauseitisastream,youcanonlyseekfromonesubsoundtoanother.ThisisachievedwithFSOUND_Stream_SetSubStream.Becausethisisaseekingaction,itwillstopthecurrentlyplayingstream,andperformtheseektothenewsound.YouwillhavetocallFSOUND_Stream_Playtogetittostartplayingagain.
Streamstitching,orsentencing
WhenplayinganFSBfileasastream,didyouknowyoucanstitchthemtogetheratruntimeusingFMOD'ssentencingengine.Thisallowsforabsolutelygapless,efficientstitchingofsounds,withnoneedforslowstoppingorstartingnewstreams,andtheorderofplaybackisdeterminedatruntime.Thisisgreatforvoiceovers,whereyoucanstringtogetherabunchofsoundstomakeasinglecoherentsentence.
Howisthisdoneincode?Thatiseasy.YoujustcallFSOUND_Stream_SetSubStreamSentencebeforeyoucallFSOUND_Stream_PlayorFSOUND_Stream_PlayEx.ie,sayyouhaveabankwithmultiplesoundsinit,withsoundsnippetslike"Brett","Andrew","Scored","Missed","OnePoint","TwoPoints!","ThreePoints!"
intlist[3]={SOUND_BRETT,SOUND_SCORED,SOUND_THREEPOINTS};FSOUND_Stream_SetSubStreamSentence(stream,list,3);FSOUND_Stream_Play(FSOUND_FREE,stream);
Thiswouldresultinaverysmooth"Brettscoredthreepoints!".
Didyouknow?
IfyouhaveloadedyourFSBfileasastaticsamplebank,youcancallFMUSIC_PlaySongtolistentothecontentsofthefile?Itwillplayeachsubsoundonebyone,whichisgreatforpreviews.
TROUBLESHOOTINGIntroduction
ThiswillcoversomeofthemostcommonproblemspeoplecomeacrosswhenusingFMOD.Rememberifyouhaveanyproblemsjustsendamailtosupport@fmod.org
FSOUND_InitfailsonCEdevices
Thissometimeshappensifthesounddeviceisalreadybusy,andthesoundhardwarewillnotreleaseitselftoFMODuntilitfinishesplayingasound.ThiscanhappenwhenactivesyncstartsupandplaystheconnectionnoisejustasFMODistryingtoinitialize.Toremedythisjustinitializefmodinaloopuntilitsucceeds,sleepingevery10or100msorhoweverlongyouprefer.Itisagoodideatotimeoutifitneversucceedsthenresolvetheissuethroughcheckingtheerrorcodeorstoppingtheprogramthatisstealingtheresource.ie.
intretrycount=0;while(!FSOUND_Init(22050,32,FSOUND_INIT_GLOBALFOCUS)&&retrycount<10){
Sleep(100);retrycount++;
}
if(retrycount==10){
/*Printerror*/}
Inthisexampleitwillkeepretryingforabout1seconduntilitexitsandprintsanerrormessage.
Stuttering/Skippingsound
Morecommonlyknownasbufferunderrun/overrun,thiscanbe1oracombinationoffactors
BadsoundcarddriversThismaybesolvedbyupgradingyoursoundcarddrivers.(Noteitisrecommendedyougetthelatestdriversanyway)
CPUissuesMachinetoslow,orwhateveryouraretryingtodowithFMODistoocpuintensive!(ieplaying100mp3'satoncewillmostlikelybringFMODtoitsknees,ormaybeauserstreamcallbackorDSPcallbackisspendingtoomuchtimeexecuting).
MixerbuffersizeissettoosmallYoucanincreasestabilitytocombattheseissues,byincreasingFMOD'sinternalmixingbuffersize.Thiswillleadtogreaterstabilitybutalsolargerlatencyonissuingcommandstohearingtheresult.CallFSOUND_SetBufferSizetoalterthisvalue(inmilliseconds).ItmustonlybecalledbeforecallingFSOUND_Init,itwillfailotherwise.Pleasedon'tsetthisvaluetohugenumberslike2000or10000.Itwon'thelpincreasestabilityandwillconsumelargeramountsofCPUtimeandRAM.Firsttryavalueof100,then150,then200,andnomore.
StreambuffersizeissettoosmallIfyouareusingthestreamAPI,youmightbestreamingoffaslowmedia,suchasCDROMorovernetwork,orevenafragmentedharddisk,andfmodneedsmoretimetofillitsstreamingbackbuffer.Forstreamingbuffers,fmoddefaultstoa400msstreambuffersize.Thisisseperatetothemixerbuffersizedescribedaboveandnotrelated.Changingthisvaluedoesnotalterlatency.Streamsarepre-bufferedandalwaysstartinstantlynomatterwhatthebuffersize.CallFSOUND_Stream_SetBufferSizetoalterthisvalue(inmilliseconds).Itmustonlybebeforeopeningastreamtotakeeffect.Settingthisvaluetolargevalueswillcauselargercpuspikes(ifacompressedformat)andmorememoryusage.Valuesaround1000to2000maxarerecommended.Largervaluesarenot.
VideoCardDriversYesvideocarddriverscanaffectsoundoutput.Alwaysmakesureyouhavethelatest3d/videocarddrivers,andthatyourusersareawareofthisaswell.IthasbeennotedthatabadVIDEOcarddrivercancausebreakupsandinstabilityinsoundoutput,astheyarebadlywrittenandcausethebustobetakenoverbythevideocard,notlettinganysounddatatobetransferredtothesoundcard.ThishasbeennotedonS3VirgeandVoodoo1driverssofar,soalwaysrememberfirsttohavetheLATESTvideodriver,andmakesureyounotethisinyourdocumentationaswellupondistribution.
Frame-rateistoohigh!Yesthiscanalsoaffectthesoundoutput,forthesamereasonsasdescribedabove.Excessivecallsofthevideodrivercanforcethesounddrivertonotbeserviced.Ithasbeenfoundthatintroducingaframe-ratelimiterwillsolvethisproblem.
OutputtypeFSOUND_OUTPUT_DSOUNDwillprovidemoresolidoutputthanFSOUND_OUTPUT_WINMMinanythingexceptNT.ThisisaproblemwithWindowsMultimediaServicesnotbeingasrealtimeasitshouldbe.UnderNTFSOUND_OUTPUT_WINMMismorestable,asDirectSoundinNTisjustemulatedbyusingWINMMitselfandisactuallyslowerandhaslongerlatency!.NOTE:Pleasedon'tfeeltheneedtouseFSOUND_SetOutputifyoudon'tneedto.FMODautodetectsthebestoutputmodebasedontheoperatingsystem.
USINGTHEFSOUND_NONBLOCKINGFLAG
Introduction
TheFSOUND_NONBLOCKINGflagstopscertainstreamormusiccommandsblockingthecallerwhenbeingexecuted,byperformingtheminaseperatethread.Mainlymeantforopeningstreamsandmusic,toavoidtheslownessofdiskaccessgeneratinghugepauses,thisflagmakesthesecommandsreturnimmediatelywithoutaffectingtheframe-rateatall!TheflagmustbespecifiedinFSOUND_Stream_OpenorFMUSIC_LoadSongExusingthemodeparameterforittowork.YoucannotuseSetModetypefunctionstomakeitwork,itmustbecalledatthetimeofopening.
Thisraisesnewissuesthough.YoucannotjustaccessastreamormusicfilethathasbeenopenedwiththeFSOUND_NONBLOCKINGflagimmediately!Youhavetowaitforittoopen!FMODdoesnot'queue'commandstononblockingstreams/musics.Thiscouldleadtomis-useandoverflows,orevenconfusionaboutthestateofthestreambehaviouratthetime,soapollingmethodispreferredsothattheusercancontrolexactlywhatoccursinwhatorder.
Pollingforsuccess
Thekeytoworkingwithnonblockingstreamsandmusicfilesistowaitforthemtoopenbeforeplayingthem.OnemethodtodothisistopollthestateofastreamusingFSOUND_Stream_GetOpenStateorFMUSIC_GetOpenState.Anothermethodistotryandplaythestreamoraccessthesubsoundscontinuouslyinagameloopuntilitsucceeds.
Whileanonblockingstreamisopening,nearlyallfunctionswillreturnanerrorcodetosignifythatthestreamisnotready.ThismeanssomethinglikeFSOUND_Stream_Playwillreturn-1whileitistryingtoopenthefileinthebackground.Whenitreturnsavalidchannelhandle,youknowitisreadyandhassucceeded!
Anexampleforplayinganonblockingstreamisprovidedbelow.Thisisatypicalloopthatshouldbeusedwhentryingtoplayanonblockingstream.Youwillnotice,onceitsucceeds,itwon'ttryandplayagainbecausechannelisnot-1anymore.
FSOUND_STREAM*stream;intchannel=-1;
stream=FSOUND_Stream_Open("mystream.fsb",FSOUND_NONBLOCKING,0,0);
do{
if(channel<0)
{channel=FSOUND_Stream_Play(FSOUND_FREE,stream);
}
GameCode();
}while(1)
AlternativelyyoucouldusetheFSOUND_Stream_GetOpenStatemethod.Thisisshownbelow.
FSOUND_STREAM*stream;intchannel=-1;
stream=FSOUND_Stream_Open("mystream.fsb",FSOUND_NONBLOCKING,0,0);
do{
if(channel<0&&FSOUND_Stream_GetOpenState(stream)<0){
channel=FSOUND_Stream_Play(FSOUND_FREE,stream);}
GameCode();
}while(1)
Itisbasicallythesamethingandslightlyredundant.
FSBformat,substreamsandsentences.
SettingSubStreamsFSBhasmultiplesoundspackedwithinit,soyoumightwanttouseFSOUND_Stream_SetSubStreamYoudon'tneedtopolltogetFSOUND_Stream_SetSubStreamtowork.Ithasbeenoptimizedsothatitwillimmediatelyseektothecorrectsubstreamoncetheopenhasfinished.Thisisaspecialcaseforthisfunction,andnootherfunctionsallowthis.Thismeansyoucancallitstraightaway,evenafteranonblockingstreamopen.Hereisaversionoftheaboveloop,thatsetsasubstream.
FSOUND_STREAM*stream;intchannel=-1;
stream=FSOUND_Stream_Open("mystream.fsb",FSOUND_NONBLOCKING,0,0);FSOUND_Stream_SetSubStream(stream,SOUND_4);
do{
if(channel<0){
channel=FSOUND_Stream_Play(FSOUND_FREE,stream);}
GameCode();
}while(1)
NotethatonceyoucallFSOUND_Stream_SetSubStream,thestreamis'notready'again.ThismaynotseemtoberelevantifyoucallitafterFSOUND_Stream_Open,becausewealreadyknewitwasnotgoingtobeready,butifyoucallitwhenthestreamhasactuallyfinishedopeningandisready(forexample,youmaywanttosetthesubstreamlongafterthestreamhasopened,ie30secondslater),thenyouwillneedtorememberthis,buttheabovelogicalwaystakescareofit.Youjustneedtosetchannelto-1intheaboveexamplewheneveryoucallFSOUND_Stream_SetSubStreamanditwillwork.
SettingSubStreamSentencesSettingasub-stream-sentenceisnext,andisslightlytrickier.FSOUND_Stream_SetSubStreamSentencedoesnotsucceedimmediatelylikeFSOUND_Stream_SetSubStream,andwillactuallyfailiftheopenisstillinprogress,soyoucannotcallitstraightafterFSOUND_Stream_Openlikewedidinthepreviousexample.Whatyouhavetodoispollforthestreamtobeinareadystate,thenexecuteFSOUND_Stream_SetSubStreamSentence.AlternativelyyoucancontinuallycallFSOUND_Stream_SetSubStreamSentenceuntilitsucceeds,abitlikewedidwiththecalltoFSOUND_Stream_Playinthepreviousexample.Notethefollowingcode
FSOUND_STREAM*stream;intchannel=-1;intsetsentence=0;
stream=FSOUND_Stream_Open("mystream.fsb",FSOUND_NONBLOCKING,0,0);
do{
if(!setsentence){
intsentence[2]={SOUND_4,SOUND_5};
setsentence=FSOUND_Stream_SetSubStreamSentence(stream,sentence,2);}elseif(channel<0){
channel=FSOUND_Stream_Play(FSOUND_FREE,stream);if(channel!=-1){
FSOUND_Stream_SetMode(stream,FSOUND_LOOP_NORMAL);//Thisisjusthereasanexample.
}}
GameCode();
}while(1)
Rememberatalltimes,youcanuseFSOUND_Stream_GetOpenStatejustaseffectivelyascontinuouslypollingthecommandyouwanttosucceed.Itisjustslightlylesscodeusingtheabovemethod.
Thingstolookoutfor
Ifyoususpectafilehasnotopened,orfailedtoopen,pollFSOUND_Stream_GetOpenState.Thiswillreturnthestateofthestream,andifithasfailed,itwillreturn-3.Notethateventhoughthestreamhasfailedtoopen,thestreamhandleisstillvalidwhenopeninginnon-blockingmode.Youwillneedtocloseit.
ThepointofFSOUND_NONBLOCKINGisthatittakesnocputimeawayfromthecaller.Thismeansitcannotcheckthevalidityofafile,asthatwouldconstitutediskaccess,whichcouldblockandcauseframestodropfromtheapplication.AlldiskaccessisdonefromtheFMODasynchronousloadingthread,soifitfails,theusercannotgetimmediatefeedback,theyhavetocheckthestatusseperately.Don'ttryandcloseastreambeforeitisready!Thiswillcauseamemoryleak,asFSOUND_Stream_ClosewillreturnFALSEbecauseitisnotready.Checkthedocumentationforeachstreamfunctiontoseeifitwillfailornotduetonotbeingreadyinanonblockingstate.
FMODANDMOVIEPLAYERSIntroduction
ThissectiondescribeshowtohaveFMODhappilycoexistwithvariousmovieplaybacksystemsavailable.
PlayStation2
ThemaincausesonconflictsbetweenothermiddlewarethatusesaudioortheIOP,andFMODare:
ConflictbetweentheSPU2DMAchannels.Thereare2ofthese.DMAchannel0andDMAchannel1.BydefaultFMODusesSPU2DMAchannel0forsoftwaremixing,andDMAcore1foruploadingsampledataandforstreamingto.ThismeansDMAcore1isusedwhenFMUSIC_LoadSong/FMUSIC_LoadSongExisbeingexecutedtoloadaPS2FSBfile,orstreamingusingFSOUND_Stream_Open/FSOUND_Stream_Play.Toworkaroundthisissueseethefollowingtips.
TurnofftheFMODsoftwaremixer.ThiswillfreeupDMAChannel0.Mostofthetimeyouarenotgoingtoneedthis.YoucandothisbyusingFSOUND_Initwithsoftwarechannelssetto0.SwapFMOD'smixer/uploadchannelusagearound.Ifthe3rdpartysoftwarestillusesDMAChannel1(thechannelFMODusesforbankuploadsandstreaming),youcaneitherchangeyour3rdpartysoftwaretouseDMAChannel0insteadofDMAChannel1,ortellFMODtoswapitsusagearoundbyspecifyingFMOD_INIT_PS2_SWAPDMACORES.Ifyoudidn'tturnthesoftwaremixeroff,thiswouldmakeFMODuseDMAChannel0forstreamsandsamplebankuploads,andDMAChannel1forthesoftwaremixer.
ConflictontheSIFCMDports.IfyourmiddlewareoryourowncodeisusingtheSIFCMDsonylibrarytocommunicatewiththeIOP,thenifyoudonttakecaretosharetheSIFCMDbuffersandportswithFMOD,messageswillgetlostandunexpectedbehaviourwilloccurinFMODandyour3rdpartysoftware.
Ifyouwanttoinitializeyour3rdpartysoftwareafterFMOD.UsethisinformationifthecodehasawaytosetupitsSIFCMDusage.NotethatFMODusesSIFCMDport0and1,andhasabuffersizeof16.Ifyouwanttoinitializeyour3rdpartysoftwarebeforeFMOD.IfFMODisinitializedfirst,callFSOUND_SetSifCommandInfofromfmodps2.h.AlsoloadyourFMOD.IRXorFMODSMALL.IRXwithcommandlineparameterstoallowtheIOPsidetogetthesameinformation.Formoredetailedinformationonthisseethecommentabovethefunctionprototypeinfmodps2.h.
SPU2ramusageandSPU2hardwarevoiceusage.BecauseFMODandthemiddlewaremightnotknowabouteachother,theymightallocatememoryoruseSPU2voiceswithoutanyregardfortheother.
UseFSOUND_SPU2_Alloc/FSOUND_SPU2_GetRawAddress/FSOUND_SPU2_Free.UsethesefunctionstoallocateSPU2memoryforyour3rdpartyapplication.ThiswayitwilluseFMOD'smemorymanager.UseFSOUND_SetReserved.Ifthe3rdpartysoftwareusesSPU2voices,youcanmarkthe
literalSPU2voiceindexasnottobeusedwithinFMOD.Ifthe3rdpartysoftwareusedSPU2voice0forexampleFMODwoulduseFSOUND_SetReserved(number_of_software_channels+0,TRUE);Notethatthesoftwarechannelsvalueismentionedbecauserawchannelindiciesare0to(maxnumsoftwarechannels-1)=softwarevoices,andafterthisarehardwarevoices.Ifyouhavethesoftwaremixerturnedoff,then0wouldbeSPU2voice0and47wouldbeSPU2voice47.
XBOX
ThemaincausesonconflictsbetweenothermiddlewarethatusesaudioontheXBox,andFMODare:
"DSOUND:CMcpxAPU::AllocateVoices:Error:Notenoughfreehardwarevoices".BydefaultFMODassumesitisintotalcontroloftheaudio,soitallocateseveryXBoxaudiovoice.Ifanother3rdpartysoftwareapplicationtriestoallocateahardwarevoiceitwillfail.
UseFSOUND_SetMaxHardwareChannels.TogetaroundthisissuejustcallFSOUND_SetMaxHardwareChannelstoreducethecount.XBoxhasaround192HW2Dvoicessoyoucouldreducethisandstillhaveplentyofvoicesfree.
DSPImageincorrect.FMODhasaninternalMCPDSPimagethatitloads.Itisstrippeddowntosavememory,(hundredsofkilobytes)byremovingunnescessaryfeatures.Thismayconflictwithother3rdpartysoftwarethatreliesonastandardDSPimagesuchasMicrosoft'sdsstdfx.bin.
UseFSOUND_SpecifyEffectsImage.Ifthe3rdpartymiddlewarehasadspimagefilethatitreliesonyoucanuseFSOUND_SpecifyEffectsImage(foundinfmodxbox.h)tomakeFMODusethatimage.MaketheothersoftwareuseFMOD'simage.YoucangetahandletoFMOD'sinternaldspimagestructurebycallingFSOUND_GetEffectImageDesc(foundinfmodxbox.h)ifthe3rdpartyhassuchafacilitytoallowthissortofexternalimagetobeused.
NeedsaccesstotheXBoxLPDIRECTSOUNDhandle.Ifthe3rdpartysoftwareisinitializedsecond,itmaywanttousetheXBoxLPDIRECTSOUNDhandle.
UseFSOUND_GetOutputHandle.IfyouneedtogetahandletoFMOD'sinternalDirectSoundpointer,youcanshareitbycallingFSOUND_GetOutputHandleandcastingittotheappropriatepointertype.
Win32
IfyouneedtogetahandletoFMOD'sinternalDirectSoundpointer,youcanshareitbycallingFSOUND_GetOutputHandleandcastingittotheappropriatepointertype.ThisalsogoesforXBoxandotherplatforms,anddependsonth
BinkonPS2
HereisaquickwaytogetFMODPS2andBinktoco-exist.
InitializeFMODfirst.
FSOUND_Init(48000,0,FSOUND_INIT_PS2_SWAPDMACORES);
FSOUND_SetReserved(0,TRUE);
InitializeBink
MovieBuffer=sceSifAllocIopHeap(RAD_IOPMemoryAmount(RAD_IOP_NEED_CORE1));RAD_IOPMemoryAmount(RAD_IOP_NEED_CORE1)));if(!RAD_IOPStartUp(1,2,MovieBuffer,RAD_IOP_NEED_CORE1|RAD_IOP_NO_INIT_LIBSD)){
sceSifFreeIopHeap(MovieBuffer);//error
}RAD_IOPHardwareVolumes(1,0x3fff,0x3fff,0x3fff,0x3fff);BinkSoundUseRAD_IOP(1);
PLAYSTATION2SPECIFICISSUES/FEATURES
Introduction
ThissectiondescribeshowtogetstartedwithFMODforPS2,andalsosomeofthePS2specificfeaturesavailable.
GettingStarted
Thissectiondescribeswhatyouwillneedtolink,andwhatyouneedtocalltogetupandrunningforPS2specifically.
Whattolinkandloadingmodules.
Link/api/lib/fmod.aintoyourproject.Put/api/fmod.irxintoyourmodulesdirectory.YouhavetoloadtheIRXyourselfusingsceSifLoadModule.Moreaboutthisfollows.
AsimplePlayStation2applicationhastodothefollowingtouseFMOD.
1.Loadfmod.irxandsony'slibsd.irx.Thisisdonefromhost0orcdrom0orwhateverfiledeviceyoustoreyourfileson.Loadlibsdfirst,thenfmod.
eg.while(sceSifLoadModule(host0:modules/libsd.irx",0,NULL)<0){
printf("loadinglibsd.irxfailed\n");}while(sceSifLoadModule("host0:modules/fmod.irx",0,NULL)<0){
printf("loadingfmod.irxfailed\n");}
Notethatthedefaultpositionforlibsd.irxisat/usr/local/sce/iop/modules/butitmaydifferonyourmachine.
Whatdoeseachmoduledo?libsd.irx-Thisisasonyirxthatcontainsthelowlevelhardwareroutinesneededbyfmod.irx.fmod.irx-Thisisthefmodlibraryandcontainsthemajorityofthefunctionality.
2.RemembertoInitializetheIOPheapwithsceSifInitIopHeap().ThisistobecalledafterthecalltosceSifInitRpc(0)andbeforeloadinganymodules.
eg.sceSifInitRpc(0);sceSifInitIopHeap();
WARNING!IfyoureboottheIOPyouhavetocalltheaboveagain!!!OtherwiseFMODwillfailtoinitialize.
3.CallFSOUND_InitandproceedprogrammingwiththeFMODAPIasyouwouldonanyotherplatform.OnPS2,youmustcallFSOUND_Updatetogetcommandstoissue.
Mismatchingfmod.aandfmod.irxversionsarenottolerated.FMODwillfailtoinitializeiftheyarefromdifferentreleasesofFMOD.
Release/Debug.
fmod.irxandfmodD.irxhavebeensupplied.fmodD.irxisdebug,andslower,andprintsoutalogofFMODprogress,alongwithenglishexplanationsonerrorsiftheyoccur.
Stripped/Nonstripped.
Youmaynoticethereisalsofmod_small.irxandfmodD_small.irx.TheseversionsuselessIOPramthanthefullversions,butonlybecausetheyhavefeaturesremoved.Thesefeaturesareremovedinthe_smallversions.
.MOD,.S3M,.XM,.IT,.WAVand.VAGsupport.Notefor.VAGsupport,thisistalkingaboutthefileformat,soFSB"VAG"supportstillexists.
Normalstreaming(withFSBfiles),3dsoundandsamplemanagementremains.
EEThreadPriority.
NotethatiftheEEmainthreadpriorityisnotchangedfromthedefaultof1,FMODwillchangeitto32.Nothreadcanstartwhenthedefaultpriorityis1sothisisnescessary.FMODuses1threadtoreceivemessagesfromtheIOP.
Formatssupported-hardware/software
FMODPS2supports.VAGand.WAV,althoughFSBisthehighlyrecommendedformat,seethenextsectiononFSBfilesformoreinformationaboutthis..VAGismixedinhardwareand.WAVismixedinsoftware..WAVmixinginsoftwareusesIOPprocessingtime.Atthemoment,dependingonqualitysettings,FMODcanonlymixaround12-20channelsofPCMdataatonce.
.MOD.S3M.XMand.ITmusicformatsaresupported,andaremixedinsoftware.Againcurrentlyonlymodswith12-20channelsorlessarerecommendedduetotheCPUstrainon
the33mhzIOPprocessor.32channelmodsshouldbesupportedaftermoreoptimizations.
SoftwaremixingspeedontheIOP.
UsingFSOUND_Mixerwithoneofthefollowingcontrolsthenumberofchannelsavailableinsoftware.Rememberhardwaremixingispreferredsoyoumaynothavetoencounterthisissue.
-FSOUND_MIXER_AUTODETECT(noninterpolatingstereooutput-fast)-FSOUND_MIXER_QUALITY_AUTODETECT(highqualityinterpolatingstereooutput-slowest)-FSOUND_MIXER_MONO(noninterpolatingmonooutput-fastest)-FSOUND_MIXER_QUALITY_MONO(highqualityinterpolatingmonooutput-slow)
FSOUND_InitonthePS2accepts24000or48000.24000islowerqualitybutincreasesthepossiblechannelcountsignificantly.FMODwillnotsupportotheroutputrates!Donottryandusethem!(erroneousratesjustcasetheoutputratetogoto48000)
TheFSBformat-Therecommendedformatforsamplesandstreams.
Although.WAVand.VAGformatsaresupported,forloadingspeed,andstreamingspeeditishighlyrecommendedtouse.FSBfiles.FSBishardwareaccelerated,WAVisnot.
ThesearecompiledbatchesofnativePlayStation2SPU2sounddata,arrangedsowhenloaded,itisonereadtoloadtheheadersfirst,thentherawvagdata(whichiscontinuous),whichisstreamedintoSPU2ram.Thisisthefastestwaytoloadsounddata.
Memorymanagment.
IOPMemory.
UponcallingFSOUND_Init,FMODallocatesALLremainingmemoryontheIOP.ThisissoFMODcanstoresoundsinIOPramifneeded.IfyouwanttolimitFMOD'sIOPmemoryusage,simplycallFSOUND_SetMemorySystem.
ie.FSOUND_SetMemorySystem(NULL,128*1024,NULL,NULL,NULL);
ThiswillforceFMODtoonlyuse128kbofIOPmemory.NotethatsettingtoolowavaluewillcauseFMODtofailinitsinternalsystemmemoryallocationsandFSOUND_Initcouldevenfail.
EEMemory.
TheEEmemoryfootprintisminimal.ThereisnodynamicmemoryallocationontheEE.TheEElibraryissimplyacommandlayerwrappingallFMODapifunctions,andusesnothingbutstaticstructuresandmemorytoavoidmalloc/free/new/deleteissuesontheEEside.ItusesthislibrarytopasscommandstotheIOPforprocessingonthatCPU.
Reverb.
YouhaveaccesstothehardwarePlayStation2SPU2reverbthroughFMOD'sFSOUND_Reverb_xxxAPI.NotethattheSPU2ReverbisalotmoreprimitivethanI3DL2reverbandEAX3.IntheFSOUND_REVERB_PROPERTIESstructure,onlyEnvironment,RoomandFlagsaresupported.
'Environment'Thisisavaluebetween0and9mappingtothesonyreverbmodes.Youwillfind9specialpresetsforthePlayStation2withthisenvironmentvaluesetaccordingly.ieFSOUND_PRESET_PS2_ROOMFSOUND_PRESET_PS2_STUDIO_AFSOUND_PRESET_PS2_STUDIO_BFSOUND_PRESET_PS2_STUDIO_CFSOUND_PRESET_PS2_HALLFSOUND_PRESET_PS2_SPACEFSOUND_PRESET_PS2_ECHOFSOUND_PRESET_PS2_DELAYFSOUND_PRESET_PS2_PIPETheotherpresetswillnotwork,exceptforFSOUND_PRESET_OFF.
'Room'Thisstillcontrolstheamountofreverbmixedintotheoutput.Normallyitisindecibels,between-10000(silent)and0(fullvolume),anditisthesamerangeonthePlayStation2,butitisalinearscalebetween-10000and0,notalogarithmicone.
'Flags'ThisonlyutilizesthefollowingfieldsonPlayStation2.FSOUND_REVERB_FLAGS_CORE0(hardwarevoices0to23)FSOUND_REVERB_FLAGS_CORE1(hardwarevoices24to47)ThistellstheFMODenginewhichcore,orsetofhardwarevoicestoapplythereverbsettingsto.Bydefault(inthepresets)itissettoapplytobothcores,butyoucanremovetheseflagstocontroleachcoreseperately.
NotethatFSOUND_Reverb_SetChannelPropertiesissupportedthroughthe'Room'parameteronly,andthatthisvalueisbinary,ie-10000is'reverboff'forthechannel,andanythingelseis'reverbon'.
FSOUND_SetDiskBusy
Thisfunctionisusuallynotoptionalandisessentialforsmoothrunningdiskcooperationbetweenfmodandthegame.Thisfunctioncausesmutualexclusionforthecdromorhost0sothatyoudon'tgetreaderrorswhentryingtoaccessthediskwhilefmodisplayingastreamoraccessingthediskinsomemanner(ieopeningabankorstreaminFSOUND_NONBLOCKINGmode)Inyourgamecodeyouwoulddosomethinglikethis:
FSOUND_SetDiskBusy(TRUE);sceRead(...);
FSOUND_SetDiskBusy(FALSE);
ThiswillblockonasemaphoreinFSOUND_SetDiskBusy(TRUE)iffmodisusingthedisk,andifitentersandexecutesthesceRead/sceCdRead,fmodwillnotaccessthedisk,andinsteadwaituntilitisavailabletouseagain.Note-ifyousetthisfortoolong,audiostreamsmaystarttoskip/stutter,becauseFMODdidntgetenoughtimetofillitsaudiobuffer.Makesureyoueithersplitupyourownreadsintosmallerchunks,ormakeabiggerbuffersizeforFMODtousewithFSOUND_Stream_SetBufferSize.
DolbyPrologic2output
UseFSOUND_SetSpeakerMode(FSOUND_SPEAKERMODE_PROLOGIC2)orFSOUND_SetSpeakerMode(FSOUND_SPEAKERMODE_PROLOGIC2_INTERIOR)toenable5.1surroundsoundonps2.Theinteriormodeusestwiceasmanyhardwarevoices(meaningyoueffectivelyonlyget24voicesinsteadof48),butallowssoundstosmoothlymovefromlefttorightandviceversa,wherethenormalmodewill'jump'fromonespeakertotheotherifrunningstraightalongtheXaxis.Itisatradeoffbetweenvoicesandquality,ifyouneedto,youshouldevaluatebothmethodstoseewhichworksbetter.Noteonastereosoundsystem,theinterior2voicemethodwillcauseaphasingeffect,whichcansoundoddorbad,itisreallymeantforaprologic2system.
Volumeramping
Mostgamesreleasedontheps2(notusingFMOD)makeclickandpopnoisesbecausethehardwaredoesn'tsupportsmoothvolumeorpanchanges.FMODhasimplementedanadvancedrampingsystemthatnotmanypeopleknowaboutoraretooputoffbythedifficultyofthemethod.YoucanenablethisasaflaginFSOUND_InitusingtheFSOUND_INIT_PS2_USEVOLUMERAMPINGflag.Turningthisonwillreducehardwareclicksorremovethem,producingcleansoundingaudio,givingyouanadvantageoveryourcompetitors!
XBOXSPECIFICISSUES/FEATURES
Introduction
ThissectiondescribeshowtogetstartedwithFMODforXBox,andalsosomeoftheXBoxspecificfeaturesavailable.
GettingStarted
Thissectiondescribeswhatyouwillneedtolink,andwhatyouneedtocalltogetupandrunningforXBoxspecifically.
FMODcomeswith2libraries.Oneisreleaseandoneisdebug.Themaindifferenceisthatthedebugversionoutputsdebuginformationtothedebugwindowofyourdebugger.ThisisusefulfortracingwhatfmodisdoingifsomethingeverwentwrongandyouwantedtoknowwhereFMODwasatthetime.
/api/lib/fmodxbox.lib-Thisisthelibraryyouwilllinktomostofthetime.Usethisforshipping./api/lib/fmodxboxD.lib-ThisisdebugversionofFMOD.Itisslower,andprintsoutalogofFMODprogressthroughthedebugwindow,alongwithenglishexplanationsonerrorsiftheyoccur.
MemoryManagement
OnFMODXBox,youmustcallFSOUND_SetMemorySystem,andsupplyapoolofmemorywithalength.
forexample.
#defineAUDIO_MEMLENGTH(4*1024*1024)char*mem=malloc(AUDIO_MEMLENGTH);FSOUND_SetMemorySystem(mem,AUDIO_MEMLENGTH,NULL,NULL,NULL);
then,
FSOUND_Init(....);etc.
Thereasoningforthisisforperformanceissues.FMODmustbeabletoaccesssampledatawithinitsownmemoryblocktoavoidaslowdownissueinDirectSoundXBox.
Thememoryprovidedmustbeenoughtostoreallsamplesandextrasystemmemoryoverheadfor
FMOD.
YoucancallFSOUND_GetMemoryStatstodeterminewhatFMODneedsasagameruns.YoucouldrunFMODandsupplyitwithanunrealisticallyhighmemorypool(say8megabytes),andthencallFSOUND_GetMemoryStatstodeterminethemaximumamountofRAMfmodneedstostoresoundsandforFMODsystemoverhead.
8mbMemoryLimitation.
Currentlyforhardwaresoundeffects,thereisan8mblimitforsoundeffects.ThisisduetotheXBoxDirectSoundarchitecture.
FromtheXDKDocumentation:"DirectSoundbuffersaremanagedinascattergatherentry(SGE)list.Thereisamaximumof2,047SGEs,whicheachpointtoa4-KBpage.Thismeansthatamaximumof8MBareavailableforallocatingorplayingDirectSoundbufferssimultaneously"
Futureversionsmayhavemultiple8mbpoolsifitisrequiredbydevelopers.
SpecialfeaturesforFMODXBox
FMODisfullyfunctionalontheXBox,includingwma,mp3andoggvorbisstreamingsupport,andwithsomeextrafunctionalitytotakeadvantageofthe5.1DolbyDigitalsurroundsoundsupport.
FSOUND_SetLevels.(Seefmodxbox.h).Thisfunctionallowsyouputpositionasoundinanyofthe5.1speakerarrayindolbydigital.Thiscanbeveryuseful,andyoucanevendocoolthingslike5.1musicwithit.Forexample,useFSBanktoproducea6channel,multichannelinterleavedstream,thenuseFSOUND_GetSubChanneltopositionall5channelsintotheirownspeaker.ie
channel=FSOUND_Stream_PlayEx(FSOUND_FREE,stream,0,TRUE);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,0),255,0,0,0,0,0);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,1),0,255,0,0,0,0);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,2),0,0,255,0,0,0);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,3),0,0,0,255,0,0);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,4),0,0,0,0,255,0);FSOUND_SetLevels(FSOUND_GetSubChannel(channel,5),0,0,0,0,0,255);FSOUND_SetPaused(channel,FALSE);
Amusicianwouldhavetoproduct6wavfilesforeachspeakerinthiscasebeforeitisinterleavedwithFSBankintoonestream.
Evenifyoudontgotothisextent,youcandosomethingsimplelikespatializenormalstereomusic.Normallymusicisjustplayedthroughthefront2channels,soyoucanimprovethiswithsomethinglike
FSOUND_SetLevels(musicchannel,255,255,255,128,128,255);
whichputsitinallspeakersandhalfvolumeintherears.
GAMECUBESPECIFICISSUES/FEATURES
Introduction
ThissectiondescribeshowtogetstartedwithFMODforGamecube
Compilingandlinking
Includefmod.hinyourproject,thisisfoundinapi/inc.
TolinkFMODtoyourproject,therearethefollowingfiles./api/lib/fmodgc.lib-LinktothisfileifyouareusingSNSystemscompiler./api/lib/fmodgcD.lib-Thisisthedebugversionoffmodgc.libandoutputsalogofFMOD'sprogressandanyerrormessages(inplainenglish)totheTTY./api/lib/fmodgc_cw.a-LinktothisfileifyouareusingtheMetrowerksCodewarriorcompiler./api/lib/fmodgc_cwD.a-Thisisthedebugversionoffmodgc_cw.libandoutputsalogofFMOD'sprogressandanyerrormessages(inplainenglish)totheTTY.
Runningtheexamples
Simplyloadtheir.dspfilesintoDevStudioandhitF7.
NOTE:Youwillneedtocopyallfilesinthemediadirectoryto$DVDROOT/fmod.Forexample:
copymedia\*.*c:\DolphinSDK1.0\dvddata\fmod
Conversiontools
dspadpcm.exe
FMODsupportstheNintendoDSPADPCMformatasoutputbytheNintendotool"dspadpcm.exe".FMODexpectsthefileextension".dsp"onthesefiles.Forclarityandconsistency,FMODreferstothisformatasFSOUND_GCADPCM.NOTE:dspadpcm.execanonlyconvertMONOsamples!
fsbank.exe
ThisisaWindowsappthatcreates.fsbfiles-FMOD'snativesamplebankformat.UseittocreatesamplebanksofeitherMONOorSTEREOADPCMsamplessuitableforplayingorstreamingusingtheGameCubeADPCMhardware.
PerformanceissuesandGamecubespecificFMODfeatures.
Hardwarevoicedropping
DuetoadesignissuewiththeGamecubehardware,theprocessorwilldrophardwarevoicesifit'sDSPchipgetsoverloaded.CallFSOUND_UpdateeachgamecycleandFMODwillautomaticallyreacquirevoicesthatgetdropped.FMOD'sprioritysystemhasbeenlinkedintothis,soitislikelytodroplowerprioritysoundsthathavetheirprioritysetwithFSOUND_Sample_Defaults.
DirectDVDstreamingUseFMOD'sstreamAPItoplaystreamsusingtheGameCube'sDVDaudiostreamingcapability.Whenopeningastream,simplyspecifyafilewitha.adpextensionandFMODwillstreamitusingtheGameCube'shardwarestraightfromtheDVDtotheAI,completelybypassingbothARAMandMRAM.
Gamecubeextras
Lookinfmodgc.hforGameCube-specificfunctionsrelatingtosuchthingsasDVDstatuscallbacks,AUXeffects,specifyingablockofARAMforFMODtouseandaccessingIPLsoundsettings.
PLAYSTATIONPORTABLESPECIFICISSUES/FEATURES
Introduction
ThissectiondescribeshowtogetstartedwithFMODforPSP,andalsosomeofthePSPspecificfeaturesavailable.
GettingStarted
Thissectiondescribeswhatyouwillneedtolink,andwhatyouneedtocalltogetupandrunningforPSPspecifically.
Whattolinkandloadingmodules.
AsimplePlayStationPortableapplicationneedsthefollowingstepstobetakentouseFMOD.
Link/api/lib/fmod.aintoyourproject.
FMODrequiresthefollowingsonylibrariesandmodulestobeusedaswelltogetaudiosupport.Theyarelinkedandloadedbytheuser.
Linklibrarylibsas.aintoyourproject.Linkweakimportstublibraryfilelibatrac3plus_stub_weak.aintoyourproject.Loadmodulefilesc_sascore.prxatruntime.
IfyourequireAT3playbacksupport,loadthefollowingsonyrun-timemodules.
Loadmodulefilelibatrac3plus.prxLoadmodulefilelibaudiocodec.prx
Notethatthedefaultpositionforsc_sascore.prxandaudiocodec.prxisat/usr/local/devkit/kmodulebutitmaydifferonyourmachine.libatrac3plus.prxcanbefoundnormallyat/usr/local/devkit/module.
Loadingthemodules.
Forexamplesonhowtoloadsonymodules,seetheFMODexamples.Loadsony'ssc_sascore.prx.IfAT3supportisdesiredalsoloadaudiocodec.prxandlibatrac3plus.prx.Thisisdonefromhost0ordisc0orwhateverfiledeviceyoustoreyourfileson.
eg./*loadmodule*/
staticSceUIDload_module(constchar*filename,SceKernelLMOption*lm_opt,SceKernelSMOption*sm_opt){
SceUIDmid;intret;
/*loadmodule*/mid=sceKernelLoadModule((char*)filename,0,lm_opt);if(mid<0){
printf("fatalerror:cannotload%s0x%08x\n",filename,mid);returnmid;
}
/*startmodule*/if((ret=sceKernelStartModule(mid,0,NULL,NULL,sm_opt))<0){
printf("fatalerror:cannotstart%s0x%08x\n",filename,ret);returnret;
}
returnmid;}
...
SceKernelLMOptionkMode;SceUIDsasMid;
sasMid=0;
kMode.size=sizeof(kMode);kMode.mpidtext=SCE_KERNEL_PRIMARY_KERNEL_PARTITION;kMode.mpiddata=SCE_KERNEL_PRIMARY_KERNEL_PARTITION;kMode.position=SCE_KERNEL_LMWO_POS_Low;kMode.access=SCE_KERNEL_LMWO_ACCESS_Noseek;
sasMid=load_module("host0:/usr/local/devkit/kmodule/sc_sascore.prx",&kMode;,NULL);if(sasMid<0){
printf("fatalerror:loadSASmodule\n");return-1;
}
InitializeFMOD.
CallFSOUND_InitandproceedprogrammingwiththeFMODAPIasyouwouldonanyotherplatform.
Release/Debug.
fmod.aandfmodD.ahavebeensupplied.fmodDisdebug,andslower,andprintsoutalogofFMODprogress,alongwithenglishexplanationsonerrorsiftheyoccur.
Stripped/Nonstripped.
Youmaynoticethereisalsofmod_small.aandfmodD_small.a.Theseversionsuselessramthanthefullversions,butonlybecausetheyhavefeaturesremoved.Thesefeaturesareremovedinthe_smallversions.
.MOD,.S3M,.XM,.IT,.WAVand.VAGsupport.Notefor.VAGsupport,thisistalkingaboutthefileformat,soFSB"VAG"supportstillexists.
Normalstreaming(withFSBfiles),3dsoundandsamplemanagementremains.
Formatssupported-hardware/software
FMODPSPsupports.VAGand.WAV,althoughFSBisthehighlyrecommendedformat,seethenextsectiononFSBfilesformoreinformationaboutthis..VAGismixedinhardwareand.WAVismixedinsoftware..WAVmixinginsoftwareusesprocessingtime.Atthemoment,dependingonqualitysettings,FMODcanonlymixaround12-20channelsofPCMdataatonce.
.MOD.S3M.XMand.ITmusicformatsaresupported,andaremixedinsoftware.
Softwaremixingspeed.
UsingFSOUND_Mixerwithoneofthefollowingcontrolsthenumberofchannelsavailableinsoftware.Rememberhardwaremixingispreferredsoyoumaynothavetoencounterthisissue.
-FSOUND_MIXER_AUTODETECT(noninterpolatingstereooutput-fast)-FSOUND_MIXER_QUALITY_AUTODETECT(highqualityinterpolatingstereooutput-slowest)-FSOUND_MIXER_MONO(noninterpolatingmonooutput-fastest)-FSOUND_MIXER_QUALITY_MONO(highqualityinterpolatingmonooutput-slow)
FSOUND_InitonthePSPaccepts24000or48000.24000islowerqualitybutincreasesthepossiblechannelcountsignificantly.FMODwillnotsupportotheroutputrates!Donottryandusethem!(erroneousratesjustcasetheoutputratetogoto48000)
TheFSBformat-Therecommendedformatforsamplesandstreams.
Although.WAVand.VAGformatsaresupported,forloadingspeed,andstreamingspeeditishighlyrecommendedtouse.FSBfiles.FSBishardwareaccelerated,WAVisnot.
ThesearecompiledbatchesofnativePlayStationPortablesounddata,arrangedsowhenloaded,itisonereadtoloadtheheadersfirst,thentherawvagdata(whichiscontinuous),whichisstreamedintoRAM.ThisisthefastestwaytoloadsounddatafromUMD.
Memorymanagment.
Ifsodesired,theusercanlimitfmod'sRAMusagetoasingleblockofpre-allocatedmemory.IfyouwanttolimitFMOD'smemoryusageinthisway,simplycallFSOUND_SetMemorySystem.
ie.FSOUND_SetMemorySystem(NULL,128*1024,NULL,NULL,NULL);
ThiswillforceFMODtoonlyuse128kbofIOPmemory.NotethatsettingtoolowavaluewillcauseFMODtofailinitsinternalsystemmemoryallocationsandFSOUND_Initcouldevenfail.
StreamingATRACmusic
FMODsupportstheplaybackof.at3files.Alltheuserhastodoisplayitfromdisc0,oriftheylike,theycanloadthefileintomemory,thenuseFSOUND_OPENMEMORYtostreamthefilefrommemory.
NotethattheusercanuseFSOUND_Stream_SetBufferSizetoadjusttheamountofmemoryFMODuseswhenstreamingafile,andifitisfrommemory,thenitwillrequireonlyaverysmallstreambuffer.IfstreamingfromUMD,thebuffersizeneedtobealotlarger.Itshouldbethenumberofmillisecondsbetweeneachread,whichcouldbeanywhereupto5000ms.
Batteryconsiderations
Note,thateventhoughFMODsupportsstreamingmultiplestreamsfromUMDatonce,thisisnotrecommended.OnthePlayStationPortableseekingshouldbeavoidedatalltimestopreservemovementoftheumdreadheadandthereforebatterylife.Thisalsogoesfordatastreaming.Donotstreamdataandmusicatthesametimeifthereisseekinginvolved.Continuousseekingwilldegradebatterylifebecauseithastomechanicallymovetheseekhead.
Itmaybepreferabletoplay'inmemory'musicsuchassequencedformatslike.MOD/.S3M/.XMor.IT.AnotherideaistoloadanAT3fileintomemoryfirst,thenstreamthefilefrommemoryashasbeenmentionedpreviouslyinthisdocumentation.Asatraccanstoreaminuteofaudiopermbat128kbsstereo,thenyouwouldneed3mbofmemoryfor3minutesofmusic.
The"15-20%cpuproblem"
Someusersmaynoticeaframerateimpactwhenimplementingaudio.ThisisaknownissuewithSony,anditiscommonknowledgeamongPSPdevelopersthatsimplyplayingonesoundin'hardware'willcauseupto15-20%ofthePSP'sCPUtobeusedbyaudio.
TheproblemliesinSony'slibwave,andthereisnothingthatcanbedoneaboutitfromFMOD'ssideuntiltheissueisresolvedwithsony.FMODoffersasoftwaremixerthatcanbypassSony'sVAGroutines,butitwillstillrequirelibwaveaccesswhichistheproblem.
FSOUNDAPIReferenceFSOUNDApi.Usethistoplaysounds,streams,cd'setc
Functions,Structures,Defines,Enums
-Functions
FSOUND_3D_GetAttributesFSOUND_3D_GetMinMaxDistanceFSOUND_3D_Listener_GetAttributesFSOUND_3D_Listener_SetAttributesFSOUND_3D_Listener_SetCurrentFSOUND_3D_SetAttributesFSOUND_3D_SetDistanceFactorFSOUND_3D_SetDopplerFactorFSOUND_3D_SetMinMaxDistanceFSOUND_3D_SetRolloffFactorFSOUND_ALLOCCALLBACKFSOUND_CD_GetNumTracksFSOUND_CD_GetPausedFSOUND_CD_GetTrackFSOUND_CD_GetTrackLengthFSOUND_CD_GetTrackTimeFSOUND_CD_GetVolumeFSOUND_CD_OpenTrayFSOUND_CD_PlayFSOUND_CD_SetPausedFSOUND_CD_SetPlayModeFSOUND_CD_SetTrackTimeFSOUND_CD_SetVolumeFSOUND_CD_StopFSOUND_CloseFSOUND_CLOSECALLBACKFSOUND_DSP_ClearMixBufferFSOUND_DSP_CreateFSOUND_DSP_FreeFSOUND_DSP_GetActiveFSOUND_DSP_GetBufferLengthFSOUND_DSP_GetBufferLengthTotalFSOUND_DSP_GetClearUnitFSOUND_DSP_GetClipAndCopyUnitFSOUND_DSP_GetFFTUnit
FSOUND_DSP_GetMusicUnitFSOUND_DSP_GetPriorityFSOUND_DSP_GetSFXUnitFSOUND_DSP_GetSpectrumFSOUND_DSP_MixBuffersFSOUND_DSP_SetActiveFSOUND_DSP_SetPriorityFSOUND_DSPCALLBACKFSOUND_File_SetCallbacksFSOUND_FREECALLBACKFSOUND_FX_DisableFSOUND_FX_EnableFSOUND_FX_SetChorusFSOUND_FX_SetCompressorFSOUND_FX_SetDistortionFSOUND_FX_SetEchoFSOUND_FX_SetFlangerFSOUND_FX_SetGargleFSOUND_FX_SetI3DL2ReverbFSOUND_FX_SetParamEQFSOUND_FX_SetWavesReverbFSOUND_GetAmplitudeFSOUND_GetChannelsPlayingFSOUND_GetCPUUsageFSOUND_GetCurrentLevelsFSOUND_GetCurrentPositionFSOUND_GetCurrentSampleFSOUND_GetDriverFSOUND_GetDriverCapsFSOUND_GetDriverNameFSOUND_GetErrorFSOUND_GetFreeHWRamFSOUND_GetFrequencyFSOUND_GetLoopModeFSOUND_GetMaxChannelsFSOUND_GetMaxSamplesFSOUND_GetMemoryStatsFSOUND_GetMixerFSOUND_GetMute
FSOUND_GetNumDriversFSOUND_GetNumHWChannelsFSOUND_GetNumSubChannelsFSOUND_GetOutputFSOUND_GetOutputHandleFSOUND_GetOutputRateFSOUND_GetPanFSOUND_GetPausedFSOUND_GetPriorityFSOUND_GetReservedFSOUND_GetSFXMasterVolumeFSOUND_GetSpeakerModeFSOUND_GetSubChannelFSOUND_GetSurroundFSOUND_GetVersionFSOUND_GetVolumeFSOUND_InitFSOUND_IOP_AllocFSOUND_IOP_FreeFSOUND_IsPlayingFSOUND_METADATACALLBACKFSOUND_OPENCALLBACKFSOUND_PlaySoundFSOUND_PlaySoundExFSOUND_READCALLBACKFSOUND_REALLOCCALLBACKFSOUND_Record_GetDriverFSOUND_Record_GetDriverNameFSOUND_Record_GetNumDriversFSOUND_Record_GetPositionFSOUND_Record_SetDriverFSOUND_Record_StartSampleFSOUND_Record_StopFSOUND_Reverb_GetChannelPropertiesFSOUND_Reverb_GetPropertiesFSOUND_Reverb_SetChannelPropertiesFSOUND_Reverb_SetPropertiesFSOUND_Sample_AllocFSOUND_Sample_Free
FSOUND_Sample_GetFSOUND_Sample_GetDefaultsFSOUND_Sample_GetDefaultsExFSOUND_Sample_GetLengthFSOUND_Sample_GetLoopPointsFSOUND_Sample_GetMinMaxDistanceFSOUND_Sample_GetModeFSOUND_Sample_GetNameFSOUND_Sample_LoadFSOUND_Sample_LockFSOUND_Sample_SetDefaultsFSOUND_Sample_SetDefaultsExFSOUND_Sample_SetLoopPointsFSOUND_Sample_SetMaxPlaybacksFSOUND_Sample_SetMinMaxDistanceFSOUND_Sample_SetModeFSOUND_Sample_UnlockFSOUND_Sample_UploadFSOUND_SEEKCALLBACKFSOUND_SendDataFSOUND_SetBufferSizeFSOUND_SetCurrentPositionFSOUND_SetDiskBusyFSOUND_SetDriverFSOUND_SetFrequencyFSOUND_SetHWNDFSOUND_SetLevelsFSOUND_SetLoopModeFSOUND_SetMaxHardwareChannelsFSOUND_SetMemorySystemFSOUND_SetMinHardwareChannelsFSOUND_SetMixerFSOUND_SetMuteFSOUND_SetOutputFSOUND_SetPanFSOUND_SetPanSeperationFSOUND_SetPausedFSOUND_SetPriorityFSOUND_SetReserved
FSOUND_SetSFXMasterVolumeFSOUND_SetSpeakerModeFSOUND_SetSurroundFSOUND_SetVolumeFSOUND_SetVolumeAbsoluteFSOUND_SPU2_AllocFSOUND_SPU2_FreeFSOUND_SPU2_GetRawAddressFSOUND_StopSoundFSOUND_Stream_AddSyncPointFSOUND_Stream_CloseFSOUND_Stream_CreateFSOUND_Stream_CreateDSPFSOUND_Stream_DeleteSyncPointFSOUND_Stream_FindTagFieldFSOUND_Stream_GetLengthFSOUND_Stream_GetLengthMsFSOUND_Stream_GetModeFSOUND_Stream_GetNumSubStreamsFSOUND_Stream_GetNumSyncPointsFSOUND_Stream_GetNumTagFieldsFSOUND_Stream_GetOpenStateFSOUND_Stream_GetPositionFSOUND_Stream_GetSampleFSOUND_Stream_GetSyncPointFSOUND_Stream_GetSyncPointInfoFSOUND_Stream_GetTagFieldFSOUND_Stream_GetTimeFSOUND_Stream_Net_GetBufferPropertiesFSOUND_Stream_Net_GetLastServerStatusFSOUND_Stream_Net_GetStatusFSOUND_Stream_Net_SetBufferPropertiesFSOUND_Stream_Net_SetMetadataCallbackFSOUND_Stream_Net_SetProxyFSOUND_Stream_Net_SetTimeoutFSOUND_Stream_OpenFSOUND_Stream_OpenFromHandleFSOUND_Stream_PlayFSOUND_Stream_PlayEx
FSOUND_Stream_SetBufferSizeFSOUND_Stream_SetEndCallbackFSOUND_Stream_SetLoopCountFSOUND_Stream_SetLoopPointsFSOUND_Stream_SetModeFSOUND_Stream_SetPositionFSOUND_Stream_SetSubStreamFSOUND_Stream_SetSubStreamSentenceFSOUND_Stream_SetSyncCallbackFSOUND_Stream_SetTimeFSOUND_Stream_StopFSOUND_STREAMCALLBACKFSOUND_TELLCALLBACKFSOUND_UpdatesceSifAddCmdHandler
-Structures
FSOUND_REVERB_CHANNELPROPERTIESFSOUND_REVERB_PROPERTIESFSOUND_TOC_TAG
-Defines
FSOUND_CAPSFSOUND_CDPLAYMODESFSOUND_DSP_PRIORITIESFSOUND_INIT_FLAGSFSOUND_MISC_VALUESFSOUND_MODESFSOUND_REVERB_CHANNELFLAGSFSOUND_REVERB_FLAGSFSOUND_REVERB_PRESETSFSOUND_STATUS_FLAGS
-Enums
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
FMOD_ERRORSFMUSIC_TYPESFSOUND_FX_MODESFSOUND_MIXERTYPESFSOUND_OUTPUTTYPESFSOUND_SPEAKERMODESFSOUND_STREAM_NET_STATUSFSOUND_TAGFIELD_TYPE
[APIfunction]
FSOUND_DSPCALLBACK
CallbackdefinitionforDSPunits.
void*F_CALLBACKAPIFSOUND_DSPCALLBACK(void*originalbuffer,void*newbuffer,intlength,void*userdata);
Parameters
originalbuffer
ThisisthepointertotheoriginalbufferpassedintothefirstDSPunit.Thisisusefulifyouwanttheclean,originaldata,andyouhavebeenreturningnewmodifiedbuffersfortheDSPchaintouse.
newbufferThisisapointertothepreviousDSPbufferthat*it*returned.ThisbufferthatthisDSPreturnswillbepassedintothenewbufferparameteroftheNEXTunitintheDSPchain.
length ThelengthofthebufferprovidedinSAMPLES,notbytes.param AuserdatavaluespecifiedinFSOUND_DSP_Create.
ReturnValue
PointertoasamplebufferforthenextDSPunittouse.
Remarks
Youmustreturnthebufferyouworkon,oritwillnotbefedthroughtothenextDSPunit,andeventuallythethesystemclipandcopyunit,whichmakesthesoundaudible.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_Stream_CreateDSP
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_STREAMCALLBACK
Callbackusedwithuserstreams.
signedcharF_CALLBACKAPIFSOUND_STREAMCALLBACK(FSOUND_STREAM*stream,void*buff,intlen,void*userdata);
Parameters
stream Pointertothestreaminquestion.
buff
fromFSOUND_Stream_Create-PointertothestreamdatabuffertowritetofromFSOUND_Stream_SetEndCallback-NULLfromFSOUND_Stream_SetSyncCallback-Pointertoastring
lenfromFSOUND_Stream_Create-LengthofbufferspecifiedinBYTES.fromFSOUND_Stream_SetEndCallback-0fromFSOUND_Stream_SetSyncCallback-0
param AuserdatavaluespecifiedfromFSOUND_Stream_Create,
ReturnValue
IfcreatedbyFSOUND_Stream_Create-Toallowthestreamtocontinue,TRUEisreturned.Tostopthestream,FALSEisreturned.ThereturnvalueisignoredifcreatedbyFSOUND_Stream_SetEndCallbackorFSOUND_Stream_SetSyncCallback--------------PlayStation2IMPORTANT!Forusercreatedstreamsonly.Theaddressfor'buff'isanIOPbasedaddress,youcannotdirectlyaccessit.YouhavetouseFSOUND_SendDatatoDMAyourdatafromtheEEtotheIOP.ifFSOUND_SendDataisNOTcalledfromthiscallbacktheIOPwillhangbecauseitiswaitingforthiscommandtobeexecutedbeforeitcanunlockits
bufferandsendittotheSPU.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SendData,FSOUND_Stream_Create,FSOUND_Stream_SetEndCallback,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_ALLOCCALLBACK
Callbacktoallocateablockofmemory.
void*F_CALLBACKAPIFSOUND_ALLOCCALLBACK(unsignedintsize);
Parameters
size Sizeinbytesofthememoryblocktobeallocatedandreturned.
ReturnValue
Onsuccess,apointertothenewlyallocatedblockofmemoryisreturned.Onfailure,NULLisreturned.
Remarks
Returninganalignedpointer,of16bytealignmentisrecommendedforspeedpurposes.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_FREECALLBACK,FSOUND_GetMemoryStats,FSOUND_REALLOCCALLBACK,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_REALLOCCALLBACK
Callbacktore-allocateablockofmemorytoadifferentsize.
void*F_CALLBACKAPIFSOUND_REALLOCCALLBACK(void*ptr,unsignedintsize);
Parameters
ptr Pointertoablockofmemorytoberesized.IfthisisNULLthenanewblockofmemoryissimplyallocated.
size Sizeofthememorytobereallocated.Theoriginalmemorymustbepreserved.
ReturnValue
Onsuccess,apointertothenewlyre-allocatedblockofmemoryisreturned.Onfailure,NULLisreturned.
Remarks
Returninganalignedpointer,of16bytealignmentisrecommendedforspeedpurposes.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_ALLOCCALLBACK,FSOUND_FREECALLBACK,FSOUND_GetMemoryStats,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FREECALLBACK
Callbacktofreeablockofmemory.
voidF_CALLBACKAPIFSOUND_FREECALLBACK(void*ptr);
Parameters
ptr Pointertoapre-existingblockofmemorytobefreed.
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_ALLOCCALLBACK,FSOUND_GetMemoryStats,FSOUND_REALLOCCALLBACK,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_OPENCALLBACK
Callbackforopeningafile.
void*F_CALLBACKAPIFSOUND_OPENCALLBACK(constchar*name);
Parameters
name Thisisthefilename.Youmaytreatthisasyoulike.
ReturnValue
Onsuccess,returnanon0number.Onfailure,return0.
Remarks
YouMUSTopenthefileandreturnahandleforfuturefilefunctioncalls.Castthehandletoanunsignedintwhenreturningit,theninothercallbacks,castitbackfromtheunsignedintbacktoyourownhandletype.Return0signifiesanopenerror.Thisisveryimportant.Itisagoodideaifyouareusingmemorybasedfileroutines,tostorethesizeofthefilehere,asitisneededtosupportSEEK_ENDintheseekfunction,describedbelow.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_CLOSECALLBACK,FSOUND_File_SetCallbacks,FSOUND_READCALLBACK,FSOUND_SEEKCALLBACK,FSOUND_TELLCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CLOSECALLBACK
Calbackforclosingafile.
voidF_CALLBACKAPIFSOUND_CLOSECALLBACK(void*handle);
Parameters
handle Thisisthehandleyoureturnedfromtheopencallbacktouseforyourownfileroutines.
ReturnValue
void
Remarks
Closeyourfilehandleanddoanycleanuphere.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_File_SetCallbacks,FSOUND_OPENCALLBACK,FSOUND_READCALLBACK,FSOUND_SEEKCALLBACK,FSOUND_TELLCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_METADATACALLBACK
Callbacktoreceiveanewpieceofmetadatafromaninternetstream
signedcharF_CALLBACKAPIFSOUND_METADATACALLBACK(char*name,char*value,void*userdata);
Parameters
name Pointertothenameofthepieceofmetadata(null-terminatedASCIIstring)
value Pointertothemetadata(null-terminatedASCIIstring)
userdata UserdatathatwasspecifiedinFSOUND_Stream_Net_SetMetadataCallback
ReturnValue
Currentlyignored
Remarks
___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Net_SetMetadataCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_READCALLBACK
Callbackforreadingfromafile.
intF_CALLBACKAPIFSOUND_READCALLBACK(void*buffer,intsize,void*handle);
Parameters
buffer Youmustreadandcopyyourfiledataintothispointer.length Youmustreadthismanybytesfromyourfiledata.
handle Thisisthehandleyoureturnedfromtheopencallbacktouseforyourownfileroutines.
ReturnValue
Returnthenumberofbytesthatwere*successfully*readhere.Normallythisisjustthesameas'length',butifyouareattheendofthefile,youwillprobablyonlyreadsuccessfullythenumberofbytesuptotheendofthefile(ifyoutriedtoreadmorethanthat).
Remarks
Youmustread'length'numberofbytesintothe'buffer'provided,thenifyouneedto,incrementyourfilepointer.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_CLOSECALLBACK,FSOUND_File_SetCallbacks,FSOUND_OPENCALLBACK,FSOUND_SEEKCALLBACK,
FSOUND_TELLCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SEEKCALLBACK
Callbackforseekingwithinafile.
intF_CALLBACKAPIFSOUND_SEEKCALLBACK(void*handle,intpos,signedcharmode);
Parameters
handle Thisisthehandleyoureturnedfromtheopencallbacktouseforyourownfileroutines.pos Thisisthepositionoroffsettoseekbydependingonthemode.
mode Thisistheseekcommand.ItusesandiscompatiblewithSEEK_SET,SEEK_CURandSEEK_ENDfromstdio.h,sousethem.
ReturnValue
Ifsuccessful,theseekcallbackreturns0.Otherwise,itreturnsanonzerovalue.Ondevicesincapableofseeking,thereturnvalueisundefined.
Remarks
SEEK_ENDmustrepositionyourfilepointerattheENDofthefile,plusanynegativeoffset.Todothisyoumustknowthesizeofthefile,itissuggestedyoufindandstorethisintheopenfunction.RememberthataSEEK_ENDpositionvalueof-1isthelastbyte.Youmustresetyourfilepointerbasedonthecommandsgivenabove.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_CLOSECALLBACK,FSOUND_File_SetCallbacks,FSOUND_OPENCALLBACK,FSOUND_READCALLBACK,FSOUND_TELLCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_TELLCALLBACK
Callbackforreturningthecurrentfilepointerpositionwithinthefile.
intF_CALLBACKAPIFSOUND_TELLCALLBACK(void*handle);
Parameters
handle Thisisthehandleyoureturnedfromtheopencallbacktouseforyourownfileroutines.
ReturnValue
Onsuccess,theoffsetwithinthefileinbytesisreturned.Onfailure,-1isreturned.
Remarks
Youmustreturntheoffsetfromthebaseofthefile,usingthisroutine.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_CLOSECALLBACK,FSOUND_File_SetCallbacks,FSOUND_OPENCALLBACK,FSOUND_READCALLBACK,FSOUND_SEEKCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Close
ShutsdowntheWHOLEFMODSoundSystem.
voidF_APIFSOUND_Close();
ReturnValue
void
Remarks
Thisalsoclosesdownthesamplemanagementsystem,freeingallMANAGEDsamplesloaded(unlesstheywereallocatedwiththeFSOUND_UNMANAGEDflag).Streamsarenotfreed.Youmustclosethemyourself.CDTracksarestopped.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_CD_GetVolume,FSOUND_CD_SetVolume,FSOUND_Init,FSOUND_Sample_Alloc,FSOUND_Sample_Get,FSOUND_Sample_Load,FSOUND_SetBufferSize,FSOUND_SetDriver,FSOUND_SetHWND,FSOUND_SetMaxHardwareChannels,FSOUND_SetMemorySystem,FSOUND_SetMinHardwareChannels,FSOUND_SetMixer,FSOUND_SetOutput,FSOUND_SetSpeakerMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_File_SetCallbacks
SpecifyusercallbacksforFMOD'sinternalfilemanipulationfunctions.IfANYoftheseparametersareNULL,thenFMODwillswitchbacktoitsownfileroutines.Youcanreplacethiswithmemoryroutines(ienamecanbecasttoamemoryaddressforexample,thenopensetsupahandlebasedonthisinformation),oralternatefileroutines,ieaWADfilereader.
DLL_APIvoidF_APIFSOUND_File_SetCallbacks(FSOUND_OPENCALLBACKuseropen,FSOUND_CLOSECALLBACKuserclose,FSOUND_READCALLBACKuserread,FSOUND_SEEKCALLBACKuserseek,FSOUND_TELLCALLBACKusertell);
Parameters
OpenCallback Callbackforopeningafile.CloseCallback Callbackforclosingafile.ReadCallback Callbackforreadingfromafile.SeekCallback Callbackforseekingwithinafile..
TellCallback Callbackforreturningtheoffsetfromthebaseoftheopenfileinbytes.
ReturnValue
void
Remarks
MemoryloaderFMODfunctionsarenotaffected,suchasFMUSIC_LoadSongMemoryetc.WARNING:Thisfunctionisdangerousinthewronghands.Youmustreturnthe
rightvalues,andeachcommandmustworkproperly,orFMODwillnotfunction,oritmayevencrashifyougiveitinvaliddata.YoumustsupportSEEK_SET,SEEK_CURandSEEK_ENDproperly,orFMODwillnotworkproperly.SeestandardI/Ohelpfilesonhowtheseworkunderfseek().ReadthedocumentationinREMARKSanddoexactlywhatitsays.Seethe"simple"exampleforhowitisusedproperly.TheMIDIloaderdoesnotsupportuserfilecallbacks.ForWADtypedatastructureswithembeddedMIDIfilesFMUSIC_LoadSongMemorywillhavetobeused.--------------PlayStation2NOTE!ThisfunctiontakesIOPfunctionpointers,notEEpointers!ItisforcustomIOPfilesystemsnotEEbasedones.ThisfunctioncanonlybecalledafterFSOUND_InitonPlayStation2,notbefore.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,PlayStation2,XBox,GameCube
SeeAlso
FMUSIC_LoadSong,FSOUND_CLOSECALLBACK,FSOUND_Init,FSOUND_OPENCALLBACK,FSOUND_READCALLBACK,FSOUND_SEEKCALLBACK,FSOUND_TELLCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Init
InitializestheFMODSoundSystem.
signedcharF_APIFSOUND_Init(intmixrate,intmaxsoftwarechannels,unsignedintflags);
Parameters
mixrate
Outputrateinhzbetween4000and65535.AnythingoutsidethiswillcausethefunctiontofailandreturnFALSE.PS2Note.Onlyratesof24000and48000aresupported.PSPNote.Onlyratesof22050and44100aresupported.SmartPhoneNote.Use22050ortheoperatingsystemmaycrashoutsideofthecontroloffmod.
maxchannels
MaximumnumberofSOFTWAREchannelsavailable.ThenumberofHARDWAREchannelsisautodetected.Thetotalnumberofchannelsavailable(hardwareandsoftware)afterinitializationcanbefoundwithFSOUND_GetMaxChannels.Havingalargenumberofmaxchannelsdoesnotadverselyaffectcpuusage,butitmeansithasthePOTENTIALtomixalargenumberofchannels,whichcanhaveanadverseeffectoncpuusage.1024isthehighestnumberthatcanbeset.Anythinghigherwillreturnanerror.
flags SeeFSOUND_INIT_FLAGS.Controlssomeglobalorinitializationtimeaspectsofplayback.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Youdonothavecontroloverhowmanyhardwarechannelsareavailabletoyou.Inalotofcasesitmaybe0(thesoundcarddoesnothavetheabilitytosupplyhardwarechannels).ThisiswhyitisusuallyagoodideatosupplyFSOUND_Initwithagoodnumberofsoftwarechannelstofallbackonto,forexample32.Hardwarechannelsare3Dhardwarechannelsonly.Thereisnobenefitinsupportinghardwarefor2dplaybackofsoundeffects.WithtodaysmachinesandFMOD'ssuperiormixingroutines,FMOD'ssoftwareenginecansometimesbefasterthanthedriver'shardwaresupport!___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_File_SetCallbacks,FSOUND_GetCurrentLevels,FSOUND_GetDriverCaps,FSOUND_GetFreeHWRam,FSOUND_GetMaxChannels,FSOUND_GetMemoryStats,FSOUND_GetOutputHandle,FSOUND_GetOutputRate,FSOUND_Init,FSOUND_INIT_FLAGS,FSOUND_PlaySound,FSOUND_PlaySoundEx,FSOUND_SetBufferSize,FSOUND_SetDriver,FSOUND_SetHWND,FSOUND_SetMaxHardwareChannels,FSOUND_SetMemorySystem,FSOUND_SetMinHardwareChannels,FSOUND_SetMixer,FSOUND_SetOutput,FSOUND_SetSpeakerMode,FSOUND_SPU2_Alloc,FSOUND_Stream_Play,sceSifAddCmdHandler
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetBufferSize
SetstheFMODinternalmixingbuffersize.Itisconfigurablebecauselowbuffersizesuselessmemory,butaremoreinstable.Moreimportantly,increasingbuffersizewillincreasesoundoutputstability,butontheotherhandincreaseslatency,andtosomeextent,CPUusage.*FMODchoosesthemostoptimalsizebydefaultforbeststability,dependingontheoutputtype-andifthedriversareemulatedornot(NT).Itisnotrecommendedchangingthisvalueunlessyoureallyneedto.YoumaygetworseperformancethanthedefaultsettingschosenbyFMOD.
signedcharF_APIFSOUND_SetBufferSize(intlen_ms);
Parameters
len_ms Thebuffersizeinmilliseconds.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,(ieifFMODisalreadyactive)FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.---------Thebuffersizesetingdefaultsto50msifitisnotcalledforDSOUND.Itdefaultsto200msforWindowsMultimediawave-outorforemulatedDirectSounddrivers(suchasNTdrivers).WhentheoutputisFSOUND_OUTPUT_ASIOthebuffersizeisignored.The
buffersizeshouldbeconfiguredusingtheASIOdriverwhichcanbedonewiththesuppliedasioconfig.exeintheFMODSDK.---------Buffersizeslowerthan50areclampedat50.BuffersizesarealsoroundedDOWNtothenearestmultipleof25.ThisisbecauseFMODmixesinblocksof25ms.Duetothisbuffersizecommandlatencyonsoftwarechannelswillbebetween25and50msonaverage(37.5ms)whenthebuffersizeissetto50.---------Macintosh,PlayStation2andGameCubedonotsupportthisastheyalreadyachieveminimallatencyandareforcedto25ms.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,XBox
SeeAlso
FSOUND_Close,FSOUND_DSP_GetBufferLengthTotal,FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetDriver
Selectsasoundcarddriver.Itisusedwhenanoutputmodehasenumeratedmorethanoneoutputdevice,andyouneedtoselectbetweenthem.
signedcharF_APIFSOUND_SetDriver(intdriver);
Parameters
driverno
Drivernumbertoselect.0willselecttheDEFAULTsounddriver.<0willselectanINVALIDdriverwhichwillcasetheDEVICEtobesettoanull(nosound)driver.>0SelectsothervaliddriversthatcanbelistedwithFSOUND_GetDriverName.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,(ieifFMODisalreadyactive)FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_GetDriver,FSOUND_GetDriverName,FSOUND_GetNumDrivers,FSOUND_Init,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetHWND
Thisisanoptionalfunctiontosetthewindowhandleoftheapplicationyouarewriting,soDirectsoundcantellifitisinfocusornot.
signedcharF_APIFSOUND_SetHWND(void*hwnd);
Parameters
hwnd PointertoaHWNDwindowshandleofyourapplication.NULLmeansitwillpicktheforegroundapplicationwindow.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.---------FMODusesGetForegroundWindowifthisfunctionisnotcalled.___________________Supportedonthefollowingplatforms:Win32,WinCE
SeeAlso
FSOUND_Close,FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetMaxHardwareChannels
Thissetsthemaximumallocatablechannelsonahardwarecard.FMODautomaticallydetectsandallocatesthemaximumnumberof3dhardwarechannels,socallingthiswilllimitthatnumberifitbecomestoomuch.
DLL_APIsignedcharF_APIFSOUND_SetMaxHardwareChannels(intmax);
Parameters
max Themaximumnumberofhardwarechannelstoallocate,evenifthesoundcardsupportsmore.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.---------ThisfunctionhasnothingtodowithFSOUND_SetMinHardwareChannels,inthatthisisnotafunctionthatforcesFMODintosoftwaremixingifacardhasacertainnumberofchannels.Thisfunctiononlysetsalimitonhardwarechannels,soifyourcardhas96hardwarechannels,andyousetFSOUND_SetMaxHardwareChannels(10),thenyouwillonlyhave10hardwarechannelstouse.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_Init,FSOUND_SetMaxHardwareChannels,FSOUND_SetMinHardwareChannels
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetMemorySystem
SpecifiesamethodforFMODtoallocatememory,eitherthroughcallbacksoritsowninternalmemorymanagement.YoucanalsosupplyapoolofmemoryforFMODtoworkwithanditwilldosowithnoextracallstomallocorfree.ThisisusefulforsystemsthatwantFMODtousetheirownmemorymanagement,orfixedmemorydevicessuchasPocketPC,XBox,PS2andGameCubethatdontwantanyallocationsoccuringoutoftheircontrolcausingfragmentationorunpredictableoverflowsinatightmemoryspace.Seeremarksformoreusefulinformation.
DLL_APIsignedcharF_APIFSOUND_SetMemorySystem(void*poolmem,intpoollen,FSOUND_ALLOCCALLBACKuseralloc,FSOUND_REALLOCCALLBACKuserrealloc,FSOUND_FREECALLBACKuserfree);
Parameters
poolIfyouwantafixedblockofmemoryforFMODtouse,passitinhere.Specifythelengthinpoollen.SpecifyingNULLdoesntuseinternalmanagementanditreliesoncallbacks.
poollenLengthinbytesofthepoolofmemoryforFMODtousespecifiedin.Specifying0turnsoffinternalmemorymanagementandreliespurelyoncallbacks.Lengthmustbeamultipleof512.
useralloc OnlysupportedifpoolisNULL.OtherwiseitoverridestheFMODinternalcallstoalloc.Compatiblewithansimalloc().
userrealloc OnlysupportedifpoolisNULL.OtherwiseitoverridestheFMODinternalcallstorealloc.Compatiblewithansirealloc().
userfree OnlysupportedifpoolisNULL.OtherwiseitoverridestheFMODinternalcallstofree.Compatiblewithansifree().
ReturnValue
void
Remarks
FMODhasbeentestedtostayinalimitandfailgracefullyifthefixedpoolsizeisnotlargeenoughwithFMOD_ERR_MEMORYerrors.FMODonlydoesallocationwhencreatingstreams,musicorsamplesandtheFSOUND_Initstage.Itneverallocatesordeallocatesmemoryduringthecourseofruntimeprocessing.TofindouttherequiredfixedsizetheusercancallFSOUND_GetMemoryStatswithalargerthannescessarypoolsize(ornopool),andfindoutthemaximumramusageatanyonetimewithinFMOD.-------------------------------------FMODbehavesdifferentlybasedonwhatyoupassintothisfunctionin3differentcombinations.Herearetheexamples.NULL,0,NULL,NULL,NULL:FallsbackpurelytoansiCmalloc,reallocandfree.NULL,0,myalloc,myrealloc,myfree:Callsusersuppliedcallbackseverytimefmoddoesamemoryallocationordeallocation.ptr,len,NULL,NULL,NULL:Uses"ptr"andmanagesmemoryinternally.NOextramallocsorfreesareperformedfromthispoint.-------------------------------------Callbacksandmemorypoolscannotbecombined,asifapoolisspecifiedFMOD,manipulatesthepoolofmemoryinternallywithitsownallocateandfreescheme.ThememorymanagementalgorithmtoworkwithinafixedsizeoframisextremelyefficientandfasterthanthestandardCmallocorfree.-------------------------------------OnXBoxyouMUSTspecifyapointerandlength.Thememoryprovidedmustbeenoughtostoreallsampledata.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_ALLOCCALLBACK,FSOUND_Close,
FSOUND_FREECALLBACK,FSOUND_GetFreeHWRam,FSOUND_GetMemoryStats,FSOUND_Init,FSOUND_IOP_Alloc,FSOUND_REALLOCCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetMinHardwareChannels
ThissetstheminimumallowablehardwarechannelsbeforeFMODdropsbackto100percentsoftware.Thisishelpfulforminimumspeccards,andnothavingtoguesshowmanyhardwarechannelstheymighthave.ThiswayyoucanguaranteeandassumeacertainnumberofchannelsforyourapplicationandplacethemallinFSOUND_HW3Dwithoutfearoftheplaysoundfailingbecauseitrunsoutofchannelsonalowspeccard.
DLL_APIsignedcharF_APIFSOUND_SetMinHardwareChannels(intmin);
Parameters
min Theminimumnumberofhardwarechannelsallowableonacardbeforeitusesthesoftwareengine1004562604fthetime.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.---------Asanexample,ifyousetyourminimumto16,youcannowsafelyguaranteethat16soundscanbeplayedatoncethatarecreatedwithFSOUND_HW3D.Thiswayifyoudocomeacrossacardthatonlysupports4channels,itwilljustdropbacktoplayingALLsoundsinsoftwaremode.Itmaysoundworse,butatleastitdoesntfailontheplaysound.(whichcould
soundevenworse!)___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_Init,FSOUND_SetMaxHardwareChannels
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetMixer
Setsadigitalmixertype.
signedcharF_APIFSOUND_SetMixer(intmixer);
Parameters
mixermixertype,seeFSOUND_MIXERTYPESforvalidparametersanddescriptions.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,(ieifFMODisalreadyactive)FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.Thisfunctiondoesnotnescessarilyneedtobecalled,autodetectionwillselectthefastestmixerforyourmachine.Itishereifyouneedtotestallmixertypesfordebuggingpurposes,oramixerhasafeaturethattheautodetectedonedoesnt.(ielowqualitymixersorvolumeramping)___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_GetMixer,FSOUND_Init,FSOUND_MIXERTYPES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetOutput
Setsupthesoundsystemoutputmode.
signedcharF_APIFSOUND_SetOutput(intoutputtype);
Parameters
outputtypeTheoutputsystemtobeused.SeeFSOUND_OUTPUTTYPESforvalidparametersanddescriptions.-1Isautodetectbasedonoperatingsystem.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,(ieifFMODisalreadyactive)FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init,orafterFSOUND_Close.-------UnderWindowsNT-WaveoutisFASTERthanDirectSound,achievesLOWERlatency,ANDisLESSbuggy.DirectSoundunderNTisachievedbyemulatingwaveout,andthereforeisinferiortowaveout.UseWAVEOUTunderNT.UnderWindows9xandW2K-DirectSoundisfasterthanwaveoutandcanachievelowerlatency.UseDIRECTSOUNDunderWin9xandW2K.-------IfyoudontcallFSOUND_SetOutput,FMODwillnowautodetectDSOUNDorWINMMbasedontheoperatingsystem.___________________
Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_GetDriverCaps,FSOUND_GetOutput,FSOUND_GetOutputHandle,FSOUND_Init,FSOUND_OUTPUTTYPES,FSOUND_SetDriver,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetPanSeperation
Setsthemasterpanseperationfor2dsoundeffects.
DLL_APIvoidF_APIFSOUND_SetPanSeperation(F_FLOAT_APIpansep);
Parameters
pansep Thepanscalar.1.0meansfullpanseperation,0meansmono.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thisissetto1.0bydefault.Musicisnotaffectedbythis.Tochangepanseperationformusicfilesindividually,seeFMUSIC_SetPanSeperation___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetPanSeperation,FSOUND_GetSpeakerMode,FSOUND_SetSpeakerMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetSFXMasterVolume
Setsthemastervolumeforanysoundeffectsplayed.DoesnotaffectmusicorCDoutput.
DLL_APIvoidF_APIFSOUND_SetSFXMasterVolume(intvolume);
Parameters
volume Thevolumetoset.Validrangesarefrom0(silent)to255(fullvolume)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetMasterVolume,FSOUND_SetVolume,FSOUND_SetVolumeAbsolute
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetSpeakerMode
Setsthemodefortheusersspeakersetup.
voidF_APIFSOUND_SetSpeakerMode(unsignedintspeakermode);
Parameters
speakermode Thisisanenumdescribingtheusersspeakersetup.
ReturnValue
void
Remarks
Note-OnlyreliablyworkswithFSOUND_OUTPUT_DSOUNDonwindows,orconsolessuchasPlayStation2,GameCubeandXBox.ForotheroutputtypesspeakermodeonlyinterpretsFSOUND_SPEAKERMODE_MONO,everythingelseisinterpretedasstere.----------------------------------Togettrue5.1dolbydigitalorDTSoutputyouwillneedasoundcardthatcanencodeit,andareceiverthatcandecodeit.----------------------------------Callingthiswillresetthepanseparationsetting.Itsetsitto0ifFSOUND_SPEAKERMODE_MONOischosen,and1otherwise.Youwillneedtoresetthepanseparationifrequiredafterwards.----------------------------------XBOXThisfunctionmustbecalledbeforeFSOUND_Inittochangethedefaultspeakermode.Tochangeonthefly,youmustclosedownFMODwithFSOUND_Closethenre-initializeitwithFSOUND_Init.IfitiscalledafterFSOUND_Init,onlyheadphonespeakermodeisinterpretedtoswitchheadphonemodeonandoff.Bydefaultthedashboardsettingisusedforthespeakermode.Itisnot
recommendyouchangethismodeunlessyoulettheuserchangeitin-game.----------------------------------PlayStation2.Onlymono/stereoandprologic2modesareinterpreted.DolbydigitalorDTSarenotsupported.Thisfunctionmustbecalledbeforeplayingsounds.CallingthisafterplayingasoundwillnotmakethatexistingsoundworkinPrologic2.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_GetSpeakerMode,FSOUND_Init,FSOUND_SetPanSeperation,FSOUND_SPEAKERMODES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Update
Thisupdatesthe3dsoundengineandDMAengine(onlyonsomeplatforms),andshouldbecalledonceagameframe.ThisfunctionwillalsoupdatethesoftwaremixerifyouhaveselectedFSOUND_OUTPUT_NOSOUND_NONREALTIMEasyouroutputmode.
voidF_APIFSOUND_Update();
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_SetAttributes,FSOUND_3D_Listener_SetCurrent,FSOUND_3D_SetAttributes,FSOUND_3D_SetDopplerFactor
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetCPUUsage
ReturnsinpercentofcputimetheamountofcpuusagethatFSOUND/FMUSICmixingistaking.
F_FLOAT_APIF_APIFSOUND_GetCPUUsage();
ReturnValue
floatingpointvaluebetween0.0and100.0.
Remarks
Thisvaluerepresentsthecpuusageusedbystreams,thesoftwaremixer,andsubsequentcallstodsoundwaveoutetc.MIDIplaybackisnotcountedasitisperformedbydirectx.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetChannelsPlaying
ReturnsthenumberofactivechannelsinFSOUND,oronesthatareplaying.
intF_APIFSOUND_GetChannelsPlaying();
ReturnValue
Numberofactivechannels.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_OptimizeChannels
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetDriver
Returnsthecurrentlyselecteddrivernumber.DriversareenumeratedwhenselectingadriverwithFSOUND_SetDriverorotherdriverrelatedfunctionssuchasFSOUND_GetNumDriversorFSOUND_GetDriverName
intF_APIFSOUND_GetDriver();
ReturnValue
Currentlyselecteddriverid.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2
Remarks
Ifnodriverismanuallyselected,0isreturned,orthedefaultdriver.
SeeAlso
FSOUND_GetDriver,FSOUND_GetDriverName,FSOUND_GetNumDrivers,FSOUND_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetDriverCaps
Returnsinformationoncapabilitiesofthecurrentoutputmode.
signedcharF_APIFSOUND_GetDriverCaps(intid,unsignedint*caps);
Parameters
id EnumerateddriverID.ThismustbeinavalidrangedelimitedbyFSOUND_GetNumDrivers,
caps Pointertoanunsignedinttohavethecapsbitsstored.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThisfunctioncannotbecalledafterFMODisalreadyactivatedwithFSOUND_Init.ItmustbecalledbeforeFSOUND_Init.FSOUND_SetOutputmustbecalledtotellFMODwhichoutputmodeyouaretalkingabout.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_CAPS,FSOUND_GetNumDrivers,FSOUND_Init,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetDriverName
Returnsthenameoftheselecteddriver.DriversareenumeratedwhenselectingadriverwithFSOUND_SetDriverorotherdriverrelatedfunctionssuchasFSOUND_GetNumDriversorFSOUND_GetDriver
constchar*F_APIFSOUND_GetDriverName(intid);
Parameters
id EnumerateddriverID.ThismustbeinavalidrangedelimitedbyFSOUND_GetNumDrivers,
ReturnValue
Onsuccess,apointertoaNULLterminatedstringcontainingthenameofthespecifieddeviceisreturned.ThenumberofdriversenumeratedcanbefoundwithFSOUND_GetNumDrivers.Onfailure,NULLisreturned.
Remarks
Ifnodriverisselected,thedefaultdriverisused.
SeeAlso
FSOUND_GetDriver,FSOUND_GetNumDrivers,FSOUND_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetError
ReturnsanerrorcodesetbyFMOD.
intF_APIFSOUND_GetError();
ReturnValue
errorcode,seeFMOD_ERRORS
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMOD_ERRORS,FSOUND_GetAmplitude,FSOUND_GetFrequency,FSOUND_GetPan,FSOUND_GetPriority,FSOUND_GetVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetMaxSamples
Returnsthecurrentmaximumindexforasample.Thisfiguregrowsasyouallocatemoresamples(inblocks)
intF_APIFSOUND_GetMaxSamples();
ReturnValue
Maximumsampleindex
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetMaxChannels
Returnsthetotalnumberofchannelsallocated.
intF_APIFSOUND_GetMaxChannels();
ReturnValue
Numberofchannelsallocated
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetMemoryStats
Returnsinformationonthememoryusageoffmod.ThisisusefulfordeterminingafixedmemorysizetomakeFMODworkwithinforfixedmemorymachinessuchaspocketpcandconsoles.
DLL_APIvoidF_APIFSOUND_GetMemoryStats(unsignedint*currentalloced,unsignedint*maxalloced);
Parameters
currentalloced Currentlyallocatedmemoryattimeofcall.
maxalloced MaximumallocatedmemorysinceFSOUND_InitorFSOUND_SetMemorySystem
ReturnValue
void
Remarks
NotethatifusingFSOUND_SetMemorySystem,thememoryusagewillbeslightlyhigherthanwithoutit,asfmodhastohaveasmallamountofmemoryoverheadtomanagetheavailablememory.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_ALLOCCALLBACK,FSOUND_FREECALLBACK,FSOUND_GetFreeHWRam,FSOUND_Init,FSOUND_REALLOCCALLBACK,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetNumDrivers
Returnsthenumberofsoundcardsordevicesenumeratedforthecurrentoutputtype.(DirectSound,WaveOutetc.)
intF_APIFSOUND_GetNumDrivers();
ReturnValue
Totalnumberofenumeratedsounddevices.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetDriver,FSOUND_GetDriverCaps,FSOUND_GetDriverName,FSOUND_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetNumHWChannels
Returnsthenumberofavailablehardwaremixed2dand3dchannels.
signedcharF_APIFSOUND_GetNumHWChannels(int*num2d,int*num3d,int*total);
Parameters
num2d Pointertointegertostorethenumberofavailablehardwaremixed2dchannels.
num3d Pointertointegertostorethenumberofavailablehardwaremixed3dchannels.
totalUsuallynum2d+num3d,butonsomeplatformslikePS2andGameCube,thiswillbethesameasnum2dandnum3d(andnotthesum)because2dand3dvoicessharethesamepool.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetOutput
Returnsthecurrentidtotheoutputtype.SeeFSOUND_OUTPUTTYPESforvalidparametersanddescriptions.
intF_APIFSOUND_GetOutput();
ReturnValue
idtooutputtype
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetOutputHandle,FSOUND_OUTPUTTYPES,FSOUND_SetFrequency,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetOutputHandle
Returnsapointertothesystemleveloutputdevicemodule.ThismeansapointertoaDIRECTSOUND,WINMMhandle,orwithNOSOUNDoutput,NULL
void*F_APIFSOUND_GetOutputHandle();
ReturnValue
Pointertooutputhandlespecifictothedevice.
Remarks
MustbecalledafterFSOUND_Initorelseitwillfail,Casttheresultingpointerdependingonwhatoutputsystempointeryouareafter.FSOUND_OUTPUT_NOSOUND,NULLisreturned.FSOUND_OUTPUT_WINMM,HWAVEOUTisreturned.FSOUND_OUTPUT_DSOUND,LPDIRECTSOUNDisreturned.FSOUND_OUTPUT_OSS,Filehandleisreturned,(casttoint)FSOUND_OUTPUT_ESD,Handlereturnedbyso_esd_open_sound(casttoint).FSOUND_OUTPUT_ALSAsnd_pcm_t*isreturned.FSOUND_OUTPUT_ASIOAsioDriverListpointerisreturned.FSOUND_OUTPUT_XBOXLPDIRECTSOUNDisreturned.FSOUND_OUTPUT_PS2NULLisreturned.FSOUND_OUTPUT_MACSndChannelPtrisreturned.FSOUND_OUTPUT_GCNULLisreturned.FSOUND_OUTPUT_PSPNULLisreturned.FSOUND_OUTPUT_NOSOUND_NONREALTIMENULLisreturned.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox
SeeAlso
FSOUND_GetOutput,FSOUND_Init,FSOUND_OUTPUTTYPES,FSOUND_SetFrequency,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetOutputRate
Returnsthecurrentmixingrate
intF_APIFSOUND_GetOutputRate();
ReturnValue
CurrentlysetoutputrateinHZ.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetSFXMasterVolume
Returnsthemastervolumeforanysoundeffectsplayed.ItspecificallyhasSFXinthefunctionname,asitdoesnotaffectmusicorCDvolume.ThismustalsobealteredwithFMUSIC_SetMasterVolume.
DLL_APIintF_APIFSOUND_GetSFXMasterVolume();
ReturnValue
Onsuccess,theSFXmastervolumeisreturned.Validrangesarefrom0(silent)to255(fullvolume)
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetMasterVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetVersion
ReturnstheFMODversionnumber.
floatF_APIFSOUND_GetVersion();
ReturnValue
FMODversionnumber.
Remarks
UsethistocomparetheheaderyouareusingagainstthecompiledDLLversiontomakesureyourDLLisuptodate.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Alloc
Allocatesanewemptysample.Usedifyouwanttocreateasamplefromscratchandfillthedatabufferwithyourowndata(usingFSOUND_Sample_LockorFSOUND_Sample_Upload),insteadofjustloadingafilewithFSOUND_Sample_Load.
FSOUND_SAMPLE*F_APIFSOUND_Sample_Alloc(intindex,intlength,unsignedintmode,intdeffreq,intdefvol,intdefpan,intdefpri);
Parameters
index
Samplepoolindex.Seeremarksformoreonthesamplepool.0orabove-Theabsoluteindexintofsoundssamplepool.Thepoolwillgrowastheindexgetslarger.Ifaslotisalreadyuseditwillbereplaced.FSOUND_FREE-LetFSOUNDselectanarbitrarysampleslot.FSOUND_UNMANAGED-DonthavefsoundfreethissampleuponFSOUND_Close
length ThelengthinofthesamplebufferinSAMPLES.
modeBitfielddescribingvariouscharacteristicsofthesample.ValidparametersaredescribedinFSOUND_MODES.
deffreqDefaultfrequencyforthissample.defvol Defaultvolumeforthissample.defpan Defaultpanforthissample.defpri Defaultpriorityforthissample.
ReturnValue
Onsuccess,apointertoanallocatedsampleisreturned.Onfailure,NULLisreturned.
Remarks
FMODhasasamplemanagementsystemthatholdsontoanysamplesloadedorallocated,andfreesthemallwhenyoucallFSOUND_Close.Ittakesthehassleoutofhavingtokeepholdofalotofsamplehandlesandremembertofreethemallattheendofyourapplication.ItisbasicallyanexpandlearrayofhandlesthatholdseachsampleuntilFMODclosesdownwhereitdoesacleanup.FSOUND_UNMANAGEDcanbeusedNOTtousethesamplemanagementsystem.------------FSOUND_Sample_Allocisonlynescessaryforlowerleveloperationswithsampledata.UsuallyFSOUND_Loaddoestheworkforyou.lowerleveloperationsmeansuchthingsasuploadingdatafrommemoryoryourowncompresseddataforexample.Youcancreateanewsamplefromscratchbydoingthefollowingoperations1.AllocateanewsamplewithFSOUND_Sample_Alloc2.WritedatatothesamplebufferwithFSOUND_Sample_LockandFSOUND_Sample_Unlock,orFSOUND_Sample_Upload.NoteFSOUND_Sample_Lockonlyreturnsapointertothesampledata,whereasFSOUND_Sample_Uploaddoesacopyfromdatayougiveit,withformatconversiontothecorrectformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_MODES,FSOUND_Sample_Alloc,FSOUND_Sample_Free,FSOUND_Sample_Load,FSOUND_Sample_Lock,
FSOUND_Sample_SetDefaults,FSOUND_Sample_SetLoopPoints,FSOUND_Sample_Unlock,FSOUND_Sample_Upload
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Free
Removesasamplefrommemoryandmakesitsslotavailableagain.
voidF_APIFSOUND_Sample_Free(FSOUND_SAMPLE*sptr);
Parameters
sptr Pointertothesampledefinitiontobefreed.
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_Alloc,FSOUND_Sample_Load
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Get
Returnsapointertoamanagedsamplebasedontheindexpassed.
FSOUND_SAMPLE*F_APIFSOUND_Sample_Get(intsampno);
Parameters
sampno Theindexinthesamplemanagementpooloftherequestedsample.
ReturnValue
Pointertoasample.
Remarks
SamplesthatarenotcreatedwithFSOUND_UNMANAGEDarestoredinatableinsideFMOD.ThiswaywhenFMODcanfreeallsampleswhenFSOUND_Closeiscalledandtheuserdoesnthavetoworryaboutcleaningupmemory.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetDefaults
Returnsthedefaultvolume,frequency,panandpriorityvaluesforthespecifiedsample.
signedcharF_APIFSOUND_Sample_GetDefaults(FSOUND_SAMPLE*sptr,int*deffreq,int*defvol,int*defpan,int*defpri);
Parameters
sptr Pointertothesampletogetthedefaultinformationfrom.
deffreq Pointertovaluetobefilledwiththesampledefaultfrequency.CanbeNULL.
defvol Pointertovaluetobefilledwiththesampledefaultvolume.CanbeNULL.defpan Pointertovaluetobefilledwiththesampledefaultpan.CanbeNULL.
defpri Pointertovaluetobefilledwiththesampledefaultpriority.CanbeNULL.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
PassingNULLinanyoftheseparameterswillresultinthevaluebeingignored.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_GetDefaultsEx,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetDefaultsEx
Returnsthedefaultvolume,frequency,pan,priorityandrandomplaybackvariationsforthespecifiedsample.
signedcharF_APIFSOUND_Sample_GetDefaultsEx(FSOUND_SAMPLE*sptr,int*deffreq,int*defvol,int*defpan,int*defpri,int*varfreq,int*varvol,int*varpan);
Parameters
sptr Pointertothesampletogetthedefaultinformationfrom.
deffreq Pointertovaluetobefilledwiththesampledefaultfrequency.CanbeNULL.
defvol Pointertovaluetobefilledwiththesampledefaultvolume.CanbeNULL.
defpan Pointertovaluetobefilledwiththesampledefaultpan.CanbeNULL.
defpri Pointertovaluetobefilledwiththesampledefaultpriority.CanbeNULL.
varfreq Pointertovaluetobefilledwiththesamplerandomfrequencyvariance.CanbeNULL.
varvol Pointertovaluetobefilledwiththesamplerandomvolumevariance.CanbeNULL.
varpan Pointertovaluetobefilledwiththesamplerandompanvariance.CanbeNULL.
ReturnValue
Onsuccess,TRUEisreturned.
Onfailure,FALSEisreturned.
Remarks
PassingNULLinanyoftheseparameterswillresultinthevaluebeingignored.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_GetDefaults,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetLength
ReturnsthelengthofthesampleinSAMPLES
unsignedintF_APIFSOUND_Sample_GetLength(FSOUND_SAMPLE*sptr);
Parameters
sptr Pointertothesampletogetthelengthfrom.
ReturnValue
Onsuccess,thelengthofsampleinSAMPLESisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetLoopPoints
ReturnsthestartandendpositionsofthespecifiedsampleloopinSAMPLES(notbytes)
DLL_APIsignedcharF_APIFSOUND_Sample_GetLoopPoints(FSOUND_SAMPLE*sptr,int*loopstart,int*loopend);
Parameters
sptr Pointertothesampletogetthelooppointinformationfrom.
loopstart Pointertovaluetobefilledwiththesampleloopstartpoint.CanbeNULL.
loopend Pointertovaluetobefilledwiththesampleloopendpoint.CanbeNULL.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
PassingNULLinanyoftheseparameterswillresultinthevaluebeingignored.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,FSOUND_Sample_SetLoopPoints,FSOUND_Sample_SetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetMinMaxDistance
Gettheminimumandmaximumaudibledistanceforasample.
signedcharF_APIFSOUND_Sample_GetMinMaxDistance(FSOUND_SAMPLE*sptr,F_FLOAT_API*min,F_FLOAT_API*max);
Parameters
sptr Thesampletogetminimumandmaximumaudibledistanceinformationfrom.
min Pointertovaluetobefilledwiththeminimumvolumedistanceforthesample.Seeremarksformoreonunits.
max Pointertovaluetobefilledwiththemaximumvolumedistanceforthesample.Seeremarksformoreonunits.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.Thedefaultunitsforminimumandmaximumdistancesare1.0and1000000000.0f.Volumedropsoffatmindistance/distance.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_SetDistanceFactor,FSOUND_Sample_SetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetMode
Returnsabitfieldcontaininginformationaboutthespecifiedsample.ThevaluescanbebitwiseAND'edwiththevaluescontainedinFSOUND_MODEStoseeifcertaincriteriaaretrueornot.Informationthatcanberetrievedfromthesameinthisfieldarelooptype,bitdepthandstereo/mono.
unsignedintF_APIFSOUND_Sample_GetMode(FSOUND_SAMPLE*sptr);
Parameters
sptr Pointertothesampletogetthemodeinformationon
ReturnValue
Onsuccess,thesamplemodeisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,FSOUND_Sample_SetMode,FSOUND_SetLoopMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_GetName
ReturnsapointertoaNULLterminatedstringcontainingthesample'sname.
constchar*F_APIFSOUND_Sample_GetName(FSOUND_SAMPLE*sptr);
Parameters
sptr Pointertothesampletogetthenamefrom.
ReturnValue
Onsuccess,thenameofthesampleisreturned.Onfailure,NULLisreturned.
Remarks
Thenamemaynotalwaysmakesense.FromaMODfileitcontainsthesampletextenteredbythemusician.Fornondescriptivefileformatsitjustcontainsthefilename.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Load
Loadsanddecodesastaticsoundfileintomemory.Thisincludessuchfilesas.WAV,.MP2,.MP3,.OGG,.RAWandothers.
FSOUND_SAMPLE*F_APIFSOUND_Sample_Load(intindex,constchar*name_or_data,unsignedintinputmode,intoffset,intlength);
Parameters
index
Samplepoolindex.Seeremarksformoreonthesamplepool.0orabove-Theabsoluteindexintothesamplepool.Thepoolwillgrowastheindexgetslarger.Ifaslotisalreadyuseditwillbereplaced.FSOUND_FREE-LetFSOUNDselectanarbitrarysampleslot.FSOUND_UNMANAGED-Donthavethissamplemanagedwithinfsoundssamplemanagementsystem
name_or_data Nameofsoundfileorpointertomemoryimagetoload.
mode Descriptionofthedataformat,ORinthebitsdefinedinFSOUND_MODEStodescribethedatabeingloaded.
offsetOptional.0bydefault.If>0,thisvalueisusedtospecifyanoffsetinafile,sofmodwillseekbeforeopening.lengthmustalsobespecifiedifthisvalueisused.
length
Optional.0bydefault.If>0,thisvalueisusedtospecifythelengthofamemoryblockwhenusingFSOUND_LOADMEMORY,oritisthelengthofafileorfilesegmentiftheoffsetparameterisused.OnPlayStation2thismustbe16bytealignedformemoryloading.
ReturnValue
Onsuccess,asamplepointerisreturned.Onfailure,NULLisreturned.
Remarks
FMODhasasamplemanagementsystemthatholdsontoanysamplesloadedorallocated,andfreesthemallwhenyoucallFSOUND_Close.Ittakesthehassleoutofhavingtokeepholdofalotofsamplehandlesandremembertofreethemallattheendofyourapplication.ItisbasicallyanexpandlearrayofhandlesthatholdseachsampleuntilFMODclosesdownwhereitdoesacleanup.FSOUND_UNMANAGEDcanbeusedsoFMODdoesNOTusethesamplemanagementsystem.Youhavetomakesuretheyarefreedyourself.--------SpecifyFSOUND_LOADMEMORYtoloadafilefromamemoryimage.Thepointeryoupasstonamemustbetheactualimageofthedatayouwanttoload.ThelengthparameteristobefilledoutifFSOUND_LOADMEMORYisspecified,otherwiseifyoudonotspecifymemoryloading,canbesafelyignoredandshouldbesetto0.--------Compressedformatsareexpandedintomemory.Ifthefileisquitelarge,itcouldtakeawhiletoload.--------IfFSOUND_8BITSisspecifiedandthefiledecodesto16bitnormally,FMODwilldowngradethesampleto8bit.--------OnPlayStation2,thename_or_datapointerandlengthvariablesmustbe16bytealigned,forDMAreasons.--------NotethatFSOUND_NONBLOCKINGisNOTsupportedwiththisfunction.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Close,FSOUND_MODES,FSOUND_Sample_Alloc,
FSOUND_Sample_Free
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Lock
Returnsapointertothebeginningofthesampledataforasample.Datawrittentothesepointersmustbesigned.
signedcharF_APIFSOUND_Sample_Lock(FSOUND_SAMPLE*sptr,intoffset,intlength,void**ptr1,void**ptr2,unsignedint*len1,unsignedint*len2);
Parameters
sptr Pointertothesampledefinition.offset OffsetinBYTEStothepositionyouwanttolockinthesamplebuffer.lengthNumberofBYTESyouwanttolockinthesamplebuffer.ptr1 Addressofapointerthatwillpointtothefirstpartofthelockeddata.
ptr2Addressofapointerthatwillpointtothesecondpartofthelockeddata.ThiswillbeNULLifthedatalockedhasntwrappedattheendofthebuffer.
len1 LengthofdatainBYTESthatwaslockedforptr1
len2 LengthofdatainBYTESthatwaslockedforptr2.Thiswillbe0ifthedatalockedhasntwrappedattheendofthebuffer.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Youmustalwaysunlockthedataagainafteryouhavefinishedwithit,using
FSOUND_Sample_Unlock.ForPCMbasedsamples,datamustbesigned8or16bit.ForcompressedsamplessuchasthosecreatedwithFSOUND_IMAADPCM,FSOUND_VAG,FSOUND_GCADPCM,thedatamustbeinitsoriginalcompressedformat.OnPlayStation2,withFSOUND_HW2DorFSOUND_HW3Dbasedsamples,thisfunctiondoesnotreturnareadableorwritablebuffer,itreturnstheSPU2addressofthesample.TosenddatatoityoumustcallFSOUND_SendData.OnGameCube,withFSOUND_HW2DorFSOUND_HW3Dbasedsamples,thisfunctionwillnotreturnthedatacontainedwithinthesample.Itisforuploadpurposesonly.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_Alloc,FSOUND_Sample_Unlock,FSOUND_Sample_Upload,FSOUND_SendData
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetDefaults
Setsasample'sdefaultattributes,sowhenitisplayeditusesthesevalueswithouthavingtospecifythemlater.
signedcharF_APIFSOUND_Sample_SetDefaults(FSOUND_SAMPLE*sptr,intdeffreq,intdefvol,intdefpan,intdefpri);
Parameters
sptr Pointertothesampletohaveitsattributesset.deffreqDefaultsamplefrequency.Thevaluehereisspecifiedinhz.-1toignore.defvol Defaultsamplevolume.Thisisavaluefrom0to255.-1toignore.
defpan Defaultsamplepanposition.Thisisavaluefrom0to255orFSOUND_STEREOPAN.defpri Defaultsamplepriority.Thisisavaluefrom0to255.-1toignore.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_Alloc,FSOUND_Sample_GetDefaults,
FSOUND_Sample_GetDefaultsEx,FSOUND_Sample_GetLoopPoints,FSOUND_Sample_GetMode,FSOUND_Sample_SetDefaultsEx,FSOUND_Sample_SetMode,FSOUND_SetFrequency,FSOUND_SetPan,FSOUND_SetPriority,FSOUND_SetVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetDefaultsEx
Setsasample'sdefaultattributes,sowhenitisplayeditusesthesevalueswithouthavingtospecifythemlater.
signedcharF_APIFSOUND_Sample_SetDefaultsEx(FSOUND_SAMPLE*sptr,intdeffreq,intdefvol,intdefpan,intdefpri,intvarfreq,intvarvol,intvarpan);
Parameters
sptr Pointertothesampletohaveitsattributesset.
deffreq Defaultsamplefrequency.Thevaluehereisspecifiedinhz.-1toignore.defvol Defaultsamplevolume.Thisisavaluefrom0to255.-1toignore.
defpan Defaultsamplepanposition.Thisisavaluefrom0to255orFSOUND_STEREOPAN.
defpri Defaultsamplepriority.Thisisavaluefrom0to255.-1toignore.
varfreq Frequencyvariationinhztoapplytodeffreqeachtimethissampleisplayed.-1toignore.
varvol Volumevariationtoapplytodefvoleachtimethissampleisplayed.-1toignore.
varpan Panvariationtoapplytodefpaneachtimethissampleisplayed.-1toignore.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Frequency,volumeandpanvariationvaluesspecifya+/-variationtothespecifieddefaultfrequency,volumeandpanvaluesi.e.withdeffreq=44100,varfreq=2000theactualfrequencyvalueusedwillbeintherange42100->46100.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_GetDefaults,FSOUND_Sample_GetDefaultsEx,FSOUND_Sample_GetLoopPoints,FSOUND_Sample_GetMode,FSOUND_Sample_SetDefaults,FSOUND_SetFrequency,FSOUND_SetPan,FSOUND_SetPriority,FSOUND_SetVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetMaxPlaybacks
Setsthemaximumnumberoftimesasamplecanplaybackatonce.
signedcharF_APIFSOUND_Sample_SetMaxPlaybacks(FSOUND_SAMPLE*sptr,intmax);
Parameters
sptr Pointertothesampletohaveitsplaybackbehaviourchanged.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_PlaySound
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetMinMaxDistance
Setstheminimumandmaximumaudibledistanceforasample.MinDistanceistheminimumdistancethatthesoundemitterwillceasetocontinuegrowinglouderat(asitapproachesthelistener).Withinthemindistanceitstaysattheconstantloudestvolumepossible.Outsideofthismindistanceitbeginstoattenuate.MaxDistanceisthedistanceasoundstopsattenuatingat.Beyondthispointitwillstayatthevolumeitwouldbeatmaxdistanceunitsfromthelistenerandwillnotattenuateanymore.MinDistanceisusefultogivetheimpressionthatthesoundisloudorsoftin3dspace.Anexampleofthisisasmallquietobject,suchasabumblebee,whichyoucouldsetamindistanceofto0.1forexample,whichwouldcauseittoattenuatequicklyanddissapearwhenonlyafewmetersawayfromthelistener.Anotherexampleisajumbojet,whichyoucouldsettoamindistanceof100.0,whichwouldkeepthesoundvolumeatmaxuntilthelistenerwas100metersaway,thenitwouldbehundredsofmetersmorebeforeitwouldfadeout.-------Insummary,increasethemindistanceofasoundtomakeit'louder'ina3dworld,anddecreaseittomakeit'quieter'ina3dworld.maxdistanceiseffectivelyobsoleteunlessyouneedthesoundtostopfadingoutatacertainpoint.Donotadjustthisfromthedefaultifyoudontneedto.Somepeoplehavetheconfusionthatmaxdistanceisthepointthesoundwillfadeoutto,thisisnotthecase.
signedcharF_APIFSOUND_Sample_SetMinMaxDistance(FSOUND_SAMPLE*sptr,F_FLOAT_APImin,F_FLOAT_APImax);
Parameters
sptr Thesampletohaveitsminimumandmaximumdistanceset.min Thesamplesminimumvolumedistancein"units".Seeremarksformore
onunits.
max Thesamplesmaximumvolumedistancein"units".Seeremarksformoreonunits.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.Thedefaultunitsforminimumandmaximumdistancesare1.0and1000000000.0f.Volumedropsoffatmindistance/distance.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_GetAttributes,FSOUND_3D_GetMinMaxDistance,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_3D_SetMinMaxDistance,FSOUND_Sample_GetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetMode
Setsasample'smode.ThiscanonlybeFSOUND_LOOP_OFF,FSOUND_LOOP_NORMAL,FSOUND_LOOP_BIDIorFSOUND_2D.Youcannotchangethedescriptionofthecontentsofasampleoritslocation.FSOUND_2DwillbeignoredontheWin32platformifFSOUND_HW3Dwasusedtocreatethesample.
signedcharF_APIFSOUND_Sample_SetMode(FSOUND_SAMPLE*sptr,unsignedintmode);
Parameters
sptr Pointertothesampletohavethemodeset.mode ThemodebitstosetfromFSOUND_MODES.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Onlythefollowingmodesareaccepted,otherswillbefilteredout.FSOUND_LOOP_BIDI,FSOUND_LOOP_NORMAL,FSOUND_LOOP_OFF,FSOUND_2D.NormallyFSOUND_2Disacceptedonlyifthesoundissoftwaremixed.Ifthisisnotset,themodeissetforthesampletobe3Dprocessed.-------------------OnPlaystation2,XBoxandGameCube,FSOUND_HW2DandFSOUND_HW3Daresupported,soyoucanchangebetweenthematruntime.-------------------OnWindows,samplescreatedwithFSOUND_HW3DorFSOUND_HW2Ddo
notsupportFSOUND_LOOP_BIDI.ThisisalimitationofDirectX.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetLoopMode,FSOUND_MODES,FSOUND_Sample_GetLoopPoints,FSOUND_Sample_GetMode,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetLoopPoints
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_SetLoopPoints
Setsasample'slooppoints,specifiedinSAMPLES,notbytes.
signedcharF_APIFSOUND_Sample_SetLoopPoints(FSOUND_SAMPLE*sptr,intloopstart,intloopend);
Parameters
sptr Pointertothesampletohaveitslooppointsset.loopstart Thestartingpositionofthesamplelooploopend Theendpositionofthesampleloop
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
SamplescreatedwithFSOUND_HW3DandFSOUND_HW2DundertheFSOUND_OUTPUT_DSOUNDoutputmodedonotsupportthisfunction.Looppointssetonsuchasamplewithbeignored,andthesamplewillloopinitsentirety.ThisisalimitationofDirectSound.OnXBOX,GameCubeandPlaystation2hardwarevoicesusingcompresseddata(ieXADPCM,VAGorGCADPCM),thesevalueswillnotbesampleaccurate,butwillberoundedtothenearestcompressionblocksize.OnPlayStation2,theloopendisignored.Thehardwarecannotchangetheendaddress,sotheloopendisalwaysequivalenttolength-1nomatterwhatyouset.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_Alloc,FSOUND_Sample_GetLoopPoints,FSOUND_Sample_SetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Unlock
ReleasesprevioussampledatalockfromFSOUND_Sample_Lock
signedcharF_APIFSOUND_Sample_Unlock(FSOUND_SAMPLE*sptr,void*ptr1,void*ptr2,unsignedintlen1,unsignedintlen2);
Parameters
sptr Pointertothesampledefinition.
ptr1 Pointertothe1stlockedportionofsampledata,fromFSOUND_Sample_Lock.
ptr2 Pointertothe2ndlockedportionofsampledata,fromFSOUND_Sample_Lock.len1 LengthofdatainBYTESthatwaslockedforptr1
len2 LengthofdatainBYTESthatwaslockedforptr2.Thiswillbe0ifthedatalockedhasntwrappedattheendofthebuffer.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_Alloc,FSOUND_Sample_Lock,FSOUND_Sample_Upload
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Sample_Upload
Thisfunctionuploadsnewsounddatafrommemorytoapreallocated/existingsampleanddoesconversionbasedonthespecifiedsourcemode.Ifsampledataalreadyexistsatthishandlethenitisreplacedwiththenewdatabeinguploaded.
signedcharF_APIFSOUND_Sample_Upload(FSOUND_SAMPLE*sptr,void*srcdata,unsignedintmode_in);
Parameters
sptr Pointertothedestinationsample
srcdata Pointertothesourcedatatobeuploaded.OnPlayStation2thisisanIOPaddressnotanEEaddress.
mode
Descriptionofthesourcedataformat.BitwiseORinthesebitstodescribethedatabeingpassedin.SeeFSOUND_MODESforvalidparametersanddescriptions.FSOUND_HW3D,FSOUND_HW2DandFSOUND_LOOPmodesareignored,themodedescribesthesourceformat,notthedestinationformat.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
NotethatonPlayStation2thesourcedataaddressisanIOPaddressnotanEEaddress.TogetdatafromEERAMtothesampleyoumustallocatesomeIOPmemory,dmaittoIOPmemorythencallupload.Therearehelperfunctionsinfmodps2.h
toachievethis.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Sample_Alloc,FSOUND_Sample_Lock,FSOUND_Sample_Unlock
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_PlaySound
Playsasampleinaspecifiedchannel,usingthesample'sdefaultfrequency,volumeandpansettings.
intF_APIFSOUND_PlaySound(intchannel,FSOUND_SAMPLE*sptr);
Parameters
channel
0+Theabsolutechannelnumberinthechannelpool.Remembersoftwarechannelscomefirst,followedbyhardwarechannels.Youcannotplayasoftwaresampleonahardwarechannelandviceversa.FSOUND_FREEChoosesafreechanneltoplayin.IfallchannelsareusedthenitselectsachannelwithasampleplayingthathasanEQUALorLOWERprioritythanthesampletobeplayed.FSOUND_ALLPassingthiswillcauseALLchannelstoplay.(notethiswillmakethingsVERYnoisy!)IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.
sptr Pointertothesampletobeplayed.
ReturnValue
Onsuccess,thechannelhandlethatwasselectedisreturned.Onfailure,-1isreturned.
Remarks
IfyouplayaFSOUND_HW3Ddeclaredsamplewiththisfunction,thenthepositionandvelocityaresettothoseofthelistener.Otherattributessuchasvolume,frequencyandpanaretakenfromthesample'sdefaultvolume,frequency,panetc.----------Thechannelhandle:Thereturnvalueisreferencecounted.Thisstopstheuserfromupdatingastolenchannel.Basicallyitmeanstheonlysoundyoucanchangetheattributes(ievolume/pan/frequency/3dposition)foraretheoneyouspecificallycalledplaysoundfor.Ifanothersoundstealsthatchannel,andyoukeeptryingtochangeitsattributes(ievolume/pan/frequency/3dposition),itwilldonothing.Thisisgreatifyouhavesoundsbeingupdatedfromtasksandyoujustforgetaboutit.Youcankeepupdatingthesoundattributesandifanothertaskstealsthatchannel,youroriginaltaskwontchangetheattributesofthenewsound!!!Thelower12bitscontainthechannelnumber.(yesthismeansa4096channellimitforFMOD:)Theupper19bitscontainthereferencecount.Thetop1bitisthesignbit.ieSRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCC----------RememberifnotusingFSOUND_FREE,thenthechannelpoolissplitupintosoftwareandhardwarechannels.SoftwarechannelsoccupythefirstnindiciesspecifiedbythevaluepassedintoFSOUND_Init.Hardwarechannelsoccupythenextnindiciesafterthis,andcanbeavariableamount,dependingonthehardware.UseFSOUND_GetNumHardwareChannelstoqueryhowmanychannelsareavailableinhardware.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_FX_Enable,FSOUND_GetNumHardwareChannels,FSOUND_GetNumSubChannels,FSOUND_GetSubChannel,FSOUND_Init,FSOUND_PlaySoundEx,FSOUND_Sample_SetMaxPlaybacks,FSOUND_StopSound
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_PlaySoundEx
ExtendedfeaturedversionofFSOUND_PlaySound.Newfunctionalityincludestheabilitytostartthesoundpaused.Thisallowsattributesofachanneltobesetfreelybeforethesoundactuallystartsplaying,untilFSOUND_SetPaused(FALSE)isused.AlsoaddedistheabilitytoassociatethechanneltoaspecifiedDSPunit.Thisallowstheuserto'group'channelsintoseperateDSPunits,whichallowseffectstobeinsertedbetweenthese'groups',andallowvariousthingslikehavingonegroupaffectedbyreverb(wetmix)andanothergroupofchannelsunaffected(dry).ThisisusefultoseperatethingslikemusicfrombeingaffectedbyDSPeffects,whileothersoundeffectsare.
intF_APIFSOUND_PlaySoundEx(intchannel,FSOUND_SAMPLE*sptr,FSOUND_DSPUNIT*dspunit,signedcharstartpaused);
Parameters
channel
0+Theabsolutechannelnumberinthechannelpool.Remembersoftwarechannelscomefirst,followedbyhardwarechannels.Youcannotplayasoftwaresampleonahardwarechannelandviceversa.FSOUND_FREEChoosesafreechanneltoplayin.IfallchannelsareusedthenitselectsachannelwithasampleplayingthathasanEQUALorLOWERprioritythanthesampletobeplayed.FSOUND_ALLPlaysthesoundonallchannels.
sptr Pointertothesampletobeplayed.
dspunitOptional.NULLbydefault.Pointertoadspunittoattachthechanneltoforchannelgrouping.OnlyattachasoundtoausercreatedDSPunit,andnotasystemDSPunit.
paused Startthesoundpausedornot.Pausingthesoundallowsattributestobesetbeforethesoundstarts.
ReturnValue
Onsuccess,thechannelhandlethatwasselectedisreturned.Onfailure,-1isreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillcauseALLchannelstoplay.(notethiscouldmakethingsVERYnoisy!)IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.----------Thechannelhandle:Thereturnvalueisreferencecounted.Thisstopstheuserfromupdatingastolenchannel.Thismeanstheonlysoundyoucanchangetheattributes(ievolume/pan/frequency/3dposition)foraretheoneyouspecificallycalledplaysoundfor.Ifanothersoundstealsthatchannel,andyoukeeptryingtochangeitsattributes(ievolume/pan/frequency/3dposition),itwilldonothing.Thisisgreatifyouhavesoundsbeingupdatedfromtasksandyoujustforgetaboutit.Youcankeepupdatingthesoundattributesandifanothertaskstealsthatchannel,youroriginaltaskwontchangetheattributesofthenewsound!!!Thelower12bitscontainthechannelnumber.(yesthismeansa4096channellimitforFMOD:)Theupper19bitscontainthereferencecount.Thetop1bitisthesignbit.ieSRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCC----------
RememberifnotusingFSOUND_FREE,thenthechannelpoolissplitupintosoftwareandhardwarechannels.SoftwarechannelsoccupythefirstnindiciesspecifiedbythevaluepassedintoFSOUND_Init.Hardwarechannelsoccupythenextnindiciesafterthis,andcanbeavariableamount,dependingonthehardware.UseFSOUND_GetNumHardwareChannelstoqueryhowmanychannelsareavailableinhardware.----------IfyouattachasoundtoaDSPunit(forgroupingpurposes),thecallbackfortheDSPunitwillbeoverwrittenwithfmod'sinternalmixercallback,sothecallbacktheusersuppliedisrenderedobsoleteandisnotcalled.Also,donotattachsoundstosystemDSPunits,theassignmentwillbeignoredifyoudo.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_FX_Enable,FSOUND_GetNumSubChannels,FSOUND_GetSubChannel,FSOUND_Init,FSOUND_PlaySound,FSOUND_SetPaused,FSOUND_StopSound
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_StopSound
Stopsaspecifiedsoundchannelfromplaying,andfreesitupforre-use.
signedcharF_APIFSOUND_StopSound(intchannel);
Parameters
channel Thechannelnumber/handletostop.FSOUND_ALLcanalsobeused(seeremarks)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillcauseALLchannelstostop.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_PlaySound,FSOUND_PlaySoundEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetFrequency
Setsachannelsfrequencyorplaybackrate,inHZ.
signedcharF_APIFSOUND_SetFrequency(intchannel,intfreq);
Parameters
channel Thechannelnumber/handletochangethefrequencyfor.FSOUND_ALLcanalsobeused(seeremarks).
freq Thefrequencytoset.Validrangesarefrom100to705600,and-100to-705600.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupportedhere.PassingthiswillsetALLchannelstospecifiedfrequency.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.Negativefrequenciesmakethesoundplaybackwards,soFSOUND_SetCurrentPositionwouldbeneededtosetthesoundtotherightposition.---------NOTE:FSOUND_HW3DlimitationsinDirectSound.Everyhardwaredevicehasaminimumandmaximumfrequency.YoucandeterminethesebylookingattheDirectSoundcapsandviewingthemembersdwMaxSecondarySampleRateanddwMaxSecondarySampleRate.FMODclampsfrequenciestothesevalueswhenplayingbackonhardware,soif
youaresettingthefrequencyoutsideofthisrange,thefrequencywillstayateitherdwMinSecondarySampleRateordwMaxSecondarySampleRate.Tofindoutthesetwovaluesinfmod(maybewhethertodecidetodropbacktosoftwaremixingornot),youcanusethefollowingcode.---------include<dsound.h>intminhwfreq,maxhwfreq;if(FSOUND_GetNumHardwareChannels()&&FSOUND_GetOutput()==FSOUND_OUTPUT_DSOUND){HRESULThr;DSCAPSdscaps;memset(&dscaps;,0,sizeof(DSCAPS));dscaps.dwSize=sizeof(DSCAPS);hr=IDirectSound_GetCaps((LPDIRECTSOUND)FSOUND_GetOutputHandle(),&dscaps;);minhwfreq=dscaps.dwMinSecondarySampleRate;maxhwfreq=dscaps.dwMaxSecondarySampleRate;}___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_MixBuffers,FSOUND_GetFrequency,FSOUND_GetOutput,FSOUND_GetOutputHandle,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,FSOUND_SetCurrentPosition
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetLevels
XBoxOnly-Forsurroundsoundsystems,thisfunctionallowseachsurroundspeakerleveltobesetindividuallyforthischannel.
signedcharF_APIFSOUND_SetLevels(intchannel,intfrontleft,intcenter,intfrontright,intbackleft,intbackright,intlfe);
Parameters
channelThechannelnumber/handletochangetheoutputlevelsfor.FSOUND_ALLandFSOUND_SYSTEMCHANNELcanalsobeused(seeremarks)
frontleft Valuefrom0to255inclusive,specifyingalinearlevelforthefrontleftspeaker.
center Valuefrom0to255inclusive,specifyingalinearlevelforthecenter.
frontright Valuefrom0to255inclusive,specifyingalinearlevelforthefrontrightspeaker.
backleft Valuefrom0to255inclusive,specifyingalinearlevelforthebackleftspeaker.
backright Valuefrom0to255inclusive,specifyingalinearlevelforthebackrightspeaker.
lfe Valuefrom0to255inclusive,specifyingalinearlevelforthesubwooferspeaker.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetthepanofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.----------FSOUND_SYSTEMCHANNELissupported.YoucansetthemixlevelsfortheFMODsoftwareengine,andALLsoftwaremixedsoundswillbeaffected.___________________Supportedonthefollowingplatforms:XBox
SeeAlso
FSOUND_GetPan,FSOUND_Reverb_SetChannelProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetLoopMode
SetstheloopmodeforaparticularCHANNEL,notsample.
signedcharF_APIFSOUND_SetLoopMode(intchannel,unsignedintloopmode);
Parameters
channel Thechannelnumber/handletohaveitsloopmodeset.
loopmode Theloopmodetoset.ThiscanbeFSOUND_LOOP_NORMAL,FSOUND_LOOP_BIDIorFSOUND_LOOP_OFF.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.Passingthiswillsetloopmodesforallchannelsavailable.Note,thisdoesnotworkforhardwaresoundsplayedonhardwarechannelswhiletheyareplaying.Thefunctionhastobecalledwhenthechannelispaused.Softwarebasedsoundsdonothavethislimitation,andcanhavetheirloopmodechangedduringplayback,butforcompatibilityitisbesttousethepausemethod,elseyoumaygetdifferentbehaviourifhardwarevoicesdonotexist.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_GetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetMute
Mutesandun-mutesachannel.
signedcharF_APIFSOUND_SetMute(intchannel,signedcharmute);
Parameters
channel Thechannelnumber/handletomute/unmute.FSOUND_ALLcanalsobeused(seeremarks).mute Togglevalue-TRUEmutesoutthechannel,FALSEreenablesit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.Passingthiswillmute/unmuteALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetMute
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetPan
Setsachannelspanpositionlinearly
signedcharF_APIFSOUND_SetPan(intchannel,intpan);
Parameters
channel Thechannelnumber/handletochangethepanfor.FSOUND_ALLcanalsobeused(seeremarks)
pan
Thepanningpositionforthischanneltoset.parametersare:-from0(fullleft)to255(fullright)-FSOUND_STEREOPAN.Thisismeantforstereosamples,butwillworkonmonosamplesaswell.ItmakesbothleftandrightFULLvolumeinsteadof50/50asmiddlepanningdoes.Seeremarkssectionformoreinformationonthis.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetthepanofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.----------Important:IfyouareplayingaSTEREOsample,andusingnormalmiddle
panning,itwillonlycomeoutathalfthevolumetheyaresupposedto.ToavoidthisuseFSOUND_STEREOpan.Panningworksinthefollowingmanner:fullleft:100toleft,0torightfullright:0toleft,100torightmiddle:71toleft,71torightFMODUses'constantpower'panning.Thecenterpositionis714749664neachchannelasitkeepsanevenRMSoutputlevelwhenmovingthesoundfromlefttoright.Placing504749664neachchannelforamiddlepositionisincorrect.Thepangraphforconstantpowerpanningresemblesacurveinsteadofstraightlines.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_MixBuffers,FSOUND_GetPan,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,FSOUND_Stream_Play,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetPaused
Pausesorunpausesasoundchannel.
signedcharF_APIFSOUND_SetPaused(intchannel,signedcharpaused);
Parameters
channel Thechannelnumber/handletopauseorunpause.FSOUND_ALLcanalsobeused(seeremarks).paused TRUEpausesthischannel,FALSEunpausesit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.Passingthiswillpause/unpauseALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_FX_Enable,FSOUND_GetPaused,FSOUND_PlaySoundEx,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.
GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetPriority
Setsachannelspriority.HigherprioritymeansitislesslikelytogetdiscardedwhenFSOUND_FREEisusedtoselectachannel,whenallchannelsarebeingused,andonehastoberejected.Ifachannelhasanequalprioritythenitwillbereplaced.
signedcharF_APIFSOUND_SetPriority(intchannel,intpriority);
Parameters
channel Thechannelnumber/handletochangethepriorityfor.FSOUND_ALLcanalsobeused(seeremarks).priority Theprioritytoset.Validrangesarefrom0(lowest)to255(highest)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetthepriorityofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetPriority,FSOUND_GetReserved,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,FSOUND_SetReserved
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetReserved
Thissetsthereservedstatusofachannel.Reservingachannelisrelatedtosettingitspriority,butreservingachannelmeansitcanNEVERbestolenbyachannelrequest.Itcouldbethoughtofasanextrahighpriority,butisdifferentinthatreservedchannelsdonotstealfromeachother,whereaschannelswithequalprioritiesdo(unlesstherearechannelswithlowerprioritiesthatitcanstealfrom).Ifallchannelswerereservedandanotherrequestforcameinforachannel,itwouldsimplyfailandthesoundwouldnotbeplayed.
signedcharF_APIFSOUND_SetReserved(intchannel,signedcharreserved);
Parameters
channelThechannelnumber/handletochangethepriorityfor.FSOUND_ALLcanalsobeused(seeremarks).FSOUND_FREEisNOTaccepted.
reservedReservedflag.ValuesacceptedareTRUE,toreserveachannel,andFALSEtoun-reserveachannel.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetALLchannelstobereserved/unreserved.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetPriority,FSOUND_GetReserved,FSOUND_SetPriority
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetSurround
Setsachannelssurroundsoundstatus.Thissurroundsoundisafakedolbytrickthateffectivelypansthechanneltothecenter,butinvertsthewaveforminonespeakertomakeitsoundfullerorspacier,orlikeitiscomingoutofspacebetweenthe2speakers.Panningisignoredwhilesurroundisineffect.
signedcharF_APIFSOUND_SetSurround(intchannel,signedcharsurround);
Parameters
channel Thechannelnumber/handletochangethesurroundfor.FSOUND_ALLcanalsobeused(seeremarks).
surround Togglevalue-TRUEenablessurroundsoundonthechannel,FALSEdisablesit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetthesurroundsoundmodeofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.---------Notethisonlyworksonsoftwarechannels.___________________
Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetSurround
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetVolume
Setsachannelsvolumelinearly.ThisfunctionISaffectedbyFSOUND_SetSFXMasterVolume.
signedcharF_APIFSOUND_SetVolume(intchannel,intvol);
Parameters
channel Thechannelnumber/handletochangethevolumefor.FSOUND_ALLcanalsobeused(seeremarks)vol Thevolumetoset.Validrangesarefrom0(silent)to255(fullvolume)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsetthevolumeofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_MixBuffers,FSOUND_GetAmplitude,FSOUND_GetSubChannel,FSOUND_GetVolume,FSOUND_Sample_SetDefaults,FSOUND_Sample_SetDefaultsEx,
FSOUND_SetSFXMasterVolume,FSOUND_SetVolumeAbsolute,FSOUND_Stream_Play,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetVolumeAbsolute
Setsachannelsvolumelinearly.ThisfunctionisNOTaffectedbymastervolume.ThisfunctionisusedwhenyouwanttoquieteverythingdownusingFSOUND_SetSFXMasterVolume,butmakeachannelprominent.
signedcharF_APIFSOUND_SetVolumeAbsolute(intchannel,intvol);
Parameters
channel Thechannelnumber/handletochangethevolumefor.FSOUND_ALLcanalsobeused(seeremarks)vol Thevolumetoset.Validrangesarefrom0(silent)to255(fullvolume)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillsettheabsolutevolumeofALLchannelsavailable.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvalueisnotusefulinmostcircumstances.-------------Agoodexampleofthisfunctionbeingusedforagameneedingavoiceover.Ifallthebackgroundsoundsweretooloudanddrownedoutthevoiceover,thereisnowaytofeasiblygothroughallthesfxchannelsandlowerthebackgroundnoisevolumes(somemightbeallocatedbymusic).
SimplylowerthebackgroundnoisewithFSOUND_SetSFXMasterVolume,anduseFSOUND_SetVolumeAbsolutetobringupthevolumeofthevoiceovertofull,andyouwillgetonechannelstandingoutamongsttherest.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetVolume,FSOUND_SetSFXMasterVolume,FSOUND_SetVolume,FSOUND_SetVolumeAbsolute
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetVolume
Returnsthelinearvolumeofthespecifiedchannelbetween0and255
intF_APIFSOUND_GetVolume(intchannel);
Parameters
channel Thechannelnumber/handletogetthevolumefrom.
ReturnValue
Onsuccess,thefollowingvaluesarereturned:0=silentto255=fullvolume.Onfailure,0isreturned.Toquailfyifthisisarealerror,callFSOUND_GetError.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetError,FSOUND_SetVolume,FSOUND_SetVolumeAbsolute
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetAmplitude
Returnsthevolumeofthechannelbasedonallcombinationsofsetvolume,mastervolumeand3dposition.Worksonsoftwareandhardwarevoices.
intF_APIFSOUND_GetAmplitude(intchannel);
Parameters
channel Thechannelnumber/handletogettheamplitudefrom.
ReturnValue
Onsuccess,thefollowingvaluesarereturned:0=silentto255=fullvolume.Onfailure,0isreturned.Toquailfyifthisisarealerror,callFSOUND_GetError.
Remarks
ThisisnotthesameasFSOUND_GetCurrentLevels,asthatfunctiontakestheactualwaveformdataintoaccount.Thisfunctionsimplygivesafinalvolumebasedon3dpositionandvolumesettings.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetCurrentLevels,FSOUND_GetError,FSOUND_SetVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_SetAttributes
Thisupdatesthepositionandvelocityofa3dsoundplayingonachannel.
signedcharF_APIFSOUND_3D_SetAttributes(intchannel,constF_FLOAT_API*pos,constF_FLOAT_API*vel);
Parameters
channel Channelyouwanttoapply3dpositioningto.
posPointertoapositionvector(xyzfloattriplet)oftheemitterinworldspace,measuredindistanceunits.ThiscanbeNULLtoignoreit.
velPointertoavelocityvector(xyzfloattriplet),oftheemittermeasuredindistanceunitsPERSECOND.ThiscanbeNULLtoignoreit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUNDtreats+Xasright,+Yasup,and+Zasforwards.---------A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.---------FSOUNDvectorsexpect3floatsrepresentingxyandzinthatorder.I.e.atypicaldefinitionofavectoris
typedefstruct{floatx;floaty;floatz;}VECTOR;orsimplyanarrayof3floats.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_GetAttributes,FSOUND_3D_GetMinMaxDistance,FSOUND_3D_Listener_GetAttributes,FSOUND_3D_Listener_SetAttributes,FSOUND_3D_Listener_SetCurrent,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_3D_SetMinMaxDistance,FSOUND_3D_SetRolloffFactor,FSOUND_Sample_SetMinMaxDistance,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_SetMinMaxDistance
Setstheminimumandmaximumaudibledistanceforachannel.MinDistanceistheminimumdistancethatthesoundemitterwillceasetocontinuegrowinglouderat(asitapproachesthelistener).Withinthemindistanceitstaysattheconstantloudestvolumepossible.Outsideofthismindistanceitbeginstoattenuate.MaxDistanceisthedistanceasoundstopsattenuatingat.Beyondthispointitwillstayatthevolumeitwouldbeatmaxdistanceunitsfromthelistenerandwillnotattenuateanymore.MinDistanceisusefultogivetheimpressionthatthesoundisloudorsoftin3dspace.Anexampleofthisisasmallquietobject,suchasabumblebee,whichyoucouldsetamindistanceofto0.1forexample,whichwouldcauseittoattenuatequicklyanddissapearwhenonlyafewmetersawayfromthelistener.Anotherexampleisajumbojet,whichyoucouldsettoamindistanceof100.0,whichwouldkeepthesoundvolumeatmaxuntilthelistenerwas100metersaway,thenitwouldbehundredsofmetersmorebeforeitwouldfadeout.-------Insummary,increasethemindistanceofasoundtomakeit'louder'ina3dworld,anddecreaseittomakeit'quieter'ina3dworld.maxdistanceiseffectivelyobsoleteunlessyouneedthesoundtostopfadingoutatacertainpoint.Donotadjustthisfromthedefaultifyoudontneedto.Somepeoplehavetheconfusionthatmaxdistanceisthepointthesoundwillfadeoutto,thisisnotthecase.
signedcharF_APIFSOUND_3D_SetMinMaxDistance(intchannel,F_FLOAT_APImin,F_FLOAT_APImax);
Parameters
sptr Thechanneltohaveitsminimumandmaximumdistanceset.min Thechannelsminimumvolumedistancein"units".Seeremarksformore
onunits.
max Thechannelsmaximumvolumedistancein"units".Seeremarksformoreonunits.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.Passingthiswillsetthemin/maxdistanceonALLchannelsavailable.A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.Thedefaultunitsforminimumandmaximumdistancesare1.0and1000000000.0f.Volumedropsoffatmindistance/distance.TodefinetheminandmaxdistancepersoundandnotperchanneluseFSOUND_Sample_SetMinMaxDistance.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_GetMinMaxDistance,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_Sample_SetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetCurrentPosition
SetsthecurrentpositionofthesoundinSAMPLESnotbytes.
signedcharF_APIFSOUND_SetCurrentPosition(intchannel,unsignedintpos);
Parameters
channel Thechannelnumber/handletohaveitsoffsetorpositionset.
offset TheoffsetinSAMPLESfromthestartofthesoundforthepositiontobesetto.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthissetthecurrentpositionforthesoundonALLchannelsavailable.OnXBOX,GameCubeandPlaystation2hardwarevoicesusingcompresseddata(ieXADPCM,VAGorGCADPCM),thisvaluewillnotbesampleaccurate,butwillberoundedtothenearestcompressionblocksize.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetCurrentPosition,FSOUND_SetFrequency
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetCurrentPosition
Returnsthecurrentplaycursorpositionofthespecifiedchannel.
unsignedintF_APIFSOUND_GetCurrentPosition(intchannel);
Parameters
channel Channelnumber/handletogetthecurrentpositionfrom.
ReturnValue
Onsuccess,theplaycursorpositioninSAMPLESisreturnedforthespecifiedchannel.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Record_StartSample,FSOUND_SetCurrentPosition
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetCurrentSample
Returnsthecurrentsamplebeingplayedonthespecifiedchannel.
FSOUND_SAMPLE*F_APIFSOUND_GetCurrentSample(intchannel);
Parameters
channel Channelnumber/handletogetthecurrentlyplayingsamplefrom.
ReturnValue
Onsuccess,apointertoasamplehandleisreturnedforthespecifiedchannel.Onfailure,NULLisreturned.
Remarks
NotethatcurrentsampledoesnotreturntoNULLwhenasoundhasended.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetCurrentLevels
ReturnsaleftandrightVU/Levelreadingatthecurrentpositionofthespecifiedchannel.Levelsareareonlysupportedforsoftwarechannels.
DLL_APIsignedcharF_APIFSOUND_GetCurrentLevels(intchannel,F_FLOAT_API*l,F_FLOAT_API*r);
Parameters
channel Channelnumber/handletoretrieveleftandrightlevelfrom.l Pointertoafloatingpointvaluetostoreleftlevel,between0and1.r Pointertoafloatingpointvaluetostorerightlevel,between0and1.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Bydefaultthisfunctionisonlypointsampledandnotlatencyadjusted(itwillappeartotriggeraheadofwhenyouhearthesound).Tofixthisandgeta'perfect'setoflevelsinrealtime,useFSOUND_INIT_ACCURATEVULEVELSwithFSOUND_Init.-------------------TogetanoverallVUreadingforallsounds,addallVUvaluesforeachchanneltogether,andthenclipat1.0.Another(harder)wayistowriteadspunitthatreadsfromthemixbufferbeingpassedintoit.Note:Atrue'VU'shouldbesmoothed,butincasepeoplewereaftermoreaccuracythanasmoothedvalue,itwasdecidedtoreturntherawamplitude,and
lettheusersmooththeresultintheirownway.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetAmplitude,FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetFrequency
ReturnsthefrequencyinHZofthespecifiedchannel.
intF_APIFSOUND_GetFrequency(intchannel);
Parameters
channel Thenumber/handletogetthefrequencyfrom.
ReturnValue
Onsuccess,thefrequencyinHZofthespecifiedchannelisreturned.Onfailure,0isreturned.Toquailfyifthisisarealerror,callFSOUND_GetError.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetError,FSOUND_SetFrequency
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetLoopMode
Getstheloopmodeforaparticularchannel.
unsignedintF_APIFSOUND_GetLoopMode(intchannel);
Parameters
channel Thechannelnumber/handletogettheloopmodefrom.
ReturnValue
Onsuccess,theloopmodeisreturned.Onfailure,0isreturned.
Remarks
Thisworksforallchanneltypes,whereassettingitwillnotwork.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Sample_SetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetMixer
Returnsthecurrentlyusedmixertype.
intF_APIFSOUND_GetMixer();
ReturnValue
FSOUND_GetMixerreturnsadefenitionfromFSOUND_MIXERTYPES.SeeFSOUND_MIXERTYPESforvalidparametersanddescriptions.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_MixBuffers,FSOUND_GetMixer,FSOUND_MIXERTYPES,FSOUND_SetMixer
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetMute
Returnsifthechannelspecifiedismutedornot
signedcharF_APIFSOUND_GetMute(intchannel);
Parameters
channel Thechannelnumber/handletogetthemutestatusfrom
ReturnValue
TRUE-ThechannelhasmuteturnedONFALSE-ThechannelhasmuteturnedOFF
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetMute
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetNumSubChannels
Thisfunctionreturnsthenumberofsub-channelsstoredinamulti-channelchannelhandle,whichisonlypossiblewhenplayingbackamultichannel.FSBfile.
intF_APIFSOUND_GetNumSubChannels(intchannel);
Parameters
channelThevaluereturnedbyFSOUND_Stream_Play,FSOUND_Stream_PlayEx,FSOUND_PlaySound,FSOUND_PlaySoundEx.
ReturnValue
Onsuccess,thenumberofsubchannelsisreturnedOnfailure,0isreturned.
Remarks
Amultichannelsound,onlypossiblewiththe.FSBformat,cancontainmultiplesubchannels.Whenamultichannelsoundisplayed,multiplechannelsareallocatedatthesametime.Forexample,a8sounds/streamscanbeinterleavedintoamultichannelFSB.Thisfunctionwouldreturn8,as8realhardware/softwarevoicesareusedduringplayback.FSOUND_GetSubChannelcanbeusedtogetaccesstothesecondarychannels.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetSubChannel,FSOUND_PlaySound,FSOUND_PlaySoundEx,FSOUND_Stream_Play,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetPan
Returnsthelinearpanpositionofthespecifiedchannelbetween0and255
intF_APIFSOUND_GetPan(intchannel);
Parameters
channel Thechannelnumber/handletogetthepanfrom.
ReturnValue
Onsuccess,thefollowingvaluesarereturned:0=fullleftto128=middleto255=fullright,FSOUND_STEREOPANOnfailure,0isreturned.Toquailfyifthisisarealerror,callFSOUND_GetError.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetError,FSOUND_SetLevels,FSOUND_SetPan
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetPaused
Getscurrentpausestatusofthechannel.
signedcharF_APIFSOUND_GetPaused(intchannel);
Parameters
channel Thechannelnumber/handletogetthepausedstatusfrom.
ReturnValue
TRUE-Thechanneliscurrentlypaused.FALSE-Thechannelisrunning.
Remarks
Thisfunctionisusefulforgamesthathaveapausemode,andyoudontwantthesoundstocontinueplaying,butyouwouldlikethemtocontinueonfromwheretheyleftoffwhenyouunpause.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetPaused
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetPriority
Getsasoundchannelspriority.Priorityisusedtodetermineifsoundeffectsshouldreplaceothersoundeffectswhenthechannellimithasbeenreached.SeeFSOUND_SetPriorityformoreinformation.
intF_APIFSOUND_GetPriority(intchannel);
Parameters
channel Thechannelnumber/handletogetthepriorityfrom.
ReturnValue
Onsuccess,thepriorityofthechannelisreturned.Rangesbetween0and255.Onfailure,0isreturned.Toquailfyifthisisarealerror,callFSOUND_GetError.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetError,FSOUND_SetPriority,FSOUND_SetReserved
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetReserved
Getsasoundchannelsreservedstatus.priorityisusedtodetermineifsoundeffectsshouldmuscleoutothersoundeffectswhenthechannellimithasbeenreached.
signedcharF_APIFSOUND_GetReserved(intchannel);
Parameters
channel Thechannelnumber/handletogetthereservedstatusfrom.
ReturnValue
TRUEChannelisreservedandcannotbeselected.FALSEChannelisreservedandcanbeselected.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetPriority,FSOUND_SetReserved
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetSubChannel
ThisfunctionreturnsachannelhandlefromasubchannelwithinamultichannelFSBfile,sothatitcanbemaniuplatedseperately,insteadofcontrollingthewholemultichannelarraywiththeparentchannelthattheuserretrievesfromFSOUND_PlaySoundetc.
intF_APIFSOUND_GetSubChannel(intchannel,intsubchannel);
Parameters
channelThevaluereturnedbyFSOUND_Stream_Play,FSOUND_Stream_PlayEx,FSOUND_PlaySound,FSOUND_PlaySoundEx.
subchannel Offsetfromtheparentchannelintothemultichannelarray.
ReturnValue
Onsuccess,arawchannelhandleisreturned.Onfailure,-1isreturned.
Remarks
Amultichannelsound,onlypossiblewiththe.FSBformat,cancontainmultiplesubchannels.Whenamultichannelsoundisplayed,multiplechannelsareallocatedatthesametime.Normallyyoucanjustusetheparenthandle,andthingslikeFSOUND_SetVolumewillaffectallsubchannelsatthesametime.Withthisfunction,youcangetaccesstotherawsubchannelstoallowmanipulationofeachvoiceseperatelywithinthemultichannelarray.Forexample,a8sounds/streamscanbeinterleavedintoamultichannelFSB.Ifyouspecifiedasubchannelof7,itwouldreturnachannelhandletothelastchannelinthemultichannelarray.
Asubchannelindexof0istheparentchannel,andthesameasthevoicepassedinisaparameter.ThenumberofsubchannelswithinamultichannelvoicecanbedeterminedwithFSOUND_GetNumSubChannels.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetNumSubChannels,FSOUND_PlaySound,FSOUND_PlaySoundEx,FSOUND_SetVolume,FSOUND_Stream_Play,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetSurround
Returnsthesurroundsoundstatusofthespecifiedchannel.
signedcharF_APIFSOUND_GetSurround(intchannel);
Parameters
channel Thechannelnumber/handletogetthesurroundsoundstatusfrom.
ReturnValue
Onsuccess,TRUEisreturnedmeaningthechannelhassurroundsoundturnedONOnfailure,FALSEisreturnedmeaningthechannelhassurroundsoundturnedOFF
Remarks
Surroundsoundonlyworksonsoftwarechannels.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetSurround
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_IsPlaying
Returnsifthechanneliscurrentlyplayingornot.
signedcharF_APIFSOUND_IsPlaying(intchannel);
Parameters
channel Channelnumber/handletogettheplayingstatusfrom.
ReturnValue
TRUEchanneliscurrentlyactiveandplayingFALSEchanneliscurrentlyidle.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_GetAttributes
signedcharF_APIFSOUND_3D_GetAttributes(intchannel,F_FLOAT_API*pos,F_FLOAT_API*vel);
Parameters
channel Channelyouwanttoget3dinformationfrom
posPointertoapositionvector(xyzfloattriplet)oftheemitterinworldspace,measuredindistanceunits.ThiscanbeNULLtoignoreit.
velPointertoavelocityvector(xyzfloattriplet),oftheemittermeasuredindistanceunitsPERSECOND.ThiscanbeNULLtoignoreit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_SetAttributes,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_Sample_SetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_GetMinMaxDistance
Returnsthecurrentminandmaxdistanceforachannel.
DLL_APIsignedcharF_APIFSOUND_3D_GetMinMaxDistance(intchannel,F_FLOAT_API*mindistance,F_FLOAT_API*maxdistance);
Parameters
channel Channelnumber/handletoretrieveminandmaxdistancefrom.mindistance Pointertoafloatingpointvaluetostoremindistance.maxdistance Pointertoafloatingpointvaluetostoremaxdistance.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_SetAttributes,FSOUND_3D_SetMinMaxDistance,FSOUND_Sample_SetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_Listener_GetAttributes
Thisretrievestheposition,velocityandorientationofa3dsoundlistener.
voidF_APIFSOUND_3D_Listener_GetAttributes(F_FLOAT_API*pos,F_FLOAT_API*vel,F_FLOAT_API*fx,F_FLOAT_API*fy,F_FLOAT_API*fz,F_FLOAT_API*tx,F_FLOAT_API*ty,F_FLOAT_API*tz);
Parameters
posPointertoapositionvector(xyzfloattriplet),ofthelistenerinworldspace,measuredindistanceunits.ThiscanbeNULLtoignoreit.
velPointertoavelocityvector(xyzfloattriplet),ofthelistenermeasuredindistanceunitsPERSECOND.ThiscanbeNULLtoignoreit.
fx pointertoxcomponentofaFORWARDunitlengthorientationvectorThiscanbeNULLtoignoreit.
fy pointertoycomponentofaFORWARDunitlengthorientationvectorThiscanbeNULLtoignoreit.
fz pointertozcomponentofaFORWARDunitlengthorientationvectorThiscanbeNULLtoignoreit.
txpointertoxcomponentofaTOPorupwardsfacingunitlengthorientationvectorThiscanbeNULLtoignoreit.
typointertoycomponentofaTOPorupwardsfacingunitlengthorientationvectorThiscanbeNULLtoignoreit.pointertozcomponentofaTOPorupwardsfacingunitlengthorientation
tz vectorThiscanbeNULLtoignoreit.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUNDtreats+Xasright,+Yasup,and+Zasforwards.(lefthanded)Tomaptoyourowncoordinatesystem,flipandexchangethesevalues.Forexampleifyouwantedtouserighthandedcoordinates,youwouldnegatetheZvalueofyourowndirectionvector.OrientationvectorsareexpectedtobeofUNITlength.Thismeansthemagnitudeofthevectorshouldbe1.0f.---------A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.---------PleaseremembertouseunitsPERSECOND,NOTPERFRAMEasthisisacommonmistake.Donotjustuse(pos-lastpos)fromthelastframe'sdataforvelocity,asthisisnotcorrect.YouneedtotimecompensateitsoitisgiveninunitsperSECOND.Youcouldalteryourpos-lastposcalculationtosomethinglikethis.vel=(pos-lastpos)/(timetakensincelastframeinseconds).I.e.at60fpstheformulawouldlooklikethisvel=(pos-lastpos)/0.0166667.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_SetCurrent,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_3D_SetDopplerFactor
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_Listener_SetAttributes
Thisupdatestheposition,velocityandorientationofa3dsoundlistener.
voidF_APIFSOUND_3D_Listener_SetAttributes(constF_FLOAT_API*pos,constF_FLOAT_API*vel,F_FLOAT_APIfx,F_FLOAT_APIfy,F_FLOAT_APIfz,F_FLOAT_APItx,F_FLOAT_APIty,F_FLOAT_APItz);
Parameters
posPointertoapositionvector(xyzfloattriplet),ofthelistenerinworldspace,measuredindistanceunits.ThiscanbeNULLtoignoreit.
velPointertoavelocityvector(xyzfloattriplet),ofthelistenermeasuredindistanceunitsPERSECOND.ThiscanbeNULLtoignoreit.
fx xcomponentofaFORWARDunitlengthorientationvectorfy ycomponentofaFORWARDunitlengthorientationvectorfz zcomponentofaFORWARDunitlengthorientationvectortx xcomponentofaTOPorupwardsfacingunitlengthorientationvectorty ycomponentofaTOPorupwardsfacingunitlengthorientationvectortz zcomponentofaTOPorupwardsfacingunitlengthorientationvector
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUNDtreats+Xasright,+Yasup,and+Zasforwards.(lefthanded)Tomaptoyourowncoordinatesystem,flipandexchangethesevalues.Forexampleifyouwantedtouserighthandedcoordinates,youwouldnegatetheZvalueofyourowndirectionvector.OrientationvectorsareexpectedtobeofUNITlength.Thismeansthemagnitudeofthevectorshouldbe1.0f.---------A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.---------PleaseremembertouseunitsPERSECOND,NOTPERFRAMEasthisisacommonmistake.Donotjustuse(pos-lastpos)fromthelastframe'sdataforvelocity,asthisisnotcorrect.YouneedtotimecompensateitsoitisgiveninunitsperSECOND.Youcouldalteryourpos-lastposcalculationtosomethinglikethis.vel=(pos-lastpos)/(timetakensincelastframeinseconds).Ieat60fpstheformulawouldlooklikethisvel=(pos-lastpos)/0.0166667.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_GetAttributes,FSOUND_3D_Listener_SetCurrent,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor,FSOUND_3D_SetDopplerFactor,FSOUND_3D_SetRolloffFactor,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_Listener_SetCurrent
Setsthecurrentlistenernumberandnumberoflisteners,iftheuserwantstosimulatemultiplelistenersatonce.Thisisusuallyforthecaseinagamewherethereisasplitscreenandmultipleplayersplayingthegameatonce.
voidF_APIFSOUND_3D_Listener_SetCurrent(intcurrent,intnumlisteners);
Parameters
current Currentlistenernumber.Listenercommandsfollowingthisfunctioncallwillaffectthislistenernumber.(default:0)
numlisteners Numberoflistenersactive.(default:1)
ReturnValue
void
Remarks
OnlyaffectsFSOUND_3D_Listener_SetAttributesandFSOUND_3D_Listener_GetAttributes.Settingmorethan1listenerwillturnoffdopplerandcauseallpanningtobeignoredand3dsoundwillcomefromthecenter(mono).-------------ForWIN32FSOUND_HW3Dbasedsounds,channelsmusthavetheirattributessetafterthisfunctioniscalled,otherwiseunexpectedaudibleresultsmayoccur.ForexampleyoucannotupdateyourchannelswithFSOUND_3D_SetAttributes,callFSOUND_3D_Listener_SetCurrent,andthencallFSOUND_Updateandexpectallthevoicestoupdatecorrectly.ThecorrectorderistocallFSOUND_3D_Listener_SetCurrentfirst,thenupdateallchannelswithFSOUND_3D_SetAttributes,thencallFSOUND_Update.
ThisisduetoDirectSoundnotsupportingmultiplelisteners,soFMODhastodoinversetransformsonthepositionstosimulateitwithonelistener,atthetimeFSOUND_3D_SetAttributesiscalled.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_GetAttributes,FSOUND_3D_Listener_SetAttributes,FSOUND_3D_Listener_SetCurrent,FSOUND_3D_SetAttributes,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_SetDistanceFactor
SetsFMOD's3denginerelativedistancefactor,comparedto1.0meters.Itequatesto'howmanyunitspermeter'doesyourenginehave.
voidF_APIFSOUND_3D_SetDistanceFactor(F_FLOAT_APIfactor);
Parameters
scale 1.0=1meterunits.Ifyouareusingfeetthenscalewouldequal3.28.
ReturnValue
void
Remarks
Bydefaultthisvalueissetat1.0,ormeters.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_GetAttributes,FSOUND_3D_Listener_GetAttributes,FSOUND_3D_Listener_SetAttributes,FSOUND_3D_SetAttributes,FSOUND_3D_SetMinMaxDistance,FSOUND_3D_SetRolloffFactor,FSOUND_Sample_GetMinMaxDistance,FSOUND_Sample_SetMinMaxDistance
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_SetDopplerFactor
Setsthedopplershiftscalefactor.
voidF_APIFSOUND_3D_SetDopplerFactor(F_FLOAT_APIscale);
Parameters
scale Dopplershiftscale.DefaultvalueforFSOUNDis1.0f
ReturnValue
void
Remarks
Thisisageneralscalingfactorforhowmuchthepitchvariesduetodopplershifting.Increasingthevalueabove1.0exaggeratestheeffect,whereasloweringitreducestheeffect.0removestheeffectalltogether.FMOD'sspeedofsoundataDopplerFactorof1.0is340m/s.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_GetAttributes,FSOUND_3D_Listener_SetAttributes,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_3D_SetRolloffFactor
Setstheglobalattenuationrollofffactor.Normallyvolumeforasamplewillscaleat1/distance.Thisgivesalogarithmicattenuationofvolumeasthesourcegetsfurtheraway(orcloser).Settingthisvaluemakesthesounddropofffasterorslower.Thehigherthevalue,thefastervolumewillfalloff.Thelowerthevalue,thesloweritwillfalloff.Forexamplearollofffactorof1willsimulatetherealworld,whereasavalueof2willmakesoundsattenuate2timesquicker.
voidF_APIFSOUND_3D_SetRolloffFactor(F_FLOAT_APIfactor);
Parameters
rolloff Therollofffactortosetforthissample.Validrangesare0to10.
ReturnValue
void
Remarks
---------A'distanceunit'isspecifiedbyFSOUND_3D_SetDistanceFactor.Bydefaultthisissettometerswhichisadistancescaleof1.0.SeeFSOUND_3D_SetDistanceFactorformoreonthis.---------Thedefaultrollofffactoris1.0.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_3D_Listener_SetAttributes,FSOUND_3D_SetAttributes,FSOUND_3D_SetDistanceFactor
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_AddSyncPoint
Addsausersynchronizationcallbackpointintoastream.
DLL_APIFSOUND_SYNCPOINT*F_APIFSOUND_Stream_AddSyncPoint(FSOUND_STREAM*stream,unsignedintpcmoffset,constchar*name);
Parameters
stream Thestreamtoaddasyncpointto.pcmoffset OffsetinSAMPLES(notbytes).
name Thenameofthesyncpoint,whichwillbepassedintothesynccallbackwhenitistriggered.
ReturnValue
Onsuccess,asyncpointhandleisreturned.Onfailure,NULLisreturned.
Remarks
IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_DeleteSyncPoint,FSOUND_Stream_GetNumSyncPoints,FSOUND_Stream_GetSyncPoint,FSOUND_Stream_GetSyncPointInfo,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Close
ShutsdownandreleasesanFSOUNDstream.
signedcharF_APIFSOUND_Stream_Close(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtobecloseddown.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.Theonlyexceptiontothisruleisforinternetstreams-thisfunctionwillsuccessfullycloseaninternetstreamthathasbeenopenedwithFSOUND_NONBLOCKINGbeforethatstreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_Create,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_PlayEx,
FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Create
Createsauserdefinablestreamfilereadyforplaying.Thestreamisservicedthroughacallback.
DLL_APIFSOUND_STREAM*F_APIFSOUND_Stream_Create(FSOUND_STREAMCALLBACKcallback,intlenbytes,unsignedintmode,intsamplerate,void*userdata);
Parameters
callback Apointertoauserdefinedstreamcallbackfunction.
lenbytes SizeofthedatainBYTESthecallbackwillrequiretobewrittentothebuffer.
mode Descriptionoftherawsampledatabeingopened.seeFSOUND_MODESforadescriptionofthesemodes.
samplerate Rateofplayback.Becarefulyoudontsetthesampleratetoohighsothatthestreamservicer(ietheharddisk)maynotkeepup.
userdata Userdatathatispassedbackintothestreamcallbackwhentriggered.
ReturnValue
Onsuccess,apointertoanopenedstreamisreturned.Onfailure,NULLisreturned.
Remarks
ThismethodonlysupportsSIGNEDRAWstreamstobewrittentothebuffersuppliedbythecallback.Theycanbe8or16bit,monoorstereo.'lenbytes'mayberoundeddowntothenearestsamplealignmentinbytes.Ieif
youspecified1001bytesfora16bitstereosamplestream,lenwouldreturn1000inthecallback.(250samples*4bytespersample)PlayStation2IMPORTANT!:ifFSOUND_SendDataisNOTcalledfromthestreamcallbacktheIOPwillhangbecauseitiswaitingforthiscommandtobeexecutedbeforeitcanunlockitsbuffer.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_SendData,FSOUND_Stream_Close,FSOUND_Stream_Play,FSOUND_Stream_PlayEx,FSOUND_Stream_SetBufferSize,FSOUND_Stream_Stop,FSOUND_STREAMCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_CreateDSP
AllowstheusertoaddacustomDSPunittoastream.
FSOUND_DSPUNIT*F_APIFSOUND_Stream_CreateDSP(FSOUND_STREAM*stream,FSOUND_DSPCALLBACKcallback,intpriority,void*userdata);
Parameters
stream ThestreampointertohaveaDSPattachedto.callbackAstandardFSOUND_DSPCALLBACKfunctioncallbackpointer.priority Thepriority,orpositionwithinthestreamsDSPchaintoplacetheunit.param AuserparameterthatgetspassedbackintotheDSPcallback.
ReturnValue
Onsuccess,ahandletotheFSOUND_DSPUNITisreturned.AllDSPfunctionsareperformableonthis.Onfailure,0isreturned.
Remarks
ThepriorityforastreamDSPunitisnotrelatedtotheprioritiesspecifiedinfmod.h.Theprioritiesareanythingfom0onwards,andALWAYScomeafterdataisread/decodedforthestream.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSPCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_DeleteSyncPoint
Removesausersynchronizationcallbackpointfromastream.
DLL_APIsignedcharF_APIFSOUND_Stream_DeleteSyncPoint(FSOUND_SYNCPOINT*point);
Parameters
point Thesyncpointtoremove
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_AddSyncPoint,FSOUND_Stream_GetNumSyncPoints,FSOUND_Stream_GetSyncPoint,FSOUND_Stream_GetSyncPoints,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_FindTagField
Findatagfieldassociatedwithanopenstreambynameandtype.
signedcharF_APIFSOUND_Stream_FindTagField(FSOUND_STREAM*stream,inttype,constchar*name,void**value,int*length);
Parameters
stream Thestreamtogetthetagfieldfrom.type Thetypeofthetagfieldtoretrieve.SeeFSOUND_TAGFIELD_TYPE.name Thenameofthetagfieldtoretrieve.value Pointertoavariablethatwillreceiveapointertothetagfielddata.length Pointertoavariablethatwillreceivethelengthofthetagfielddata.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Stream_GetNumTagFields,FSOUND_Stream_GetTagField,FSOUND_TAGFIELD_TYPE
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetLength
ReturnsthesizeofthestreaminBYTES.
intF_APIFSOUND_Stream_GetLength(FSOUND_STREAM*stream);
Parameters
streamApointertothestreamtohaveitslengthreturned.
ReturnValue
Onsuccess,thesizeofthestreaminBYTESisreturned.Onfailure,0isreturned.
Remarks
Positionfunctionsforstreamsworkinbytesnotsamples.-----ThisfunctionisnotsupportedforURLbasedstreamsovertheinternet.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetLengthMs,FSOUND_Stream_GetPosition,FSOUND_Stream_Open,FSOUND_Stream_SetPosition,FSOUND_Stream_SetTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetLengthMs
ReturnsthesizeofthestreaminMILLISECONDS.
intF_APIFSOUND_Stream_GetLengthMs(FSOUND_STREAM*stream);
Parameters
streamApointertothestreamtohaveitstotaldurationreturned.
ReturnValue
Onsuccess,thesizeofthestreaminMILLISECONDSisreturned.Onfailure,0isreturned.
Remarks
FSOUND_MPEGACCURATEwillneedtobeusedwithmp3filesthatuseVBRencodingformoreaccuracy.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetLength,FSOUND_Stream_Open
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetMode
Retrievesthemodeofthestream.
unsignedintF_APIFSOUND_Stream_GetMode(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtogetthemodefrom.
ReturnValue
Remarks
IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_SetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetNumSubStreams
Returnsthenumberofsubstreamsinsideamulti-streamFSBbankfile.
intF_APIFSOUND_Stream_GetNumSubStreams(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtoquery.
ReturnValue
Onsuccess,thenumberofFSBsubstreamsisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_SetSubStream,FSOUND_Stream_SetSubStreamSentence
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetNumSyncPoints
Returnsthenumberofsyncpointswithinastream.
DLL_APIintF_APIFSOUND_Stream_GetNumSyncPoints(FSOUND_STREAM*stream);
Parameters
stream Thestreamtorequestthenumberofsyncpointsfrom.
ReturnValue
Onsuccess,Thenumberofsyncpointsinastreamarereturned.Onfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_AddSyncPoint,FSOUND_Stream_DeleteSyncPoint,FSOUND_Stream_GetSyncPointInfo,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetNumTagFields
Getthenumberoftagfieldsassociatedwiththespecifiedstream.
signedcharF_APIFSOUND_Stream_GetNumTagFields(FSOUND_STREAM*stream,int*num);
Parameters
stream Thestreamtogetthenumberoftagfieldsfor.
num Pointertoavariablethatwillreceivethenubmeroftagfieldsassociatedwiththespecifiedstream.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Stream_FindTagField,FSOUND_Stream_GetTagField
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetOpenState
IfastreamisopenedwithFSOUND_NONBLOCKING,thisfunctionreturnsthestateoftheopeningstream.
intF_APIFSOUND_Stream_GetOpenState(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtogettheopenstatefrom.
ReturnValue
0=streamisopenedandready.-1=streamhandlepassedinisinvalid.-2=streamisstillopeningorperformingaSetSubStreamcommand.-3=streamfailedtoopen.(filenotfound,outofmemoryorothererror).-4=connectingtoremotehost(internetstreamsonly)-5=streamisbufferingdata(internetstreamsonly)
Remarks
AblockingstreamwillreturnNULLfromFSOUND_Stream_Opensoareturnvalueof-3isredundantinthiscase.Ablockingstreamwillalwaysreturn0ifitisnotNULL.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_Open,FSOUND_Stream_SetSubStream,FSOUND_Stream_SetSubStreamSentence
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetPosition
ReturnsthecurrentFILEpositionofthestreamofthestreaminBYTES.
unsignedintF_APIFSOUND_Stream_GetPosition(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtohaveitspositionreturned.
ReturnValue
Onsuccess,thecurrentstream'spositioninBYTESisreturned.Onfailure,0isreturned.
Remarks
Positionfunctionsforstreamsworkinbytesnotsamples.Positioninformationisalsobasedonthecurrentfileposition,nottheactualplayingposition,soifthestreamisonlyupdatedevery100ms,thenthepositionwillonlybeupdatedevery100ms.-----ThisfunctionisnotsupportedforURLbasedstreamsovertheinternetorCDDAstreams___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetLength,FSOUND_Stream_SetPosition,FSOUND_Stream_SetTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetSample
ReturnstheFSOUND_SAMPLEdefinitionthatthestreamusesinternally.Youcanusethistogetavarietyofinformationlikethesongsname,defaultspeedandmore.
FSOUND_SAMPLE*F_APIFSOUND_Stream_GetSample(FSOUND_STREAM*stream);
Parameters
streamApointertothestreamtohaveitsinternalsamplepointerreturned.
ReturnValue
Onsuccess,ahandletotheFSOUND_SAMPLEdefinitionisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetSyncPoint
Obtainsasyncpointbyindex.Thisisusefulwhenyouhaventcreatedyourown,ieitcamefromawavfile.
DLL_APIFSOUND_SYNCPOINT*F_APIFSOUND_Stream_GetSyncPoint(FSOUND_STREAM*stream,intindex);
Parameters
stream Thestreamtorequestthesyncpointfrom.index Thesyncpointoffsetintothestream.
ReturnValue
Onsuccess,ahandletoasyncpointisreturned.Onfailure,NULLisreturned.
Remarks
Pointsareloadedinorderofoffset,sotheindexwillrepresentthesmallestpointtothelargest.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_AddSyncPoint,FSOUND_Stream_DeleteSyncPoint,FSOUND_Stream_GetSyncPointInfo,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetSyncPointInfo
Retrievesthenameandpcmoffsetinsamplesforaspecifiedsyncpoint.
char*F_APIFSOUND_Stream_GetSyncPointInfo(FSOUND_SYNCPOINT*point,unsignedint*pcmoffset);
Parameters
point Thehandletothesyncpointtoretrieveinformationfrom.
pcmoffset ApointertoanintegerthatwillreceivethesyncpointoffsetinpcmSAMPLES.AvalueofNULLwillbeignored.
ReturnValue
Onsuccess,thenameofthesyncpointisreturnedasastring.Onfailure,NULLisreturned.
Remarks
ConvertsamplestotimebydividingthePCMvaluebythedefaultsamplerate.Thiswouldgiveyouthevalueinseconds.Multiplyby1000togetmilliseconds.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_AddSyncPoint,FSOUND_Stream_GetNumSyncPoints,FSOUND_Stream_GetSyncPoint,FSOUND_Stream_SetSyncCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetTagField
Getatagfieldassociatedwithanopenstream.
signedcharF_APIFSOUND_Stream_GetTagField(FSOUND_STREAM*stream,intnum,int*type,char**name,void**value,int*length);
Parameters
stream Thestreamtogetthetagfieldfrom.num Thenumberofthetagfieldtoretrieve.
type Pointertoavariablethatwillreceivethetypeofthetagfieldthatwasretrieved.SeeFSOUND_TAGFIELD_TYPE.
name Pointertoavariablethatwillreceivethenameofthetagfieldasanull-terminatedASCIIstring.
value Pointertoavariablethatwillreceiveapointertothetagfielddata.length Pointertoavariablethatwillreceivethelengthofthetagfielddata.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Donotattempttomodifyorfreeanypointersreturnedbythisfunction.Ifthisfunctionreturnssuccessfully,"value"willcontainapointertoapieceoftag-field-specificdata-donotassumeitwillalwayspointtoanull-terminatedASCIIstring.___________________
Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Stream_FindTagField,FSOUND_Stream_GetNumTagFields,FSOUND_TAGFIELD_TYPE
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_GetTime
Returnsthecurrenttimeoffsetinstreaminmilliseconds.
intF_APIFSOUND_Stream_GetTime(FSOUND_STREAM*stream);
Parameters
stream Pointertothestreamtogetthecurrentlyplayingtimeoffset.
ReturnValue
Onsuccess,thecurrentstream'spositioninmillisecondsisreturned.Onfailure,0isreturned.
Remarks
FSOUND_MPEGACCURATEwillneedtobeusedwithmp3filesthatuseVBRencodingformoreaccuracy.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_SetTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_GetBufferProperties
Getsbuffersizeandthresholdsthatwillbeusedwhenopeningnewinternetstreams.
signedcharF_APIFSOUND_Stream_Net_GetBufferProperties(int*buffersize,int*prebuffer_percent,int*rebuffer_percent);
Parameters
buffersize Pointertosizeinbytesofthestreamingbuffer.
prebuffer_percent Pointertohowmuchtoprebufferwhenastreamisfirstopened.Valuesareexpressedasapercentagefrom1to99.
rebuffer_percentPointertohowmuchtorebufferafterastreamhassufferedabufferunderrun.Valuesareexpressedasapercentagefrom1to99.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thisfunctionreturnsthevaluesthatwillbeusedforsubsequentinternetstreamopens.Internetstreamsthatalreadyexistmayhavedifferentvalues.AnyoftheparameterscanbeNULL,inwhichcase,theywillbeignored.___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Net_GetLastServerStatus,
FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_GetLastServerStatus
ThisfunctionreturnsapointertothelastHTTPstatuslinethatwasreceivedwhenconnectingtoaninternetstream.
char*F_APIFSOUND_Stream_Net_GetLastServerStatus();
ReturnValue
PointertothelastHTTPstatusline(null-terminatedASCIIstring)thatwasreceived.
Remarks
Theresultofthisfunctionshouldbeusedforinformationalpurposesonly.ThisfunctionprovidesnofacilitytodiscoverwhichinternetstreamthelastHTTPstatuspertainstowhentherearemultipleinternetstreamsopen.___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_GetStatus
Getvariousstatusinformationforaninternetstream.
signedcharF_APIFSOUND_Stream_Net_GetStatus(FSOUND_STREAM*stream,int*status,int*bufferused,int*bitrate,unsignedint*flags);
Parameters
stream Thestreamtogetstatusinformationon.
status Pointertoavariablethatwillreceiveastatusvalue.SeeFSOUND_STREAM_NET_STATUS.
bufferused Pointertoavariablethatwillreceivethepercentageofthereadbufferthatiscurrentlyinuse.
bitrate Pointertoavariablethatwillreceivethecurrentbitrateofthestream.
flags Pointertoavariablethatwillreceiveaflagsfielddescribingprotocolandformatinformation.SeeFSOUND_STATUS_FLAGS.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_STATUS_FLAGS,FSOUND_Stream_Close,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_STREAM_NET_STATUS,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_SetBufferProperties
Setsbuffersizeandthresholdstousewhenopeningnewinternetstreams.
signedcharF_APIFSOUND_Stream_Net_SetBufferProperties(intbuffersize,intprebuffer_percent,intrebuffer_percent);
Parameters
buffersize Sizeinbytesofthestreamingbuffer.Makeitbiggertoavoidbufferunderruns.(Default=64000)
prebuffer_percentHowmuchtoprebufferwhenastreamisfirstopened.Valuesareexpressedasapercentagefrom1to99.(Default=95)
rebuffer_percentHowmuchtorebufferafterastreamhassufferedabufferunderrun.Valuesareexpressedasapercentagefrom1to99.(Default=95)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
CallthisfunctionbeforeFSOUND_Stream_Open.Thisfunctionhasnoeffectoninternetstreamsthatarealreadyopen.___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus
,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_SetMetadataCallback
Setametadatacallbackforaninternetstream.
signedcharF_APIFSOUND_Stream_Net_SetMetadataCallback(FSOUND_STREAM*stream,FSOUND_METADATACALLBACKcallback,void*userdata);
Parameters
stream Thestreamtosetthemetadatacallbackfor.callback Pointertothemetadatacallbackfunctiontoattachtothisstream.
userdata User-definedvaluethatwillbepassedtothesuppliedmetadatacallbackfunctionintheuserdataparameter.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thesuppliedmetadatacallbackfunctionwillbecalledeachtimethespecifiedinternetstreamreceivesachunkofmetadata.Donotdoanytime-consumingprocessinginametadatacallbackfunctionornetworksubsystemperformancemaydegrade.Donotattempttomodifyorfreeanymemorypassedtoametadatacallbackfunction.___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_METADATACALLBACK,FSOUND_Stream_Close,
FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_SetProxy
Setaproxyservertouseforallsubsequentinternetconnections.
signedcharF_APIFSOUND_Stream_Net_SetProxy(constchar*proxy);
Parameters
proxy
Thenameofaproxyserverinhost:portformate.g.www.fmod.org:8888(defaultstoport80ifnoportisspecified).Basicauthenticationissupported.Touseit,thisparametermustbeinuser:password@host:portformate.g.bob:[email protected]:8888SetthisparametertoNULLifnoproxyisrequired.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Open
Opensanaudiofile/url/cdreadyforstreaming.Thisopensthefileinpreparationforplaybackinreal-time,withoutneedingtodecodethewholefileintomemoryfirst.
FSOUND_STREAM*F_APIFSOUND_Stream_Open(constchar*name_or_data,unsignedintmode,intoffset,intlength);
Parameters
name_or_data Nameofthefiletoopen,orpointertodataifFSOUND_LOADMEMORYisused.
mode
Simpledescriptionofhowtoplaythefile.ForallformatsexceptrawPCM,FSOUND_LOOP*,FSOUND_HW3D,FSOUND_HW2D,FSOUND_2D,FSOUND_LOADMEMORY,FSOUND_LOADRAW,FSOUND_MPEGACCURATE,FSOUND_NONBLOCKINGflagsaretheonlyonessupported.
offsetOptional.0bydefault.If>0,thisvalueisusedtospecifyanoffsetinafile,sofmodwillseekbeforeopening.lengthmustalsobespecifiedifthisvalueisused.
length
Optional.0bydefault.If>0,thisvalueisusedtospecifythelengthofamemoryblockwhenusingFSOUND_LOADMEMORY,oritisthelengthofafileorfilesegmentiftheoffsetparameterisused.OnPlayStation2thismustbe16bytealignedformemoryloading.
ReturnValue
Onsuccess,apointertoanopenedstreamisreturned.Onfailure,NULLisreturned.
Remarks
WAVsupportsupportswindowscodeccompressedWAVfiles.--------------FSOUND_MPEGACCURATEistobeusedcautiously.Toopenafilewiththismodeturnedon,ithastoscanthewholeMP3first.Thiscantakeseveralsecondsifthefileisbig,ortheharddisk/cpuisslow.Awaytospeedupthisprocesswouldbetoloadthecompressedmp3intomemoryfirst,andusetheFSOUND_LOADMEMORYflagwiththisfunction.--------------NOTE:Internetstreamlimitations-URLsmuststartwith"http://".-TheonlysupportedformatsforHTTPstreamsareMP3(musthave.mp3extension)andOggVorbis(musthave.oggextension).--------------FSBstreamingisnotsupportediftheformatfromFSBankis'Retainoriginalformat'.OnPCplatforms,onlyPCMandADPCMFSBfilesareallowed.--------------Note,onPlayStation2youcannotuseFSOUND_LOADMEMORY,youmayuseFSOUND_LOADMEMORYIOPthough.--------------WhenopeningwiththeFSOUND_NONBLOCKINGflag,thisfunctionalwayssucceedsatthepointofbeingcalled.Itwillalwaysreturnavalidchannelhandle,eventhoughthefilemightfailtoopen.TodetermineanyerrorinnonblockingmodeuseFSOUND_Stream_GetOpenState.--------------NOTE:CDDAStreaming(Win32only!)ToopenaCDforCDDAstreaming,specifythedriveletterofaCDdrivee.g.FSOUND_Stream_Open("d:",0,0,0);FSOUND_Stream_Openwillcreateastreamwithmultiplesubstreams,oneforeachCDtrack.UseFSOUND_Stream_SetSubStreamtoselectwhichCDtracktoplay.AnumberofoptionscanbepassedtoFSOUND_Stream_Openalongwiththedriveletter.Theyare:*?e.g.FSOUND_Stream_Open("d:*?",0,0,0);Thisoptionwillcauseatagfieldcalled"CD_DEVICE_INFO"tobeattachedtothestream.ThistagfieldcontainsinformationonthespecifiedCDdevice.*!e.g.FSOUND_Stream_Open("d:*!",0,0,0);Thisoptionwillcausethe
streamtobeopenedin"quickopen"mode.Whenastreamisopenedinthismode,callstoFSOUND_Stream_SetSubStreamwillreturnimmediatelymakingitquicktoselecteachsubstreaminturnandgetthelengthofeachCDtrack.Notethatastreaminquickopenmodecannotbeplayed!Usequickopenmodetogettracklengthsandthenre-openthestreamwithoutquickopenmodetoactuallyplayit.*je.g.FSOUND_Stream_Open("d:*j",0,0,0);ThisoptionturnsjittercorrectionOFF.*ae.g.FSOUND_Stream_Open("d:*a",0,0,0);ThisoptionwillforceFMODtouseASPItoaccessthespecifiedCDdriveasopposedtoNTSCSI.ItshouldgenerallyonlybeusedasalastresortifFMODisunabletoaccessdrivesthatareknowntobeworkingwithotherprograms.Optionscanbecombinedlikeso:FSOUND_Stream_Open("d:*?!j",0,0,0);IfanonblockingCDDAstreamfailstoopen,atagfieldcalled"CD_ERROR"willbeattachedtothestream.Thistagfieldcontainsatextualdescriptionofwhythestreamfailedtoopen.NOTE:FMODwillalwaystrytousenativeNTSCSIsupporttocommunicatewithCDdevicesbeforetryingtouseASPI,unlessthe"*a"optionisspecified,inwhichcaseFMODwillonlytrytouseASPI.Unlikeinpre-3.73versions,FMODcannowaccessallCDdriveswhenusingASPI.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_Close,FSOUND_Stream_GetLength,FSOUND_Stream_GetLengthMs,FSOUND_Stream_GetOpenState,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetInfo,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_OpenFromHandle,FSOUND_Stream_Play,FSOUND_Stream_PlayEx,FSOUND_Stream_SetBufferSize,FSOUND_Stream_SetSubStream,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Play
Startsapre-openedstreamplaying.
intF_APIFSOUND_Stream_Play(intchannel,FSOUND_STREAM*stream);
Parameters
channel
0+Thechannelindexinthechannelpool.ThismustnotexceedthemaximumnumberofchannelsallocatedwithFSOUND_InitFSOUND_FREEChoosesafreechanneltoplayin.Ifallchannelsareusedthenitselectsachannelwithasampleplayingthathasalowerprioritythanthesampletobeplayed.
stream Pointertothealreadyopenedstreamtobeplayed.
ReturnValue
Onsuccess,thechannelhandlethestreamisplayinginisreturned.Onfailure,-1isreturned.
Remarks
Whenastreamstartstoplay,itinheritsaspecialhighpriority(256).Itcannotberejectedbyothersoundeffectchannelsinthenormalfashionastheusercanneversetapriorityabove255normally.--------------IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.--------------FSBstreamingisnotsupportediftheformatfromFSBankis'Retainoriginalformat'.OnPCplatforms,onlyPCMandADPCMFSBfilesareallowed.
--------------FSOUND_STEREOPANisrecommendedforstereostreamsifyoucallFSOUND_SetPan.Thisputstheleftandrightchanneltofullvolume.Otherwiseanormalpanwillgivehalfvolumeforleftandright.SeeFSOUND_SetPanformoreinformationonthis.--------------Youcanusenormalchannelbasedcommands(suchasFSOUND_SetVolumeetc)onthereturnhandle,asitisachannelhandle.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetNumSubChannels,FSOUND_GetSubChannel,FSOUND_Init,FSOUND_SetPan,FSOUND_SetVolume,FSOUND_Stream_Close,FSOUND_Stream_Create,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_PlayEx,FSOUND_Stream_SetEndCallback,FSOUND_Stream_SetLoopCount,FSOUND_Stream_SetSubStream,FSOUND_Stream_SetSubStreamSentence,FSOUND_Stream_SetSyncCallback,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_PlayEx
ExtendedfeaturedversionofFSOUND_Stream_Play.Addedfunctionalityincludestheabilitytostartthestreampaused.Thisallowsattributesofastreamchanneltobesetfreelybeforethestreamactuallystartsplaying,untilFSOUND_SetPaused(FALSE)isused.AlsoaddedistheabilitytoassociatethestreamchanneltoaspecifiedDSPunit.Thisallowstheuserto'group'channelsintoseperateDSPunits,whichallowseffectstobeinsertedbetweenthese'groups',andallowvariousthingslikehavingonegroupaffectedbyreverb(wetmix)andanothergroupofchannelsunaffected(dry).ThisisusefultoseperatethingslikemusicfrombeingaffectedbyDSPeffects,whileothersoundeffectsare.
intF_APIFSOUND_Stream_PlayEx(intchannel,FSOUND_STREAM*stream,FSOUND_DSPUNIT*dspunit,signedcharpaused);
Parameters
channel
0+Theabsolutechannelnumberinthechannelpool.Remembersoftwarechannelscomefirst,followedbyhardwarechannels.Youcannotplayasoftwaresampleonahardwarechannelandviceversa.FSOUND_FREEChoosesafreechanneltoplayin.IfallchannelsareusedthenitselectsachannelwithasampleplayingthathasanEQUALorLOWERprioritythanthesampletobeplayed.
stream Pointertothealreadyopenedstreamtobeplayed.dspunit Pointertoadspunittoattachthechannelto.
paused Startthestreampausedornot.Pausingthestreamchannelallowsattributestobesetbeforeitisunpaused.
ReturnValue
Onsuccess,achannelhandlethestreamisplayinginisreturned.Onfailure,-1isreturned.
Remarks
Whenastreamstartstoplay,itinheritsaspecialhighpriority(256).Itcannotberejectedbyothersoundeffectchannelsinthenormalfashionastheusercanneversetapriorityabove255normally.--------FSOUND_STEREOPANisrecommendedforstereostreamsifyoucallFSOUND_SetPan.Thisputstheleftandrightchanneltofullvolume.Otherwiseanormalpanwillgivehalfvolumeforleftandright.SeeFSOUND_SetPanformoreinformationonthis.--------Youcanusenormalchannelbasedcommands(suchasFSOUND_SetVolumeetc)onthereturnhandle,asitisachannelhandle.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetNumSubChannels,FSOUND_GetSubChannel,FSOUND_SetPan,FSOUND_SetPaused,FSOUND_SetVolume,FSOUND_Stream_Close,FSOUND_Stream_Create,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetBufferSize
SetstheinternalfilebuffersizeforaudiostreamingofdatafortheNEXTstreamopenedwithFSOUND_Stream_Open.Largervalueswillconsumemorememory(seeremarks),whereassmallervaluesmaybeaffectedbylargedelaysindiskaccess,especiallyfromCDROM.
signedcharF_APIFSOUND_Stream_SetBufferSize(intms);
Parameters
msTimeinmillisecondsbetweenstreamupdates.FMODtriestoaccessthediskanddecompressdataeveryperiodspecified.Valueslessthan50resultinanerror.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thedefaultsettingis400ms.Tocalculatememoryusageforastreambuffer,itisasimplematterofcalculatingsizebytes=streambuffersize*samplerate/1000*(bitdepth/8)*numchannels*2,wherenumchannelsis1formono,or2forstereofiles.Itismultipliedby2becauseFSOUNDstreambuffersaredoublebuffers.Notethisfunctiondoesnotaffectusercreatedstreams,asthebuffersizeisspecifiedinFSOUND_Stream_Create.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetDiskBusy,FSOUND_Stream_Create,FSOUND_Stream_Open
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetEndCallback
Setsacallbackfunctionforwhenastreamhasended.
signedcharF_APIFSOUND_Stream_SetEndCallback(FSOUND_STREAM*stream,FSOUND_STREAMCALLBACKcallback,void*userdata);
Parameters
stream Pointertothestreamtocallbackonwhenitisfinished.callback Functiontobecalledwhenstreamends.userdata datathatispassedintothecallbackattheendofthestream.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Onlycallsbackwhenastreamstops.(notwhenaloopingstreamreachesitsendpoint)NoteitusesaFSOUND_STREAMCALLBACKfunctioncallback.Thisisnormallyforuserstreamsbutforthesakeofre-usabilitythisprototypeisused.'buff'and'length'areNULLand0inthiscasewhenthecallbackoccurs.ThereturnvaluecanbeTRUEorFALSEitisignored.-----------IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_Play,FSOUND_STREAMCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetLoopCount
Setsthestreamtoloopthenumberoftimesspecifiedbytheuser.Ifnotcalleditloopsforever.
signedcharF_APIFSOUND_Stream_SetLoopCount(FSOUND_STREAM*stream,intcount);
Parameters
stream Pointertothestreamtosetloopcounton.
count Numberoftimestoloop.0wouldbesimilartohavingFSOUND_LOOP_OFFset.<0isinfinity.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thisspecifieshowmanyloops,nothowmanytimestoplaythesoundback.Thereforewhenyouspecify0,youwillhearthesoundonce,ifyouspecify1,youwillhearthesoundtwice,andsoon.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_Play
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetLoopPoints
Setsthelooppointsforastream.
DLL_APIsignedcharF_APIFSOUND_Stream_SetLoopPoints(FSOUND_STREAM*stream,unsignedintloopstart,unsignedintloopend);
Parameters
stream Thestreamtosetthelooppointson.loopstart Thestartoftheloop,specifiedinPCMSAMPLES.loopend Theendoftheloop,specifiedinPCMSAMPLES.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Forstreams,settinglooppointsisreasonablyaccuratebutshouldnotbeassumedtobeperfectlysampleaccurateinallcases.Itdependsonthecompressionformatinsomecasesasseekpositionsneedtoberoundedtothenearestcompressionblockoffset.FSOUND_MPEGACCURATEwillneedtobeusedwithmp3filesthatuseVBRencodingformoreaccuracy.Youcannotcallthisfunctionwilethestreamisplaying,ithastobestopped.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetMode
Setastreamsmode.
signedcharF_APIFSOUND_Stream_SetMode(FSOUND_STREAM*stream,unsignedintmode);
Parameters
stream Pointertothestreamtohavethemodeset.mode ThemodebitstosetfromFSOUND_MODES.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.Onlythefollowingmodesareaccepted,otherswillbefilteredout.FSOUND_LOOP_BIDI,FSOUND_LOOP_NORMAL,FSOUND_LOOP_OFF,FSOUND_2D.FSOUND_LOOP_BIDIistreatedasFSOUND_LOOP_NORMAL.FSOUND_2Disacceptedonlyifthesoundisnothardware.OnPlaystation2,XBoxandGameCube,FSOUND_HW2DandFSOUND_HW3Daresupported,soyoucanchangebetweenthematruntime.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_GetMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetPosition
Setsthecurrentstream'sFILEpositioninBYTES.
signedcharF_APIFSOUND_Stream_SetPosition(FSOUND_STREAM*stream,unsignedintposition);
Parameters
stream Pointertothestreamtohaveitspositionset.
position Offsetinbytesfromstartofactualsounddata(notincludinganyheader)
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
PositionfunctionsforstreamstalkinbytesandNOTsamples.Thereasonfornottakingtheheaderintoaccountispeopleusuallywanttoknowtheoffsettoseektorelativetothestartoftheirdata(ieastheyseeitinsoundforgeorwhatever),notfromoffset0whichisalmostmeaninglessifyoudontknowtheformat.--------------IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetLength,FSOUND_Stream_GetPosition,FSOUND_Stream_SetTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetSubStream
Seeksastreamtothesubstreaminsideamulti-streamFSBbankfile,specifiedbyitsindex.
signedcharF_APIFSOUND_Stream_SetSubStream(FSOUND_STREAM*stream,intindex);
Parameters
streamHandletothestreamtohaveitspositionset.index TheindexofthestreamwithintheFSBfile.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Astreamwillstopifthisfunctioniscalled,asitneedstoseekandflushthebuffer.IndiciesforthisfunctionaregeneratedasuserfriendlyconstantswhencompilingtheFSBbank,andareavailableintherelevantgeneratedheaderfile.--------------IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillALWAYSsucceed,butputsthestreambackintoanon-readystate.Youthenhavetopollaftercallingthistomakesurethestreamisready.YoucaneitherdothisbycallingFSOUND_Stream_Playrepeatedly/onceaframeuntilitissucceeds,orFSOUND_Stream_GetOpenState.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetNumSubStreams,FSOUND_Stream_GetOpenState,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_SetSubStreamSentence
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetSubStreamSentence
Thisfunctionallowstheusertodescribetheplaybackorderofalistofsubstreams.Thesubstreamswillbeplayedbackinorderseamlessly.
signedcharF_APIFSOUND_Stream_SetSubStreamSentence(FSOUND_STREAM*stream,constint*sentencelist,intnumitems);
Parameters
stream Pointertothestreamtohaveitspositionreturned.
sentencelist Thisisapointertoanarrayof32bitintegers,describingalistofsubstreamindiciestoplayback.numitems Thenumberofentriesinthesentencelist.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThisfeatureonlyworkswithFSBfilesthathavemultiplestreamsstoredwithinit.Toremoveanysentence,simplycallthisfunctionwithNULLand0.FMODcopiesthelistfromthesuppliedpointer.Oncethepointerisused,thecallercandiscardtheoriginalarray.Thisfunctionwillfailifthestreamisplaying.Thestreammustbestoppedforittowork.------------IfthestreamisopenedwithFSOUND_NONBLOCKING,andthestreamisnotready(itisstillopening),thenthisfunctionwillreturnFALSE.Whenitisready,itwillreturnTRUE,butafterthiscallthestreamisputback
intoanon-readystate,becauseitisasynchronouslyseekingagain.Youthenhavetopollaftercallingthistomakesurethestreamisready.YoucaneitherdothisbycallingFSOUND_Stream_Playrepeatedly/onceaframeuntilitissucceeds,orFSOUND_Stream_GetOpenState.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetNumSubStreams,FSOUND_Stream_GetOpenState,FSOUND_Stream_Play,FSOUND_Stream_SetSubStream
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetSyncCallback
SetsacallbackfunctionforwhenastreampassesoveraWAVtag/marker.ThesearemarkersthatasoundeditingprogramsuchasSoundForgecandropintotheactualwavedata.FMODwilltriggercallbackswiththesemarkerswhenthestreamplays,andpassinthestringthroughthecallbackthatthemarkercontains.
signedcharF_APIFSOUND_Stream_SetSyncCallback(FSOUND_STREAM*stream,FSOUND_STREAMCALLBACKcallback,void*userdata);
Parameters
stream Pointertothestreamtocallbackwhenasyncpointisreached.callback Functiontocallwhensyncpointisreached.userdata userdatathatispassedintothecallback.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
NoteitusesaFSOUND_STREAMCALLBACKfunctioncallback.Thisisnormallyforuserstreamsbutforthesakeofre-usabilitythisprototypeisused.'buff'isanullterminatedstringprovidedbythemarker.'len'istheoffsetinsamplesthatthemarkerwassetat.ThereturnvaluecanbeTRUEorFALSE,itisignored.-----------NoteyoucansaveaWAVoutusinganMP3wavcodec(andthenjustrename
theWAVtoMP3ifyoulike)togetsyncmarkersupportforcompressedMP3files.FMODwillpickuponthisandreadthemarkersout.--------------IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_MODES,FSOUND_Stream_AddSyncPoint,FSOUND_Stream_DeleteSyncPoint,FSOUND_Stream_GetNumSyncPoints,FSOUND_Stream_GetSyncPoint,FSOUND_Stream_GetSyncPointInfo,FSOUND_Stream_Play,FSOUND_STREAMCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_SetTime
Setsthecurrentstream'sFILEpositioninMILLISECONDS.
signedcharF_APIFSOUND_Stream_SetTime(FSOUND_STREAM*stream,intms);
Parameters
stream Pointertothestreamtohaveitspositionset.ms Timeinmillisecondstoseekto.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.FSOUND_MPEGACCURATEwillneedtobeusedwithmp3filesthatuseVBRencodingformoreaccuracy.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_GetLength,FSOUND_Stream_GetPosition,FSOUND_Stream_GetTime,FSOUND_Stream_SetPosition
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Stop
Stopsastreamfromplaying.
signedcharF_APIFSOUND_Stream_Stop(FSOUND_STREAM*stream);
Parameters
stream Pointertoastreamtostop.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thestreamisstillpreparedandsittinginmemoryreadytogo.UseFSOUND_Stream_Closeonthestreamtocompletelyremoveit.IfthestreamhasbeenopenedwithFSOUND_NONBLOCKING,thisfunctionwillnotsucceeduntilthestreamisready.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Create,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Net_SetTimeout,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_PlayEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetNumTracks
ReturnsthenumberoftracksonthecurrentlyinsertedCD.
intF_APIFSOUND_CD_GetNumTracks(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Onsuccess,thenumberofCDtracksonthecurrentlyinsertedisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux
SeeAlso
FSOUND_CD_GetTrack
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetPaused
GetsthepausestatusofthecurrentCDaudiotrack.
signedcharF_APIFSOUND_CD_GetPaused(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Ifthetrackiscurrentlypaused,TRUEisreturned.Ifthetrackiscurrentlynotpaused,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetTrack
ReturnsthecurrentlyplayingCDtracknumber.
intF_APIFSOUND_CD_GetTrack(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Onsuccess,theCDtracknumbercurrentlyplayingisreturned.(startsfrom1)Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_GetNumTracks
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetTrackLength
GetsthetracklengthofaCD.
intF_APIFSOUND_CD_GetTrackLength(chardrive,inttrack);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.track TheCDtracknumbertoquerythelengthof.(startsfrom1)
ReturnValue
Onsuccess,thelengthofthecurrenttrackinmillisecondsisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_GetTrackTime,FSOUND_CD_SetTrackTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetTrackTime
ReturnsthecurrenttracktimeplayingonaCD.
intF_APIFSOUND_CD_GetTrackTime(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Onsuccess,thepositionofthecurrentplayingtrackinmillisecondsisreturned.Onfailure,0isreturned.
Remarks
ThisiseasilyoneoftheslowestfunctionsintheFMODAPI.Pleaseuseitsparingly.Itseemslikeitshouldnttakelong,butbecauseofwindowsMCIAPIitdoes,andnotjustalittlebitoftime,ittakesaLOT.ItseemstopolltheCDdriverandcausealargedelayuponcompletionofthecommand.Differentalgorithmswereusedtotryandemulatethisfunctionsuchassimplyusingatimer,butthiswasveryinaccurate,especiallywhenpausing/unpausingalot.___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_GetTrackLength,FSOUND_CD_SetTrackTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_GetVolume
ReturnsthevolumeoftheplayingCDaudio.
intF_APIFSOUND_CD_GetVolume(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Onsuccess,avaluebetween0and255isreturned,0beingthelowestvolumeand255beingthehighest.Onfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_Play,FSOUND_CD_SetVolume,FSOUND_Close
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_OpenTray
Opens/ClosestheCDtray.
signedcharF_APIFSOUND_CD_OpenTray(chardrive,signedcharopen);
Parameters
drive ThedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
open Ifopenissetto1,theCDtraywillbeopened.Ifopenissetto0,theCDtraywillbeclosed.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_Play
PlaysaCDAudiotrack.
signedcharF_APIFSOUND_CD_Play(chardrive,inttrack);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.track theCDtracknumbertoplay.Thefirsttrackstartsat1.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
SeeFSOUND_CD_SetPlayModeforinformationonhowtocontrolplaybackofaCDtrack.FSOUND'sCDPlaybacksystem,isanonintrusive,nonpollingsystem.Thismaynotmeanmuchtoalotofpeople,butapollingplayer(takethewindowsdefaultCDplayer)willconsistantlypolltheCDdevicetoupdateitsstatus,whichcausesotherapplicationstojerk,orpauseconsistantly.Thiswouldbeinexcusableinagame,tohavethegamehaltorjerkeverysecondtofewsecondsorso.FSOUNDusestimingandpredictiontolooptracksandupdatethestatusoftheCD,andnevertouchestheCDdeviceduringplayback,forTRUE0puusage.___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMonly)
SeeAlso
FSOUND_CD_GetVolume,FSOUND_CD_SetPlayMode,FSOUND_CD_SetVolume,FSOUND_CD_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_SetPaused
SetsthepausestatusofthecurrentlyplayingCDaudiotrack.
signedcharF_APIFSOUND_CD_SetPaused(chardrive,signedcharpaused);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
paused TRUEtopausetrack,FALSEtounpausetrack.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_SetPlayMode
SetstheplaybackmodeoftheCD.
voidF_APIFSOUND_CD_SetPlayMode(chardrive,signedcharmode);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
mode SeeFSOUND_CDPLAYMODESforalistofvalidparameterstosendtothisfunction.
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_Play,FSOUND_CDPLAYMODES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_SetTrackTime
Performsaseekwithinatrackspecifiedbymilliseconds.
signedcharF_APIFSOUND_CD_SetTrackTime(chardrive,unsignedintms);
Parameters
drive ThedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.ms Timetoseekintothecurrenttrackinmilliseconds.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thisfunctionwillstartthetrackifitisnotplaying.___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_GetTrackLength,FSOUND_CD_GetTrackTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_SetVolume
SetsthevolumeoftheplayingCDaudio.
signedcharF_APIFSOUND_CD_SetVolume(chardrive,intvolume);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
volumeAnintegervaluefrom0-255.0beingthelowestvolume,255beingthehighest(full).
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_GetVolume,FSOUND_CD_Play,FSOUND_Close
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_CD_Stop
StopsthecurrentlyplayingCDaudiotrack.
signedcharF_APIFSOUND_CD_Stop(chardrive);
Parameters
drive thedriveIDtouse.0isthedefaultCDdrive.UsingDorEinsinglequoteswouldbeD:orE:forexample.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Linux,Macintosh(OSXCFMOnly)
SeeAlso
FSOUND_CD_Play
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_ClearMixBuffer
Clearsthemixbuffer,especiallyhandyifyouaredoingalargefileoperationwhichhaltsthesystem.Youmighttryandstopallthesounds,butifyoudoyourfileoperationstraightafterthis,itwillnothaveachancetoflushthemixbuffernormally,sothisfunctioniscalled.Itstopstheeffectofstutteringloopingsoundwhileyourfileoperationhappens.
voidF_APIFSOUND_DSP_ClearMixBuffer();
ReturnValue
Remarks
Thebestwaytodoitislikethis.TurnoffthesfxandmusicDSPunits,clearthemixbuffer,thenwhentheoperationthathaltsthemachineisdone,justre-enablethesfxandmusicDSPunits.Disablingtheseunitsstopsthetimertryingtoget1or2moremixesinduringthefileoperation,whichwillcausemorestuttering.ie.FSOUND_DSP_SetActive(FSOUND_DSP_GetSFXUnit(),FALSE);FSOUND_DSP_SetActive(FSOUND_DSP_GetMusicUnit(),FALSE);FSOUND_DSP_ClearMixBuffer();////machinghaltingoperationhere//FSOUND_DSP_SetActive(FSOUND_DSP_GetSFXUnit(),TRUE);FSOUND_DSP_SetActive(FSOUND_DSP_GetMusicUnit(),TRUE);___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_ClearMixBuffer,FSOUND_DSP_GetMusicUnit,FSOUND_DSP_GetSFXUnit,FSOUND_DSP_SetActive
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_Create
CreatesaDSPunit,andplacesitintheDSPchainpositionspecifiedbythepriorityparameter.ReadtheremarkssectioncarefullyforissuesregardingDSPunits.DSPunitsarefreedwithFSOUND_DSP_Free.
FSOUND_DSPUNIT*F_APIFSOUND_DSP_Create(FSOUND_DSPCALLBACKcallback,intpriority,void*userdata);
Parameters
callback
ThisisapointertoyourDSPUnitcallback,oftypeFSOUND_DSPCALLBACK.Theprototypeforacallbackisdeclaredinthefollowingfashion.Callbacksmustreturnapointertothebufferyouworkon,sothatthenextdspunitcanworkonit.Hereisthesimplestcase:void*callback(void*originalbuffer,void*newbuffer,intlength,void*userdata){//originalbuffer=fsoundsoriginalmixbuffer.//newbuffer=thebufferpassedfromthepreviousDSPunit.//length=lengthinsamplesatthismixtime.//param=userparameterpassedthroughinFSOUND_DSP_Create.////modifythebufferinsomefashionreturnnewbuffer;}SeethedefinitionofFSOUND_DSPCALLBACKformore.
priority
Orderintheprioritychain.Validnumbersare0to1000,0beinghighestpriority(first),with1000beinglowestpriority(last).NotethatFSOUNDssoundeffectsmixersandcopyroutinesareconsidered
partofthisDSPunitchainwhichyoucanplaywith.
param Userdefinedparameter,thisgetspassedintothecallbackwhenitiscalled.Itissafetoleavethisvalue0.
ReturnValue
Onsuccess,apointertoanewvalidDSPunitisreturned.Onfailure,NULLisreturned.
Remarks
AdspunitisNOTACTIVEbydefault.YouhavetoactivateitwithFSOUND_DSP_SetActive---------------------------------------------------------------------------------------Prioritiesanddefaultsystemunits.---------------------------------------------------------------------------------------Anoteonpriorities.FSOUNDprocessesDSPunitsinorderofpriority.A0priorityunitgetsprocessedfirst,a1priorityunitgetsprocessednext,andsoon.FSOUNDactuallyusestheseDSPunitstomixitssoundeffectsandmusic!Yes,youhaveaccesstothem(becareful!).Itispossibletototallyremove,replaceordeactivateallofFSOUND'ssystemunitssothatitdoesnothingatall!FSOUNDhaspreinstalleddefaultsystemunitsatthefollowingprioritylocations:FSOUND_DSP_DEFAULTPRIORITY_CLEARUNIT(priority0)-ClearUnit.Thisunitclearsoutthemixbufferforthenextunitstomixinto.Youcandisablethisunitandreplaceitwithsomethingotherthanaclearer,suchasascaler,whichfadesdownthemixbufferinsteadofclearingit,toproduceaveryroughechoeffect.FSOUND_DSP_DEFAULTPRIORITY_SFXUNIT(priority100)-SFXUnit.Thisunitmixessoundeffectchannelsintothemixbuffer,whichwaspreviouslyclearedwiththeClearUnit.FSOUND_DSP_DEFAULTPRIORITY_MUSICUNIT(priority200)-MusicUnit.Thisunitmixesallmusicchannelsintothemixbuffer,whichwaspreviouslymixedintowiththe
SFXUnit.FSOUND_DSP_DEFAULTPRIORITY_CLIPANDCOPYUNIT(priority1000)-ClipandCopyUnit.Thisunittakesthefinallymixedbuffer,andclipsittotheoutputstreamsize(ifitneedsto),andthensendsitofftothesounddevice.Itisdonelast.Ifthisisdisabledyouwillhearnosound.---------------------------------------------------------------------------------------BufferLengths.---------------------------------------------------------------------------------------The'length'valueoftheDSPcallbackisroughly20msworthofdata.UseFSOUND_DSP_GetBufferLengthtogettheexactcallbacklength.---------------------------------------------------------------------------------------BufferWidths---------------------------------------------------------------------------------------RememberthatFSOUNDusesdifferentbuffertypesdependingonwhattypeofmixeritis.Youwillhavetocompensateforthisbywritingdifferentroutinesdependingonthemixertype(iemmxornonmmx),justlikeFSOUNDdoes.Currentlytherearethe3typesofmixersandtheirbuffersizes.YoucangetthetypeofmixerbeingusedbycallingtheFSOUND_GetMixerfunction.Youmaywanttocheckonthisinsideyourcallback,orsetupafunctionpointersystem,whateveryouthinkissuitable(itcostsnothingtodoaFSOUND_GetMixereverytime).-FSOUND_MIXER_BLENDMODE:Thisbufferisastereo,signed32bitbuffer(8bytespersample).Thedataisinintegerformat.Datawrittentothisbufferisnotclippedandpassedtotheoutputstreamuntiltheveryendofthechain(theclipandcopyunit).Forthistypeofmixer,youdonthavetoworryaboutclippingbecuaseFSOUNDdoesthisforyou.-FSOUND_MIXER_QUALITY_FPU/FSOUND_MIXER_QUALITY_FPU_VOLUMERAMP:Thisbufferisalsoastereo,signed32bitbuffer(8bytespersample).Thisdataisinfloatingpointformat.Thesameclipandcopyrulesapplyhereasfortheabovemixer.-AnyMMXbasedmixer:Thisbufferisastereo,signed16bitbuffer(4bytes
persample).Whenwritingtothisbuffer,youmustmakesuretheresultdoesnotoverflowthissigned16bitrange.Ifyouadddataintotothisbuffer,makesureitisclippedtoasigned16bitrangebeforewritingitback.FSOUNDonlycopiesthisdatatotheoutputstream,itdoesnotclipit.---------------------------------------------------------------------------------------Speed---------------------------------------------------------------------------------------DSPUnitsareprocessedthenandthere,insidethemixingroutine.RemembertomakeyourprocessasFASTaspossible,ortheoutputdevice'splaycursorwillcatchuptoFSOUND'swritecursorwhileyourroutinetakesitstimetocomplete,andmakeitstarttobreakup.Sobasically,ifitisntfast,thenFSOUNDwillnotbeabletosendthedatatotheoutputdeviceintimeforthenextmixerupdate,andtheresultwillbecorruptedsound.FSOUND_DSP_MixBuffersisavailablenow,soifyouneedtomixsomerawdataintotheoutputbufferquickly,youcanuseFSOUND'sownoptimizedmixerdirectlytodoit!Finally,youcanseehowyourroutineaffectscpuusage,byusingFSOUND_GetCPUUsage.ThecpuusagereturnedbythisfunctionincludesanytimespentinDSPunitsaswell.(thisfunctiontimeseverything).Ifyouarereallybored,youcanseehowmuchFSOUND'ssystemunitstakecpu-wise,byturningthemonandoffandseeinghowtheyaffectperformance.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_Free,FSOUND_DSP_GetBufferLength,FSOUND_DSP_GetBufferLengthTotal,FSOUND_DSP_MixBuffers,FSOUND_DSP_PRIORITIES,FSOUND_DSP_SetActive,FSOUND_DSP_SetPriority,FSOUND_DSPCALLBACK,FSOUND_GetCPUUsage,FSOUND_GetMixer,FSOUND_MIXERTYPES,FSOUND_PlaySoundEx,FSOUND_Stream_CreateDSP
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_Free
FreesandremovesaDSPunitfromtheDSPchain.
voidF_APIFSOUND_DSP_Free(FSOUND_DSPUNIT*unit);
Parameters
unit PointertoDSPunittobefreed.
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_SetActive
AllowstheusertotoggleaDSPunitonoroff.
voidF_APIFSOUND_DSP_SetActive(FSOUND_DSPUNIT*unit,signedcharactive);
Parameters
unit PointertoDSPunittohaveitsactiveflagchanged.
active FlagtosaywhetherDSPunitshouldberenderedactiveorinactive.validvaluesareTRUEorFALSE.
ReturnValue
void
Remarks
ItispossibletotoggleonandoffFSOUNDsinternalDSPunits,thoughnotrecommended.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_ClearMixBuffer,FSOUND_DSP_Create,FSOUND_DSP_GetActive,FSOUND_DSP_GetSpectrum
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetActive
ReturnsifaDSPunitisactiveornot.
signedcharF_APIFSOUND_DSP_GetActive(FSOUND_DSPUNIT*unit);
Parameters
unit PointertoDSPunittohaveitsactiveflagreturned.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_SetActive
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetBufferLength
ReturnsthebufferlenthpassedbytheDSPsystemtoDSPunitcallbacks,soyoucanallocatememoryetcusingthisdata.
intF_APIFSOUND_DSP_GetBufferLength();
ReturnValue
ThesizeoftheDSPunitbufferinSAMPLES(notbytes).
Remarks
Rememberthisissamplesnotbytes.Toconverttobytesyouwillhavetomultiplyby4formmxmixers,8forothermixers.(astereo16bitsample=4bytes,andastereo32bitsample(iefpu)=8bytes)___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_GetBufferLengthTotal
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetBufferLengthTotal
Thisisthetotalsizeinsamples(notbytes)oftheFSOUNDmixbuffer.ThisisaffectedbyFSOUND_SetBufferSize.
intF_APIFSOUND_DSP_GetBufferLengthTotal();
ReturnValue
ThesizeoftheFSOUNDmixingbufferinSAMPLES(notbytes).
Remarks
Rememberthisissamplesnotbytes.Toconverttobytesyouwillhavetomultiplyby4formmxmixers,8forothermixers.(astereo16bitsample=4bytes,andastereo32bitsample(iefpu)=8bytes)___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_GetBufferLength,FSOUND_SetBufferSize
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_SetPriority
ChangesaDSPUnit'sprioritypositionintheDSPchain.
voidF_APIFSOUND_DSP_SetPriority(FSOUND_DSPUNIT*unit,intpriority);
Parameters
unit PointertoDSPunittohaveitsprioritychanged.
priority Orderintheprioritychain.Validnumbersare0to1000,0beinghighestpriority(first),with1000beinglowestpriority(last).
ReturnValue
Remarks
DSPunitswiththesamepriorityasapreviousunitalreadyinthechainwillbeplacedAFTERalllikepriorityunits.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_GetPriority
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetPriority
ReturnstheprioritystatusintheDSPchain,ofaspecifiedunit.
intF_APIFSOUND_DSP_GetPriority(FSOUND_DSPUNIT*unit);
Parameters
unit PointertoDSPunittogetpriorityvaluefrom.
ReturnValue
Onsuccess,thepriorityoftheunit,from0to1000.Onfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_SetPriority
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetClearUnit
ReturnsapointertoFSOUND'ssystemDSPclearunit.
FSOUND_DSPUNIT*F_APIFSOUND_DSP_GetClearUnit();
ReturnValue
PointertotheDSPunit.
Remarks
TheFSOUNDclearDSPunitsimplysetsthemixbufferto0,silencingit.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_GetClipAndCopyUnit,FSOUND_DSP_GetFFTUnit,FSOUND_DSP_GetMusicUnit,FSOUND_DSP_GetSFXUnit
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetClipAndCopyUnit
ReturnsapointertoFSOUND'ssystemClipandCopyDSPunit.
FSOUND_DSPUNIT*F_APIFSOUND_DSP_GetClipAndCopyUnit();
ReturnValue
PointertotheDSPunit.
Remarks
TheFSOUNDClipAndCopyDSPunitclipsthe32bitbufferdowntofitthesoundcard's16bitstereooutput,andsendsitofftothehardware.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_GetClearUnit,FSOUND_DSP_GetFFTUnit,FSOUND_DSP_GetMusicUnit,FSOUND_DSP_GetSFXUnit
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetMusicUnit
ReturnsapointertoFSOUND'ssystemDSPMusicmixerunit.
FSOUND_DSPUNIT*F_APIFSOUND_DSP_GetMusicUnit();
ReturnValue
PointertotheDSPunit.
Remarks
TheFSOUNDMusicDSPexecutestheFMUSICengineandmixesthesoundsspawnedbythemusicplayer.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_ClearMixBuffer,FSOUND_DSP_GetClearUnit,FSOUND_DSP_GetClipAndCopyUnit,FSOUND_DSP_GetFFTUnit,FSOUND_DSP_GetSFXUnit
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetSFXUnit
ReturnsapointertoFSOUND'ssystemDSPSFXmixerunit.
FSOUND_DSPUNIT*F_APIFSOUND_DSP_GetSFXUnit();
ReturnValue
PointertotheDSPunit.
Remarks
TheFSOUNDSFXDSPunitmixessoundeffectstogetherspawnedbytheuser.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_ClearMixBuffer,FSOUND_DSP_GetClearUnit,FSOUND_DSP_GetClipAndCopyUnit,FSOUND_DSP_GetFFTUnit,FSOUND_DSP_GetMusicUnit
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetFFTUnit
ReturnsapointertoFSOUND'ssystemDSPFFTprocessingunit.
DLL_APIFSOUND_DSPUNIT*F_APIFSOUND_DSP_GetFFTUnit();
ReturnValue
PointertotheDSPunit.
Remarks
TheFSOUNDFFTDSPexecutestheFFTenginetoallowFSOUND_DSP_GetSpectrumtobeused.TheFFTunitisoffbydefault,duetothecpuexpenseincurredinrunning.TurnitontouseFSOUND_DSP_GetSpectrum.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_DSP_GetClearUnit,FSOUND_DSP_GetClipAndCopyUnit,FSOUND_DSP_GetMusicUnit,FSOUND_DSP_GetSFXUnit,FSOUND_DSP_GetSpectrum
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_GetSpectrum
Functiontoreturnapointertothecurrentspectrumbuffer.Thebuffercontains512floatingpointvaluesthatrepresenteachfrequencyband'samplitudeforthecurrentFMODSoundSystemmixingbuffer.Therangeoffrequenciescoveredbythespectrumis1tothenyquistfrequencyorhalfoftheoutputrate.Soiftheoutputrateis44100,thenfrequenciesprovidedareupto22050.(entry511)
F_FLOAT_API*F_APIFSOUND_DSP_GetSpectrum();
ReturnValue
Apointertoabuffercontaining512floats.
Remarks
Notethathardwaresounds,MIDI,filesdonotregisteronthespectrumgraphastheyarenotrunthroughFMODsDSPsystem.NotethattousethisyouhavetoturnontheFSOUNDFFTDSPunit.ThisisachievedbycallingFSOUND_DSP_GetFFTUnit,thenusingFSOUND_DSP_SetActivetoturniton.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_DSP_GetFFTUnit,FSOUND_DSP_SetActive
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_DSP_MixBuffers
Allowstheusertomixtheirowndatafromonebuffertoanother,usingFSOUNDsoptimizedmixerroutines.ThiswasmainlyprovidedforDSProutines,thoughitcanbeusedforanything.
signedcharF_APIFSOUND_DSP_MixBuffers(void*destbuffer,void*srcbuffer,intlen,intfreq,intvol,intpan,unsignedintmode);
Parameters
destbuffer Pointertoabuffertohavethedatamixedinto.srcbuffer Pointertothesourcebuffertobemixedin.len AmounttomixinSAMPLES.
freq
Speedtomixdatatooutputbuffer.Rememberifyoumixataratedifferentthantheoutputrate,thebufferlengthswillhavetobedifferenttocompensate.Ieiftheoutputrateis44100andyousupplyavalueof88200toFSOUND_DSP_MixBuffers,youwillonlyneedadestbufferthatishalfthesizeofsrcbuffer.Ifyousupplyavalueof22050thenyouwillneedadestbufferthatistwiceasbigassrcbuffer.Iftheyareboththesamesizethenitwillonlymixhalfofthedata.
vol volumescalarvalueofmix.Validvaluesare0(silence)to255(fullvolume).SeeFSOUND_SetVolumeformoreinformation.
pan
panvaluefordatabeingmixed.Validvaluesare0(fullleft),128(middle),255(fullright)andFSOUND_STEREOPAN.SeeFSOUND_SetPanfor
moreinformation.
mode
Bitsettingstodescribethesourcebuffer.ValidvaluesarefoundinFSOUND_MODES,butonly8/16bitandstereo/monoflagsareinterpreted,otherflagsareignored.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
'destbuffer'shouldalwaystheformatofthemixingoutputbuffer,asitwillusethemixercurrentlyrunningtodothemixing.ForMMXitis16bitstereo,soitis4bytesperoutputsample(wordleft,wordright)ForStandardBlendmodeitis32bitstereo,soitis8bytesperoutputsample(leftdword,rightdword)ForFPUmixeritis32bitfloatstereo,soitis8bytesperoutputsample(leftfloat,rightfloat)FSOUND_GetMixercanbeusedtodeterminewhichmixerisbeingused.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,GameCube
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_MixBuffers,FSOUND_GetMixer,FSOUND_MODES,FSOUND_SetFrequency,FSOUND_SetPan,FSOUND_SetVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_Disable
DisableseffectprocessingforALLeffectsonthespecifiedchannel.
signedcharF_APIFSOUND_FX_Disable(intchannel);
Parameters
channel Channelnumber/handletodisableallfxfor.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupported.PassingthiswilldisablefxonALLchannelsavailable.Thiscommandcanonlybeissuedwhilethechannelispausedorstopped.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Enable,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_Enable
Enableseffectprocessingforthespecifiedchannel.Thiscommandcontinuestoaddeffectstoachannel(upto16)untilFSOUND_FX_Disableiscalled.
intF_APIFSOUND_FX_Enable(intchannel,unsignedintfxtype);
Parameters
channel Channelnumber/handletoenablefxfor.fx Asinglefxenumvaluetoenablecertaineffects.
ReturnValue
Onsuccess,anFXidisreturned.Onfailure,-1isreturned.
Remarks
FSOUND_ALLissupported.PassingthiswillenablefxonALLchannelsavailable.Thiscommandcanonlybeissuedwhilethechannelispaused.Ifaneffectisnotenabled,thenitwillnotbeaffectedbyitscorrespondingFSOUND_FX_Setfunctions.ThisfunctionmustbeplayedafterapausedPlaySoundEx(ieFSOUND_PlaySoundEx(FSOUND_FREE,sound,NULL,TRUE)),andbeforetheFSOUND_SetPaused(FALSE)sothatthehardwarecangettheresourcebeforeitstartsplaying.Atotalof16FXperchannelisallowed,anymorewillresultinanerror.FXareresetto0afterasoundisstoppedorplayed.(butasabove,beforetheunpausingofaplay-pausedsound).Warning:Thisfunctionisexpensivetocallasithastosetupfxbuffersetc.Itisbesttocallitonce,reservethechannelthenreusethechannelindexwhen
callingplaysoundwithoutcallingitagain.Note:UnderDirectX8,channelswithFXenabledsoundscannothavetheirfrequencychanged.DirectX9andabovedonothavethislimitation.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb,FSOUND_PlaySound,FSOUND_PlaySoundEx,FSOUND_SetPaused
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetChorus
Setstheparametersforthechoruseffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetChorus(intfxid,floatWetDryMix,floatDepth,floatFeedback,floatFrequency,intWaveform,floatDelay,intPhase);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetchorusparametersfor.
WetDryMix Ratioofwet(processed)signaltodry(unprocessed)signal.Mustbeintherangefrom0through100(allwet).
DepthPercentagebywhichthedelaytimeismodulatedbythelow-frequencyoscillator,inhundredthsofapercentagepoint.Mustbeintherangefrom0through100.Thedefaultvalueis25.
Feedback Percentageofoutputsignaltofeedbackintotheeffectsinput,intherangefrom-99to99.Thedefaultvalueis0.
Frequency FrequencyoftheLFO,intherangefrom0to10.Thedefaultvalueis0.
Waveform
WaveformoftheLFO.Definedvaluesare0triangle.1sine.Bydefault,thewaveformisasine.
Delay Numberofmillisecondstheinputisdelayedbeforeitisplayedback,intherangefrom0to20.Thedefaultvalueis0ms.PhasedifferentialbetweenleftandrightLFOs,intherangefrom0through4.Possiblevaluesaredefinedasfollows:
Phase0-180degrees1-90degrees20degrees390degrees4180degrees
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_CHORUSbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetCompressor
Setstheparametersforthecompressoreffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetCompressor(intfxid,floatGain,floatAttack,floatRelease,floatThreshold,floatRatio,floatPredelay);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetcompressorparametersfor.
Gain Outputgainofsignalaftercompression,intherangefrom-60to60.Thedefaultvalueis0dB.
Attack Timebeforecompressionreachesitsfullvalue,intherangefrom0.01to500.Thedefaultvalueis0.01ms.
Release SpeedatwhichcompressionisstoppedafterinputdropsbelowfThreshold,intherangefrom50to3000.Thedefaultvalueis50ms.
Threshold Pointatwhichcompressionbegins,indecibels,intherangefrom-60to0.Thedefaultvalueis-10dB.
Ratio Compressionratio,intherangefrom1to100.Thedefaultvalueis10,whichmeans10:1compression.
Predelay TimeafterlThresholdisreachedbeforeattackphaseisstarted,inmilliseconds,intherangefrom0to4.Thedefaultvalueis0ms.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_COMPRESSORbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetDistortion
Setstheparametersforthedistortioneffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetDistortion(intfxid,floatGain,floatEdge,floatPostEQCenterFrequency,floatPostEQBandwidth,floatPreLowpassCutoff);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetdistortionparametersfor.
Gain Amountofsignalchangeafterdistortion,intherangefrom-60through0.Thedefaultvalueis0dB.
EdgePercentageofdistortionintensity,intherangeintherangefrom0through100.Thedefaultvalueis50percent.
PostEQCenterFrequencyCenterfrequencyofharmoniccontentaddition,intherangefrom100through8000.Thedefaultvalueis4000Hz.
PostEQBandwidthWidthoffrequencybandthatdeterminesrangeofharmoniccontentaddition,intherangefrom100through8000.Thedefaultvalueis4000Hz.
PreLowpassCutoffFiltercutoffforhigh-frequencyharmonicsattenuation,intherangefrom100through8000.Thedefaultvalueis4000Hz.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_DISTORTIONbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetEcho
Setstheparametersfortheechoeffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetEcho(intfxid,floatWetDryMix,floatFeedback,floatLeftDelay,floatRightDelay,intPanDelay);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetechoparametersfor.
WetDryMix Ratioofwet(processed)signaltodry(unprocessed)signal.Mustbeintherangefrom0through100(allwet).
Feedback Percentageofoutputfedbackintoinput,intherangefrom0through100.Thedefaultvalueis0.
LeftDelay Delayforleftchannel,inmilliseconds,intherangefrom1through2000.Thedefaultvalueis333ms.
RightDelay Delayforrightchannel,inmilliseconds,intherangefrom1through2000.Thedefaultvalueis333ms.
PanDelayValuethatspecifieswhethertoswapleftandrightdelayswitheachsuccessiveecho.ThedefaultvalueisFALSE,meaningnoswap.PossiblevaluesaredefinedasTRUEorFALSE.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_EnableandFSOUND_FX_ECHObeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetFlanger
Setstheparametersfortheflangereffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetFlanger(intfxid,floatWetDryMix,floatDepth,floatFeedback,floatFrequency,intWaveform,floatDelay,intPhase);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetflangerparametersfor.
WetDryMix Ratioofwet(processed)signaltodry(unprocessed)signal.Mustbeintherangefrom0through100(allwet).
DepthPercentagebywhichthedelaytimeismodulatedbythelow-frequencyoscillator(LFO),inhundredthsofapercentagepoint.Mustbeintherangefrom0through100.Thedefaultvalueis25.
Feedback Percentageofoutputsignaltofeedbackintotheeffectsinput,intherangefrom-99to99.Thedefaultvalueis0.
Frequency FrequencyoftheLFO,intherangefrom0to10.Thedefaultvalueis0.
Waveform
WaveformoftheLFO.Bydefault,thewaveformisasine.Possiblevaluesaredefinedasfollows:0-Triangle.1-Sine.
Delay Numberofmillisecondstheinputisdelayedbeforeitisplayedback,intherangefrom0to4.Thedefaultvalueis0ms.PhasedifferentialbetweenleftandrightLFOs,intherangefrom0through4.Possiblevaluesaredefinedasfollows:
Phase0-180degrees1-90degrees20degrees390degrees4180degrees
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_EnableandFSOUND_FX_FLANGERbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetGargle
Setstheparametersforthegargleeffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetGargle(intfxid,intRateHz,intWaveShape);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetgargleparametersfor.
RateHz Rateofmodulation,inHertz.Mustbeintherangefrom1through1000.
WaveShapeShapeofthemodulationwave.Thefollowingvaluesaredefined.0-Triangularwave.1-Squarewave.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_EnableandFSOUND_FX_GARGLEbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,
FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetI3DL2Reverb
SetstheparametersfortheI3DL2Reverbeffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetI3DL2Reverb(intfxid,intRoom,intRoomHF,floatRoomRolloffFactor,floatDecayTime,floatDecayHFRatio,intReflections,floatReflectionsDelay,intReverb,floatReverbDelay,floatDiffusion,floatDensity,floatHFReference);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetI3DL2Reverbparametersfor.
Room Attenuationoftheroomeffect,inmillibels(mB),intherangefrom-10000to0.Thedefaultvalueis-1000mB.
RoomHF Attenuationoftheroomhigh-frequencyeffect,inmB,intherangefrom-10000to0.Thedefaultvalueis0mB.
RoomRolloffFactorRollofffactorforthereflectedsignals,intherangefrom0to10.Thedefaultvalueis0.0.Therollofffactorforthedirectpathiscontrolledbythelistener.
DecayTime Decaytime,inseconds,intherangefrom.1to20.Thedefaultvalueis1.49seconds.
DecayHFRatioRatioofthedecaytimeathighfrequenciestothedecaytimeatlowfrequencies,intherangefrom0.1to2.Thedefaultvalueis0.83.
ReflectionsAttenuationofearlyreflectionsrelativetolRoom,inmB,intherangefrom-10000to1000.Thedefaultvalueis-2602mB.
ReflectionsDelayDelaytimeofthefirstreflectionrelativetothedirectpath,inseconds,intherangefrom0to0.3.Thedefaultvalueis0.007seconds.
ReverbAttenuationoflatereverberationrelativetolRoom,inmB,intherangefrom-10000to2000.Thedefaultvalueis200mB.
ReverbDelay
Timelimitbetweentheearlyreflectionsandthelatereverberationrelativetothetimeofthefirstreflection,inseconds,intherangefrom0to0.1.Thedefaultvalueis0.011seconds.
Diffusion Echodensityinthelatereverberationdecay,inpercent,intherangefrom0to100.Thedefaultvalueis100.0percent.
Density Modaldensityinthelatereverberationdecay,inpercent,intherangefrom0to100.Thedefaultvalueis100.0percent.
HFReference Referencehighfrequency,inhertz,intherangefrom20to20000.Thedefaultvalueis5000.0Hz.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_EnableandFSOUND_FX_I3DL2REVERBbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,
FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetParamEQ
SetstheparametersfortheParamEQeffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetParamEQ(intfxid,floatCenter,floatBandwidth,floatGain);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,tosetParamEQparametersfor.
CenterCenterfrequency,inhertz,intherangefrom80to16000.Thisvaluecannotexceedone-thirdofthefrequencyofthebuffer.Defaultis8000.
Bandwidth Bandwidth,insemitones,intherangefrom1to36.Defaultis12.Gain Gain,intherangefrom-15to15.Defaultis0.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_EnableandFSOUND_FX_PARAMEQbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,
FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_FX_SetWavesReverb
SetstheparametersfortheWavesReverbeffectonaparticularchannel
signedcharF_APIFSOUND_FX_SetWavesReverb(intfxid,floatInGain,floatReverbMix,floatReverbTime,floatHighFreqRTRatio);
Parameters
fxid fxhandlegeneratedbyFSOUND_FX_Enable,number/handletosetWavesReverbparametersfor.
InGain Inputgainofsignal,indecibels(dB),intherangefrom-96through0.Thedefaultvalueis0dB.
ReverbMix Reverbmix,indB,intherangefrom-96through0.Thedefaultvalueis0dB.
ReverbTime Reverbtime,inmilliseconds,intherangefrom.001through3000.Thedefaultvalueis1000.
HighFreqRTRatio Intherangefrom.001through.999.Thedefaultvalueis0.001.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
MakesureyouhaveenabledthiseffectwithFSOUND_FX_WAVES_REVERBbeforeusingthisfunction.___________________Supportedonthefollowingplatforms:Win32
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_MODES,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_GetDriver
Returnsthecurrentlyselectedrecordingdrivernumber.DriversareenumeratedwhenselectingadriverwithFSOUND_Record_SetDriverorotherdriverrelatedfunctionssuchasFSOUND_Record_GetNumDriversorFSOUND_Record_GetDriverName
intF_APIFSOUND_Record_GetDriver();
ReturnValue
Currentlyselecteddriverid.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_GetDriver,FSOUND_Record_GetDriverName,FSOUND_Record_GetNumDrivers,FSOUND_Record_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_GetDriverName
Returnsthenameoftheselectedrecordingdriver.DriversareenumeratedwhenselectingadriverwithFSOUND_Record_SetDriverorotherdriverrelatedfunctionssuchasFSOUND_Record_GetNumDriversorFSOUND_Record_GetDriver
constchar*F_APIFSOUND_Record_GetDriverName(intid);
Parameters
id EnumerateddriverID.ThismustbeinavalidrangedelimitedbyFSOUND_Record_GetNumDrivers,
ReturnValue
Onsuccess,apointertoaNULLterminatedstringcontainingthenameofthespecifieddeviceisreturned.ThenumberofdriversenumeratedcanbefoundwithFSOUND_Record_GetNumDrivers.Onfailure,NULLisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_GetDriver,FSOUND_Record_GetNumDrivers,FSOUND_Record_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_GetNumDrivers
Returnsthenumberofsoundcardsordevicesenumeratedforthecurrentinputtype.(DirectSound,WaveOutetc.)
intF_APIFSOUND_Record_GetNumDrivers();
ReturnValue
Totalnumberofenumeratedsounddevices.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_GetDriver,FSOUND_Record_GetDriverName,FSOUND_Record_SetDriver
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_GetPosition
Getsthepositioninthesamplebufferthathasbeenrecordedto.
intF_APIFSOUND_Record_GetPosition();
ReturnValue
Onsuccess,theoffsetinSAMPLES,fortherecordbufferthattheinputdevicehasjustwrittenuptoisreturned.Onfailure(recordingdevicehasntbeenstarted),-1isreturned.
Remarks
Note.Thisisnotthe'recordingcursor',butratherthelatestpointthattheinputhasbeencopiedtoyoursample___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_StartSample
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_SetDriver
Selectsasoundcardrecordingdriver.Itisusedwhenanoutputmodehasenumeratedmorethanonerecordingdeviceandyouneedtoselectbetweenthem.
signedcharF_APIFSOUND_Record_SetDriver(intdriver);
Parameters
driverno
Recordingdrivernumbertoselect.<=0willselecttheDEFAULTrecordingsounddriver.>0SelectsothervaliddriversthatcanbelistedwithFSOUND_Record_GetDriverName.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_GetDriver,FSOUND_Record_GetDriverName,FSOUND_Record_GetNumDrivers
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_StartSample
Startsrecordingintoapredefinedsampleusingthesample'sdefaultplaybackrateastherecordingrate.
signedcharF_APIFSOUND_Record_StartSample(FSOUND_SAMPLE*sptr,signedcharloop);
Parameters
sptr Thesampletorecordinto.
loop
TRUEorFALSEflagwhethertherecordershouldkeeprecordingonceithashittheend,andstartfromthestartagain,thereforecreatingacontinuousrecordingsessionintothatsamplebuffer.Loopingtherecordingbufferisgoodforrealtimeprocessingofrecordedinformation,asyoucanrecordandplaybackthesampleatthesametime.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Ifyouwanttoplaybackthesampleatthesametimeisisrecording,youwillhavetoplaythesoundandtryandkeepitjustbehindtherecordingcursor.UnderFSOUND_OUTPUT_OSSmode,itissingleduplex,soplaybackwillstopwhenrecordingisinprogress!TryFSOUND_OUTPUT_ALSAforfullduplexastheyhavebetterdriversinthisrespect.-------------Therecording/playbackratesareslightlyinnacurateandarenotidentical(ie44100.0forplayback,44100.1forrecording),soonecouldpossiblybefasteror
slowerthantheother.Inthiscasetherecordingandtheplaybackcursorcouldoverlap,andtheoutputwillsoundcorrupted.Tocounterthisyoumightadjusttheplaybackfrequencyofthechannelyouareplayingtherecordsampleonwhileitplays,usingFSOUND_GetCurrentPositionandFSOUND_Record_GetPositionascalibrationpoints.Intherecordingsamplethereisanexampleoftryingtoplaybacksoundasitrecords,andthemechanismtotryandkeepthe2cursorsasafedistancefromeachotherisemployed.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_GetCurrentPosition,FSOUND_Record_GetPosition,FSOUND_Record_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Record_Stop
Haltsrecordingtothespecifiedsample.
signedcharF_APIFSOUND_Record_Stop();
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh
SeeAlso
FSOUND_Record_StartSample
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Reverb_SetProperties
Setshardwarereverbparametersforadvancedtuning.Thebestwaytomodifytheseistoseteverythingtousepre-definedpresetsgivenintheheader,andthenstartmodifyingvalues.
signedcharF_APIFSOUND_Reverb_SetProperties(constFSOUND_REVERB_PROPERTIES*props);
Parameters
prop ApointertoaFSOUND_REVERB_PROPERTIESstruct.Thedefinitionforthisstructureisgiveninthelinkbelow.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
YoumustbeusingFSOUND_OUTPUT_DSOUNDastheoutputmodeforthistowork.Indsound,thereverbwillonlyworkifyouhaveanEAXcompatiblesoundcardsuchastheSBLive,andyoursample/streamwascreatedwiththeFSOUND_HW3Dflag.ForGameCube,useFSOUND_AUXFX_xxxapi.___________________Supportedonthefollowingplatforms:Win32,XBox,PlayStation2
SeeAlso
FSOUND_Reverb_GetChannelProperties,FSOUND_Reverb_GetProperties,FSOUND_REVERB_PROPERTIES,FSOUND_Reverb_SetChannelProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Reverb_GetProperties
Returnsthecurrenthardwarereverbenvironment.
signedcharF_APIFSOUND_Reverb_GetProperties(FSOUND_REVERB_PROPERTIES*props);
Parameters
props PointertoaFSOUND_REVERB_PROPERTIESstructuredefinition.Thedefiniotionforthisstructureisgiveninthelinkbelow.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThesevaluesareonlyrelevantifyouareinDSOUNDmodewithanEAX3compatiblesoundcard,orXBOXandPS2.___________________Supportedonthefollowingplatforms:Win32,XBox,PlayStation2
SeeAlso
FSOUND_Reverb_GetChannelProperties,FSOUND_REVERB_PROPERTIES,FSOUND_Reverb_SetChannelProperties,FSOUND_Reverb_SetProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Reverb_SetChannelProperties
Setsthechannelspecificreverbpropertiesforhardware,includingwet/drymix(roomsize),andthingslikeobstructionandocclusionproperties.
signedcharF_APIFSOUND_Reverb_SetChannelProperties(intchannel,constFSOUND_REVERB_CHANNELPROPERTIES*prop);
Parameters
channel Thechanneltohaveitsreverbpropertieschanged.FSOUND_ALLcanalsobeused(seeremarks)
prop PointertoaFSOUND_REVERB_CHANNELPROPERTIESstructuredefinition.Thedefinitionforthisstructureisgiveninthelinkbelow.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FSOUND_ALLissupportedhere.PassingthiswillsetALLchannelstospecifiedreverbproperties.IfFSOUND_ALLisusedthelastchannelsuccessflagwillbereturned.Thisreturnvaluenotusefulinmostcircumstances.-----------------UnderWin32,youmustbeusingFSOUND_OUTPUT_DSOUNDastheoutputmodeforthistowork.InDSound,thereverbwillonlyworkifyouhaveanEAXcompatiblesoundcardsuchastheSBLive,andyoursample/streamwascreatedwiththeFSOUND_HW3Dflag.-----------------OnPlayStation2,the'Room'parameteristheonlyparametersupported.The
hardwareonlyallows'on'or'off',sothereverbwillbeoffwhen'Room'is-10000andonforeveryothervalue.-----------------OnXBox,itispossibletoapplyreverbto2dvoicesusingthisfunction.Bydefaultreverbisturnedofffor2dvoices.Ifthis2dvoicewasbeingpositionedina5.1arraywiththexboxonlyfunctionFSOUND_SetLevels,thencallingthisfunctionwilldisablethatcapabilityinfavourofenablingreverbforthe2dvoice.Itisalimitationofthexboxhardwarethatonlyoneoftheotherofthesefeaturescanbeexecutedatonetime.___________________Supportedonthefollowingplatforms:Win32,XBox,PlayStation2.
SeeAlso
FSOUND_REVERB_CHANNELPROPERTIES,FSOUND_Reverb_GetChannelProperties,FSOUND_Reverb_GetProperties,FSOUND_Reverb_SetProperties,FSOUND_SetLevels
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Reverb_GetChannelProperties
Thisfunctiongetsthecurrentreverbpropertiesforthischannel.
signedcharF_APIFSOUND_Reverb_GetChannelProperties(intchannel,FSOUND_REVERB_CHANNELPROPERTIES*prop);
Parameters
channel Thechanneltohaveitsreverbmixreturned.
prop PointertoaFSOUND_REVERB_CHANNELPROPERTIESstructuredefinition.Thedefinitionforthisstructureisgiveninthelinkbelow.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,XBox
SeeAlso
FSOUND_REVERB_CHANNELPROPERTIES,FSOUND_Reverb_GetProperties,FSOUND_Reverb_SetChannelProperties,FSOUND_Reverb_SetProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_CAPS
Driverdescriptionbitfields.UseFSOUND_Driver_GetCapstodetermineifadriverenumeratedhasthesettingsyouareafter.Theenumerateddriverdependsontheoutputmode,seeFSOUND_OUTPUTTYPES
FSOUND_CAPS_HARDWARE 0x1/*Thisdriversupportshardwareaccelerated3dsound.*/FSOUND_CAPS_EAX2 0x2/*ThisdriversupportsEAX2reverb*/FSOUND_CAPS_EAX3 0x10/*ThisdriversupportsEAX3reverb*/
SeeAlso
FSOUND_GetDriverCaps,FSOUND_OUTPUTTYPES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_CDPLAYMODES
PlaybackmethodforaCDAudiotrack,withFSOUND_CD_SetPlayMode
FSOUND_CD_PLAYCONTINUOUS 0/*StartsfromthecurrenttrackandplaystoendofCD.*/
FSOUND_CD_PLAYONCE 1/*Playsthespecifiedtrackthenstops.*/
FSOUND_CD_PLAYLOOPED 2/*Playsthespecifiedtracklooped,foreveruntilstoppedmanually.*/
FSOUND_CD_PLAYRANDOM 3/*Playstracksinrandomorder*/
SeeAlso
FSOUND_CD_Play,FSOUND_CD_SetPlayMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_DSP_PRIORITIES
ThesedefaultprioritiesareusedbyFMODinternalsystemDSPunits.TheydescribethepositionoftheDSPchain,andtheorderofhowaudioprocessingisexecuted.YoucanactuallythroughtheuseofFSOUND_DSP_GetxxxUnit(wherexxxisthenameoftheDSPunit),disableorevenchangethepriorityofaDSPunit.
FSOUND_DSP_DEFAULTPRIORITY_CLEARUNIT 0/*DSPCLEARunit-donefirst*/
FSOUND_DSP_DEFAULTPRIORITY_SFXUNIT 100/*DSPSFXunit-donesecond*/
FSOUND_DSP_DEFAULTPRIORITY_MUSICUNIT 200/*DSPMUSICunit-donethird*/
FSOUND_DSP_DEFAULTPRIORITY_USER300/*Userpriority,usethisasreferenceforyourownDSPunits*/
FSOUND_DSP_DEFAULTPRIORITY_FFTUNIT900/*ThisreadsdataforFSOUND_DSP_GetSpectrum,soitcomesafteruserunits*/
FSOUND_DSP_DEFAULTPRIORITY_CLIPANDCOPYUNIT 1000/*DSPCLIPANDCOPYunit-last*/
SeeAlso
FSOUND_DSP_Create,FSOUND_DSP_GetSpectrum,FSOUND_DSP_SetPriority
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_MODES
Sampledescriptionbitfields,ORthemtogetherforloadinganddescribingsamples.NOTE.Ifthefileformatbeingloadedalreadyhasadefinedformat,suchasWAVorMP3,thentryingtooverridethepre-definedformatwithanewsetofformatflagswillnotwork.Forexample,an8bitWAVfilewillnotloadas16bitifyouspecifyFSOUND_16BITS.Itwilljustignoretheflagandgoaheadloadingitas8bits.Forthesetypeofformatstheonlyflagsyoucanspecifythatwillreallyalterthebehaviourofhowitisloaded,arethefollowing.---------Loopingbehaviour-FSOUND_LOOP_OFF,FSOUND_LOOP_NORMAL,FSOUND_LOOP_BIDILoaddestination-FSOUND_HW3D,FSOUND_HW2D,FSOUND_2DLoadingbehaviour-FSOUND_NONBLOCKING,FSOUND_LOADMEMORY,FSOUND_LOADRAW,FSOUND_MPEGACCURATE,FSOUND_MPEGHALFRATE,FSOUND_FORCEMONOPlaybackbehaviour-FSOUND_STREAMABLE,FSOUND_ENABLEFXPlayStation2only-FSOUND_USECORE0,FSOUND_USECORE1,FSOUND_LOADMEMORYIOP---------Seeflagdescriptionsforwhatthesedo.
FSOUND_LOOP_OFF 0x00000001/*Fornonloopingsamples.*/FSOUND_LOOP_NORMAL 0x00000002/*Forforwardloopingsamples.*/
FSOUND_LOOP_BIDI 0x00000004/*Forbidirectionalloopingsamples.ifinhardware).*/
FSOUND_8BITS 0x00000008/*For8bitsamples.*/FSOUND_16BITS 0x00000010/*For16bitsamples.*/FSOUND_MONO 0x00000020/*Formonosamples.*/FSOUND_STEREO 0x00000040/*Forstereosamples.*/
FSOUND_UNSIGNED 0x00000080/*Forusercreatedsourcedatacontainingunsignedsamples.*/
FSOUND_SIGNED 0x00000100/*Forusercreatedsourcedatacontainingsigneddata.*/
FSOUND_DELTA 0x00000200/*Forusercreatedsourcedatastoredasdeltavalues.*/
FSOUND_IT214 0x00000400/*ForusercreatedsourcedatastoredusingIT214compression.*/
FSOUND_IT215 0x00000800/*ForusercreatedsourcedatastoredusingIT215compression.*/
FSOUND_HW3D 0x00001000/*Attemptstomakesamplesuse3dhardwareacceleration.(ifthecardsupportsit)*/
FSOUND_2D 0x00002000/*Tellssoftware(nothardware)basedsamplenottobeincludedin3dprocessing.*/
FSOUND_STREAMABLE 0x00004000/*Forastreamimgsoundwhereyoufeedthedatatoit.*/
FSOUND_LOADMEMORY 0x00008000/*"name"willbeinterpretedasapointertodataforstreamingandsamples.*/
FSOUND_LOADRAW 0x00010000/*Willignorefileformatandtreatasrawpcm.*/
FSOUND_MPEGACCURATE
0x00020000/*ForFSOUND_Stream_Open-foraccurateFSOUND_Stream_GetLengthMs/FSOUND_Stream_SetTime.WARNING,seeFSOUND_Stream_Openforinitalopeningtimeperformanceissues.*/
FSOUND_FORCEMONO0x00040000/*Forforcingstereostreamsandsamplestobemono-neededifusingFSOUND_HW3Dandstereodata-incursasmallspeedhitforstreams*/
FSOUND_HW2D 0x00080000/*2Dhardwaresounds.allowshardwarespecificeffects*/
FSOUND_ENABLEFX
0x00100000/*AllowsDX8FXtobeplayedbackonasound.RequiresDirectX8-Notethesesoundscannotbeplayedmorethanonce,be8bit,belessthanacertainsize,orhaveachangingfrequency*/
FSOUND_MPEGHALFRATE 0x00200000/*ForFMODCEonly-decodesmpegstreamsusingalowerqualitydecode,butfasterexecution*/
FSOUND_IMAADPCM 0x00400000/*ContentsarestoredcompressedasIMA
ADPCM*/
FSOUND_VAG 0x00800000/*ForPS2only-ContentsarecompressedasSonyVAGformat*/
FSOUND_NONBLOCKING
0x01000000/*ForFSOUND_Stream_Open/FMUSIC_LoadSong-Causesstreamormusictoopeninthebackgroundandnotblocktheforegroundapp.SeeFSOUND_Stream_GetOpenStateorFMUSIC_GetOpenStatetodeterminewhenitISready.*/
FSOUND_GCADPCM 0x02000000/*ForGamecubeonly-ContentsarecompressedasGamecubeDSP-ADPCMformat*/
FSOUND_MULTICHANNEL 0x04000000/*ForPS2andGamecubeonly-Contentsareinterleavedintoamulti-channel(morethanstereo)format*/
FSOUND_USECORE0 0x08000000/*ForPS2only-Sample/Streamisforcedtousehardwarevoices00-23*/
FSOUND_USECORE1 0x10000000/*ForPS2only-Sample/Streamisforcedtousehardwarevoices24-47*/
FSOUND_LOADMEMORYIOP0x20000000/*ForPS2only-"name"willbeinterpretedasapointertodataforstreamingandsamples.TheaddressprovidedwillbeanIOPaddress*/
FSOUND_IGNORETAGS0x40000000/*Skipsid3v2etctagcheckswhenopeningastream,toreduceseek/readoverheadwhenopeningfiles(helpswithCDperformance)*/
FSOUND_STREAM_NET 0x80000000/*Specifiesaninternetstream*/
FSOUND_NORMAL (FSOUND_16BITS|FSOUND_SIGNED|FSOUND_MONO)
SeeAlso
FMUSIC_GetOpenState,FMUSIC_LoadSong,FSOUND_Stream_GetLength,FSOUND_Stream_GetLengthMs,FSOUND_Stream_GetOpenState,FSOUND_Stream_Open,FSOUND_Stream_SetTime
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_REVERB_PRESETS
AsetofpredefinedenvironmentPARAMETERS,createdbyCreativeLabsTheseareusedtoinitializeanFSOUND_REVERB_PROPERTIESstructurestatically.ieFSOUND_REVERB_PROPERTIESprop=FSOUND_PRESET_GENERIC;
FSOUND_PRESET_OFF
{0,7.5f,1.00f,-10000,-10000,0,1.00f,1.00f,1.0f,-2602,0.007f,{0.0f,0.0f,0.0f},200,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,0.0f,0.0f,0x33f}
FSOUND_PRESET_GENERIC
{0,7.5f,1.00f,-1000,-100,0,1.49f,0.83f,1.0f,-2602,0.007f,{0.0f,0.0f,0.0f},200,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_PADDEDCELL
{1,1.4f,1.00f,-1000,-6000,0,0.17f,0.10f,1.0f,-1204,0.001f,{0.0f,0.0f,0.0f},207,0.002f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_ROOM
{2,1.9f,1.00f,-1000,-454,0,0.40f,0.83f,1.0f,-1646,0.002f,{0.0f,0.0f,0.0f},53,0.003f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_BATHROOM
{3,1.4f,1.00f,-1000,-1200,0,1.49f,0.54f,1.0f,-370,0.007f,{0.0f,0.0f,0.0f},1030,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,60.0f,0x3f}
FSOUND_PRESET_LIVINGROOM
{4,2.5f,1.00f,-1000,-6000,0,0.50f,0.10f,1.0f,-1376,0.003f,{0.0f,0.0f,0.0f},-1104,0.004f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_STONEROOM
{5,11.6f,1.00f,-1000,-300,0,2.31f,0.64f,1.0f,-711,0.012f,{0.0f,0.0f,0.0f},83,0.017f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_AUDITORIUM
{6,21.6f,1.00f,-1000,-476,0,4.32f,0.59f,1.0f,-789,0.020f,{0.0f,0.0f,0.0f},-289,0.030f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_CONCERTHALL
{7,19.6f,1.00f,-1000,-500,0,3.92f,0.70f,1.0f,-1230,0.020f,{0.0f,0.0f,0.0f},-2,0.029f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
{8,14.6f,1.00f,-1000,0,0,2.91f,1.30f,1.0f,-602,
FSOUND_PRESET_CAVE 0.015f,{0.0f,0.0f,0.0f},-302,0.022f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x1f}
FSOUND_PRESET_ARENA
{9,36.2f,1.00f,-1000,-698,0,7.24f,0.33f,1.0f,-1166,0.020f,{0.0f,0.0f,0.0f},16,0.030f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_HANGAR
{10,50.3f,1.00f,-1000,-1000,0,10.05f,0.23f,1.0f,-602,0.020f,{0.0f,0.0f,0.0f},198,0.030f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_CARPETTEDHALLWAY
{11,1.9f,1.00f,-1000,-4000,0,0.30f,0.10f,1.0f,-1831,0.002f,{0.0f,0.0f,0.0f},-1630,0.030f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_HALLWAY
{12,1.8f,1.00f,-1000,-300,0,1.49f,0.59f,1.0f,-1219,0.007f,{0.0f,0.0f,0.0f},441,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_STONECORRIDOR
{13,13.5f,1.00f,-1000,-237,0,2.70f,0.79f,1.0f,-1214,0.013f,{0.0f,0.0f,0.0f},395,0.020f,{0.0f,0.0f,0.0f
},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_ALLEY
{14,7.5f,0.30f,-1000,-270,0,1.49f,0.86f,1.0f,-1204,0.007f,{0.0f,0.0f,0.0f},-4,0.011f,{0.0f,0.0f,0.0f},0.125f,0.95f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_FOREST
{15,38.0f,0.30f,-1000,-3300,0,1.49f,0.54f,1.0f,-2560,0.162f,{0.0f,0.0f,0.0f},-229,0.088f,{0.0f,0.0f,0.0f},0.125f,1.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,79.0f,100.0f,0x3f}
FSOUND_PRESET_CITY
{16,7.5f,0.50f,-1000,-800,0,1.49f,0.67f,1.0f,-2273,0.007f,{0.0f,0.0f,0.0f},-1691,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,50.0f,100.0f,0x3f}
FSOUND_PRESET_MOUNTAINS
{17,100.0f,0.27f,-1000,-2500,0,1.49f,0.21f,1.0f,-2780,0.300f,{0.0f,0.0f,0.0f},-1434,0.100f,{0.0f,0.0f,0.0f},0.250f,1.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,27.0f,100.0f,0x1f}
FSOUND_PRESET_QUARRY
{18,17.5f,1.00f,-1000,-1000,0,1.49f,0.83f,1.0f,-10000,0.061f,{0.0f,0.0f,0.0f},500,0.025f,{0.0f,0.0f,0.0f},0.125f,0.70f,
0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_PLAIN
{19,42.5f,0.21f,-1000,-2000,0,1.49f,0.50f,1.0f,-2466,0.179f,{0.0f,0.0f,0.0f},-1926,0.100f,{0.0f,0.0f,0.0f},0.250f,1.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,21.0f,100.0f,0x3f}
FSOUND_PRESET_PARKINGLOT
{20,8.3f,1.00f,-1000,0,0,1.65f,1.50f,1.0f,-1363,0.008f,{0.0f,0.0f,0.0f},-1153,0.012f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x1f}
FSOUND_PRESET_SEWERPIPE
{21,1.7f,0.80f,-1000,-1000,0,2.81f,0.14f,1.0f,429,0.014f,{0.0f,0.0f,0.0f},1023,0.021f,{0.0f,0.0f,0.0f},0.250f,0.00f,0.25f,0.000f,-5.0f,5000.0f,250.0f,0.0f,80.0f,60.0f,0x3f}
FSOUND_PRESET_UNDERWATER
{22,1.8f,1.00f,-1000,-4000,0,1.49f,0.10f,1.0f,-449,0.007f,{0.0f,0.0f,0.0f},1700,0.011f,{0.0f,0.0f,0.0f},0.250f,0.00f,1.18f,0.348f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x3f}
FSOUND_PRESET_DRUGGED
{23,1.9f,0.50f,-1000,0,0,8.39f,1.39f,1.0f,-115,0.002f,{0.0f,0.0f,0.0f},985,0.030f,{0.0f,0.0f,0.0f},
0.250f,0.00f,0.25f,1.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x1f}
FSOUND_PRESET_DIZZY
{24,1.8f,0.60f,-1000,-400,0,17.23f,0.56f,1.0f,-1713,0.020f,{0.0f,0.0f,0.0f},-613,0.030f,{0.0f,0.0f,0.0f},0.250f,1.00f,0.81f,0.310f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x1f}
FSOUND_PRESET_PSYCHOTIC
{25,1.0f,0.50f,-1000,-151,0,7.56f,0.91f,1.0f,-626,0.020f,{0.0f,0.0f,0.0f},774,0.030f,{0.0f,0.0f,0.0f},0.250f,0.00f,4.00f,1.000f,-5.0f,5000.0f,250.0f,0.0f,100.0f,100.0f,0x1f}
FSOUND_PRESET_PS2_ROOM
{1,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_STUDIO_A
{2,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_STUDIO_B
{3,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}{4,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f
FSOUND_PRESET_PS2_STUDIO_C },0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_HALL
{5,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_SPACE
{6,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_ECHO
{7,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_DELAY
{8,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
FSOUND_PRESET_PS2_PIPE
{9,0,0,0,0,0,0.0f,0.0f,0.0f,0,0.000f,{0.0f,0.0f,0.0f},0,0.000f,{0.0f,0.0f,0.0f},0.000f,0.00f,0.00f,0.000f,0.0f,0000.0f,0.0f,0.0f,0.0f,0.0f,0x31f}
SeeAlso
FSOUND_REVERB_PROPERTIES,FSOUND_Reverb_SetProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_MISC_VALUES
MiscellaneousvaluesforFMODfunctions.
FSOUND_FREE -1/*valuetoplayonanyfreechannel,ortoallocateasampleinafreesampleslot.*/
FSOUND_UNMANAGED-2/*valuetoallocateasamplethatisNOTmanagedbyFSOUNDorplacedinasampleslot.*/
FSOUND_ALL-3/*forachannelindex,thisflagwillaffectALLchannelsavailable!Notsupportedbyeveryfunction.*/
FSOUND_STEREOPAN-1/*valueforFSOUND_SetPansothatstereosoundsarenotplayedathalfvolume.SeeFSOUND_SetPanformoreonthis.*/
FSOUND_SYSTEMCHANNEL-1000/*special'channel'IDforallchannelbasedfunctionsthatwanttoaltertheglobalFSOUNDsoftwaremixingoutputchannel*/
FSOUND_SYSTEMSAMPLE-1000/*special'sample'IDforallsamplebasedfunctionsthatwanttoaltertheglobalFSOUNDsoftwaremixingoutputsample*/
SeeAlso
FSOUND_PlaySound,FSOUND_PlaySoundEx,FSOUND_Sample_Alloc,FSOUND_Sample_Load,FSOUND_SetPan
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FMOD_ERRORS
OnfailureofcommandsinFMOD,useFSOUND_GetErrortoattainwhathappened.
Enumerators
FMOD_ERR_NONE /*Noerrors*/
FMOD_ERR_BUSY/*CannotcallthiscommandafterFSOUND_Init.CallFSOUND_Closefirst.*/
FMOD_ERR_UNINITIALIZED/*ThiscommandfailedbecauseFSOUND_InitorFSOUND_SetOutputwasnotcalled*/
FMOD_ERR_INIT /*Errorinitializingoutputdevice.*/
FMOD_ERR_ALLOCATED/*Errorinitializingoutputdevice,butmorespecifically,theoutputdeviceisalreadyinuseandcannotbereused.*/
FMOD_ERR_PLAY /*Playingthesoundfailed.*/
FMOD_ERR_OUTPUT_FORMAT/*Soundcarddoesnotsupportthefeaturesneededforthissoundsystem(16bitstereooutput)*/
FMOD_ERR_COOPERATIVELEVEL /*Errorsettingcooperativelevelforhardware.*/
FMOD_ERR_CREATEBUFFER /*Errorcreatinghardwaresoundbuffer.*/
FMOD_ERR_FILE_NOTFOUND /*Filenotfound*/FMOD_ERR_FILE_FORMAT /*Unknownfileformat*/FMOD_ERR_FILE_BAD /*Errorloadingfile*/FMOD_ERR_MEMORY /*Notenoughmemoryorresources*/
FMOD_ERR_VERSION /*Theversionnumberofthisfileformatisnotsupported*/
FMOD_ERR_INVALID_PARAM /*Aninvalidparameterwaspassedtothisfunction*/
FMOD_ERR_NO_EAX /*TriedtouseanEAXcommandonanonEAXenabledchanneloroutput.*/
FMOD_ERR_CHANNEL_ALLOC /*Failedtoallocateanewchannel*/
FMOD_ERR_RECORD /*Recordingisnotsupportedonthismachine*/
FMOD_ERR_MEDIAPLAYER/*WindowsMediaPlayernotinstalledsocannotplaywmaoruseinternetstreaming.*/
FMOD_ERR_CDDEVICE /*AnerroroccuredtryingtoopenthespecifiedCDdevice*/
SeeAlso
FSOUND_Close,FSOUND_GetError,FSOUND_Init,FSOUND_SetOutput
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_MIXERTYPES
ThesemixertypesareusedwithFSOUND_SetMixer,tochoosewhichmixertouse,ortoactuponforotherreasonsusingFSOUND_GetMixer.Itisnotnescessarytosetthemixer.FMODwillautodetectthebestmixerforyou.
Enumerators
FSOUND_MIXER_AUTODETECT/*CE/PS2/GCOnly-Noninterpolating/lowqualitymixer.*/
FSOUND_MIXER_BLENDMODE /*Removed/obsolete.*/FSOUND_MIXER_MMXP5 /*Removed/obsolete.*/FSOUND_MIXER_MMXP6 /*Removed/obsolete.*/FSOUND_MIXER_QUALITY_AUTODETECT,/*
FSOUND_MIXER_QUALITY_FPU/*Win32/Linuxonly-Interpolating/volumerampingFPUmixer.*/
FSOUND_MIXER_QUALITY_MMXP5/*Win32/Linuxonly-Interpolating/volumerampingP5MMXmixer.*/
FSOUND_MIXER_QUALITY_MMXP6/*Win32/Linuxonly-Interpolating/volumerampingppro+MMXmixer.*/
FSOUND_MIXER_MONO/*CE/PS2/GConly-MONOnoninterpolating/lowqualitymixer.Forspeed*/
FSOUND_MIXER_QUALITY_MONO/*CE/PS2/GConly-MONOInterpolatingmixer.Forspeed*/
FSOUND_MIXER_MAX
SeeAlso
FSOUND_GetMixer,FSOUND_SetMixer
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_OUTPUTTYPES
TheseoutputtypesareusedwithFSOUND_SetOutput,tochoosewhichoutputdrivertouse.FSOUND_OUTPUT_DSOUNDwillnotsupporthardware3daccelerationifthesoundcarddriverdoesnotsupportDirectX6VoiceManagerExtensions.FSOUND_OUTPUT_WINMMisrecommendedforNTandCE.
Enumerators
FSOUND_OUTPUT_NOSOUND/*NoSounddriver,allcallstothissucceedbutdonothing.*/
FSOUND_OUTPUT_WINMM /*WindowsMultimediadriver.*/
FSOUND_OUTPUT_DSOUND
/*DirectSounddriver.YouneedthistogetEAX2orEAX3support,orFXapisupport.*/
FSOUND_OUTPUT_A3D /*A3Ddriver.*/
FSOUND_OUTPUT_OSS/*Linux/UnixOSS(OpenSoundSystem)driver,i.e.thekernelsounddrivers.*/
FSOUND_OUTPUT_ESD/*Linux/UnixESD(EnlightmentSoundDaemon)driver.*/
FSOUND_OUTPUT_ALSA /*LinuxAlsadriver.*/
FSOUND_OUTPUT_ASIO /*LowlatencyASIOdriver*/
FSOUND_OUTPUT_XBOX /*Xboxdriver*/FSOUND_OUTPUT_PS2 /*PlayStation2driver*/
FSOUND_OUTPUT_MAC /*MacSoundManagerdriver*/
FSOUND_OUTPUT_GC /*Gamecubedriver*/
FSOUND_OUTPUT_PSP /*PlayStationPortabledriver*/
FSOUND_OUTPUT_NOSOUND_NONREALTIME
/*Thisisthesameasnosound,butthesoundgenerationisdrivenbyFSOUND_Update*/
SeeAlso
FSOUND_GetOutput,FSOUND_SetOutput,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Structure]
FSOUND_REVERB_PROPERTIES
Structuredefiningareverbenvironment.Formoreindepthdescriptionsofthereverbpropertiesunderwin32,pleaseseetheEAX2andEAX3documentationathttp://developer.creative.com/underthe'downloads'section.IftheydonothavetheEAX3documentation,thenmostinformationcanbeattainedfromtheEAX2documentation,asEAX3onlyaddssomemoreparametersandfunctionalityontopofEAX2.NotethedefaultreverbpropertiesarethesameastheFSOUND_PRESET_GENERICpreset.Notethatintegervaluesthattypicallyrangefrom-10,000to1000arerepresentedindecibels,andareofalogarithmicscale,notlinear,wherasfloatvaluesaretypicallylinear.PORTABILITY:Eachmemberhastheplatformitsupportsinbracesie(win32/xbox).Somereverbparametersareonlysupportedinwin32andsomeonlyonxbox.Ifallparametersaresetthenthereverbshouldproductasimilareffectoneitherplatform.Thenumericalvalueslistedbelowarethemaximum,minimumanddefaultvaluesforeachvariablerespectively.
Members
unsignedint Environment /*0,25,0,setsalllistenerproperties
(WIN32/PS2only)*/
float EnvSize /*1.0,100.0,7.5,environmentsizeinmeters(WIN32only)*/
float EnvDiffusion /*0.0,1.0,1.0,environmentdiffusion(WIN32/XBOX)*/
int Room /*-10000,0,-1000,roomeffectlevel(atmidfrequencies)(WIN32/XBOX/PS2)*/
int RoomHF /*-10000,0,-100,relativeroomeffectlevelathighfrequencies(WIN32/XBOX)*//*-10000,0,0,relativeroomeffectlevelatlow
int RoomLF frequencies(WIN32only)*/
float DecayTime /*0.1,20.0,1.49,reverberationdecaytimeatmidfrequencies(WIN32/XBOX)*/
float DecayHFRatio /*0.1,2.0,0.83,high-frequencytomid-frequencydecaytimeratio(WIN32/XBOX)*/
float DecayLFRatio /*0.1,2.0,1.0,low-frequencytomid-frequencydecaytimeratio(WIN32only)*/
int Reflections /*-10000,1000,-2602,earlyreflectionslevelrelativetoroomeffect(WIN32/XBOX)*/
float ReflectionsDelay /*0.0,0.3,0.007,initialreflectiondelaytime(WIN32/XBOX)*/
float ReflectionsPan[3] /*,,[0,0,0],earlyreflectionspanningvector(WIN32only)*/
int Reverb /*-10000,2000,200,latereverberationlevelrelativetoroomeffect(WIN32/XBOX)*/
float ReverbDelay /*0.0,0.1,0.011,latereverberationdelaytimerelativetoinitialreflection(WIN32/XBOX)*/
float ReverbPan[3] /*,,[0,0,0],latereverberationpanningvector(WIN32only)*/
float EchoTime/*.075,0.25,0.25,echotime(WIN32/PS2only.PS2=DelaytimeforECHO/DELAYmodesonly)*/
float EchoDepth /*0.0,1.0,0.0,echodepth(WIN32/PS2only.PS2=FeedbacklevelforECHOmodeonly)*/
float ModulationTime /*0.04,4.0,0.25,modulationtime(WIN32only)*/
float ModulationDepth /*0.0,1.0,0.0,modulationdepth(WIN32only)*/
float AirAbsorptionHF /*-100,0.0,-5.0,changeinlevelpermeterathighfrequencies(WIN32only)*/
float HFReference /*1000.0,20000,5000.0,referencehighfrequency(hz)(WIN32/XBOX)*/
float LFReference /*20.0,1000.0,250.0,referencelowfrequency(hz)(WIN32only)*//*0.0,10.0,0.0,like
float RoomRolloffFactor FSOUND_3D_SetRolloffFactorbutforroomeffect(WIN32/XBOX)*/
float Diffusion/*0.0,100.0,100.0,Valuethatcontrolstheechodensityinthelatereverberationdecay.(XBOXonly)*/
float Density/*0.0,100.0,100.0,Valuethatcontrolsthemodaldensityinthelatereverberationdecay(XBOXonly)*/
unsignedint Flags
/*FSOUND_REVERB_FLAGS-modifiesthebehaviorofaboveproperties(WIN32/PS2only)*/
SeeAlso
FSOUND_3D_SetRolloffFactor,FSOUND_REVERB_FLAGS,FSOUND_Reverb_GetProperties,FSOUND_REVERB_PRESETS,FSOUND_Reverb_SetProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Structure]
FSOUND_REVERB_CHANNELPROPERTIES
Structuredefiningthepropertiesforareverbsource,relatedtoaFSOUNDchannel.Formoreindepthdescriptionsofthereverbpropertiesunderwin32,pleaseseetheEAX3documentationathttp://developer.creative.com/underthe'downloads'section.IftheydonothavetheEAX3documentation,thenmostinformationcanbeattainedfromtheEAX2documentation,asEAX3onlyaddssomemoreparametersandfunctionalityontopofEAX2.NotethedefaultreverbpropertiesarethesameastheFSOUND_PRESET_GENERICpreset.Notethatintegervaluesthattypicallyrangefrom-10,000to1000arerepresentedindecibels,andareofalogarithmicscale,notlinear,wherasfloatvaluesaretypicallylinear.PORTABILITY:Eachmemberhastheplatformitsupportsinbracesie(win32/xbox).Somereverbparametersareonlysupportedinwin32andsomeonlyonxbox.Ifallparametersaresetthenthereverbshouldproductasimilareffectoneitherplatform.LinuxandFMODCEdonotsupportthereverbapi.Thenumericalvalueslistedbelowarethemaximum,minimumanddefaultvaluesforeachvariablerespectively.
Members
int Direct /*-10000,1000,0,directpathlevel(atlowandmidfrequencies)(WIN32/XBOX)*/
int DirectHF /*-10000,0,0,relativedirectpathlevelathighfrequencies(WIN32/XBOX)*/
int Room /*-10000,1000,0,roomeffectlevel(atlowandmidfrequencies)(WIN32/XBOX/PS2)*//*-10000,0,0,relativeroomeffectlevelathigh
int RoomHF frequencies(WIN32/XBOX)*/
int Obstruction /*-10000,0,0,mainobstructioncontrol(attenuationathighfrequencies)(WIN32/XBOX)*/
floatObstructionLFRatio /*0.0,1.0,0.0,obstructionlow-frequencylevelre.maincontrol(WIN32/XBOX)*/
int Occlusion /*-10000,0,0,mainocclusioncontrol(attenuationathighfrequencies)(WIN32/XBOX)*/
floatOcclusionLFRatio /*0.0,1.0,0.25,occlusionlow-frequencylevelre.maincontrol(WIN32/XBOX)*/
floatOcclusionRoomRatio /*0.0,10.0,1.5,relativeocclusioncontrolforroomeffect(WIN32)*/
floatOcclusionDirectRatio /*0.0,10.0,1.0,relativeocclusioncontrolfordirectpath(WIN32)*/
int Exclusion /*-10000,0,0,mainexlusioncontrol(attenuationathighfrequencies)(WIN32)*/
float ExclusionLFRatio /*0.0,1.0,1.0,exclusionlow-frequencylevelre.maincontrol(WIN32)*/
int OutsideVolumeHF /*-10000,0,0,outsidesoundconelevelathighfrequencies(WIN32)*/
floatDopplerFactor /*0.0,10.0,0.0,likeDS3DflDopplerFactorbutpersource(WIN32)*/
float RolloffFactor /*0.0,10.0,0.0,likeDS3DflRolloffFactorbutpersource(WIN32)*/
float RoomRolloffFactor /*0.0,10.0,0.0,likeDS3DflRolloffFactorbutforroomeffect(WIN32/XBOX)*/
float AirAbsorptionFactor/*0.0,10.0,1.0,multipliesAirAbsorptionHFmemberofFSOUND_REVERB_PROPERTIES(WIN32)*/
int Flags /*FSOUND_REVERB_CHANNELFLAGS-modifiesthebehaviorofproperties(WIN32)*/
SeeAlso
FSOUND_REVERB_CHANNELFLAGS,FSOUND_Reverb_GetChannelProperties,FSOUND_REVERB_PROPERTIES
,FSOUND_Reverb_SetChannelProperties
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Structure]
FSOUND_TOC_TAG
StructuredefiningaCDtableofcontents.ThisstructureisreturnedasatagfromFSOUND_Stream_FindTagFieldwhenthetagname"CD_TOC"isspecified.Note:AlltracksontheCD-includingdatatracks-willberepresentedinthisstructuresoit'suseforanythingotherthangeneratingdiscidinformationisnotrecommended.Seethecddaexampleprogramforinfoonretrievingandusingthisstructure.
Members
char name[4] /*Thestring"TOC",justincasethisstructureisaccidentallytreatedasastring*/
int numtracks /*ThenumberoftracksontheCD*/int min[100] /*Thestartoffsetofeachtrackinminutes*/int sec[100] /*Thestartoffsetofeachtrackinseconds*/int frame[100] /*Thestartoffsetofeachtrackinframes*/
SeeAlso
FSOUND_Stream_FindTagField,FSOUND_Stream_Open
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
FMUSICAPIReferenceFMODApi.Usethistomodulefilesetc
Functions,Structures,Defines,Enums
-Functions
FMUSIC_CALLBACKFMUSIC_FreeSongFMUSIC_GetBPMFMUSIC_GetGlobalVolumeFMUSIC_GetMasterVolumeFMUSIC_GetNameFMUSIC_GetNumChannelsFMUSIC_GetNumInstrumentsFMUSIC_GetNumOrdersFMUSIC_GetNumPatternsFMUSIC_GetNumSamplesFMUSIC_GetOpenStateFMUSIC_GetOrderFMUSIC_GetPatternFMUSIC_GetPatternLengthFMUSIC_GetPausedFMUSIC_GetRealChannelFMUSIC_GetRowFMUSIC_GetSampleFMUSIC_GetSpeedFMUSIC_GetTimeFMUSIC_GetTypeFMUSIC_GetUserDataFMUSIC_IsFinishedFMUSIC_IsPlayingFMUSIC_LoadSongFMUSIC_LoadSongExFMUSIC_OptimizeChannelsFMUSIC_PlaySongFMUSIC_SetInstCallbackFMUSIC_SetLoopingFMUSIC_SetMasterSpeedFMUSIC_SetMasterVolumeFMUSIC_SetOrderFMUSIC_SetOrderCallback
FMUSIC_SetPanSeperationFMUSIC_SetPausedFMUSIC_SetReverbFMUSIC_SetRowCallbackFMUSIC_SetSampleFMUSIC_SetUserDataFMUSIC_SetZxxCallbackFMUSIC_StopAllSongsFMUSIC_StopSong
-Structures
FSOUND_REVERB_CHANNELPROPERTIESFSOUND_REVERB_PROPERTIESFSOUND_TOC_TAG
-Defines
FSOUND_CAPSFSOUND_CDPLAYMODESFSOUND_DSP_PRIORITIESFSOUND_INIT_FLAGSFSOUND_MISC_VALUESFSOUND_MODESFSOUND_REVERB_CHANNELFLAGSFSOUND_REVERB_FLAGSFSOUND_REVERB_PRESETSFSOUND_STATUS_FLAGS
-Enums
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
FMOD_ERRORSFMUSIC_TYPESFSOUND_FX_MODESFSOUND_MIXERTYPESFSOUND_OUTPUTTYPESFSOUND_SPEAKERMODESFSOUND_STREAM_NET_STATUSFSOUND_TAGFIELD_TYPE
[APIfunction]
FMUSIC_CALLBACK
CallbackdefinitionforFMUSICcallbacks(mod/s3m/xm/it).
voidF_CALLBACKAPIFMUSIC_CALLBACK(FMUSIC_MODULE*mod,unsignedcharparam);
Parameters
mod Themusicfiletohavecallbacksperformedon.
paramTheargumentrelatingspecificallytothecallbackmade,whetheritisarow/orderorZxxcallback.Forexampleontherowcallback,therownumberwouldbereturned.
ReturnValue
void
Remarks
Thecallbacksaremadefromwithinthemixersystem,soitisbesttokeepthecodetoanabsoluteminimumtopreventsoundbreakup.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetInstCallback,FMUSIC_SetOrderCallback,FMUSIC_SetRowCallback,FMUSIC_SetZxxCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_FreeSong
FreesmemoryallocatedforasongandremovesitfromtheFMUSICsystem.
signedcharF_APIFMUSIC_FreeSong(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtobefreed.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
SeeAlso
FMUSIC_LoadSong,FMUSIC_LoadSongEx
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_LoadSong
Toloadamoduleorbankwithagivenfilename.FMUSICSupportsloadingof-.MOD(protracker/fasttrackermodules)-.S3M(screamtracker3modules)-.XM(fasttracker2modules)-.IT(impulsetrackermodules)-.MID(MIDIfiles)-.RMI(MIDIfiles)-.SGT(DirectMusicsegmentfiles)-.FSB(FMODSampleBankfiles)
FMUSIC_MODULE*F_APIFMUSIC_LoadSong(constchar*name);
Parameters
name Filenameofmoduletoload.
ReturnValue
Onsuccess,apointertoaFMUSIC_MODULEhandleisreturned.Onfailure,NULLisreturned.
Remarks
Thisfunctionautodetectstheformattype,regardlessoffilename.TheMIDIloaderdoesnotsupportuserfilecallbacks.ForWADtypedatastructureswithembeddedMIDIfilesFMUSIC_LoadSongExwillhavetobeusedwithmemoryloading.VariousotherfunctionalityisnotprovidedinMIDI.SeerelevantFMUSICfunctionstoseeifafeatureissupportedornot.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_FreeSong,FMUSIC_LoadSong,FMUSIC_LoadSongEx,FSOUND_File_SetCallbacks
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_LoadSongEx
Toloadamoduleorbankwithagivenfilename.FMUSICSupportsloadingof-.MOD(protracker/fasttrackermodules)-.S3M(screamtracker3modules)-.XM(fasttracker2modules)-.IT(impulsetrackermodules)-.MID(MIDIfiles)-.RMI(MIDIfiles)-.SGT(DirectMusicsegmentfiles)-.FSB(FMODSampleBankfiles)
FMUSIC_MODULE*F_APIFMUSIC_LoadSongEx(constchar*name_or_data,intoffset,intlength,unsignedintmode,constint*samplelist,intsamplelistnum);
Parameters
name_or_dataNameofsongorpointertodatacontainingsongtoload(ifloadingfrommemoryandnotfile).OnPlayStation2datamustbe16bytealignedifloadingfrommemory.
offset Optional.0bydefault.If>0,thisvalueisusedtospecifyanoffsetinafile,sofmodwillseekbeforeopening.
length
Optional.0bydefault.If>0,thisvalueisusedtospecifythelengthofamemoryblockwhenusingFSOUND_LOADMEMORY,oritisthelengthofafileorfilesegmentiftheoffsetparameterisused.OnPlayStation2thismustbe16bytealignedformemoryloading.
mode
Modeforopeningsong.Withmodulefiles,onlyFSOUND_LOADMEMORY,FSOUND_NONBLOCKING,FSOUND_LOOP_NORMAL,orFSOUND_LOOP_OFFare
supported.ForFSBfiles,FSOUND_2D,FSOUND_HW3D,FSOUND_FORCEMONOalsowork.
samplelistOptional.Pointertoarrayofsampleindiciestoload.LeaveasNULLifyouwantallsamplestobeloaded(defaultbehaviour).SeeRemarksformoreonthis.
samplelistnum Optional.Numberofentriesinthesamplelistarray.
ReturnValue
Onsuccess,aFMUSIC_MODULEhandleisreturned.Onfailure,NULLisreturned.
Remarks
Loadingasongfromamemoryhandleisdangerousinonerespect,ifthedataiscorruptedortruncated,thenFMUSICcouldcrashinternallytryingtoloadit.OnPlayStation2thedataandlengthpointermustbe16bytealignedforDMApurposes.Thesamplelistandsamplelistnumparametersareusefulforlimitingtheamountofdatafmodloads.ThisfeatureisfortheFSBformatonly.Itisespeciallyusefulifyouhaveabankofsoundsandwanttorandomizetheloadingabitbytellingwhichsoundstoloadwithrandomvalues,andconsequentlywhichnottoload.OnPlayStation2,samplelistnumhasalimitof1536entries.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_FreeSong,FMUSIC_LoadSong
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_OptimizeChannels
Thisfunctionhelpswithchannelusage.Ifyouaredesperateforchannels,andyouarepreparedtoletthemusicroutinesdropafewchannels,thencallingthisfunctioncanhelp.Itbasicallydoesnttrytoplayanynewsoundsifacertainchannellimitisbeingplayed(includingsoundeffects),andthenewsoundisbelowacertainspecifiedvolume.ie.Yousetittomaxchannels=16,andminvolume=0x10.Inthiscase,themodwillplaynormallyaslongasthetotalnumberofchannelsbeingplayedinclusingsoundeffefctsisbelow16(seeFSOUND_GetChannelsPlaying).Ifthenumberofchannelsplayingexceeds16(throughachangeinthemusic,orextrasoundeffectsarespawned,thensoundswithamusicianspecifiedvolumeoflessthan0x10willbeignored.Thevolumeisbasedonvolumecolumn/defaultvolume/volumesetcommandsinthemod.mastervolume,envelopevolumesetcarenottakenintoaccount(thisgivesmorecontroloverhowitwillworkfromthetracker).
DLL_APIsignedcharF_APIFMUSIC_OptimizeChannels(FMUSIC_MODULE*mod,intmaxchannels,intminvolume);
Parameters
mod Pointertothesongtosetchannel/volumeoptimizationsettings.
maxchannels Channelcounttobemixedbeforefmusicstartstodropchannelsfromthesong.
minvolume
Ifmaxchannelsisexceeded,thenmusicchannelswithvolumesbelowthisvaluewillnotbeplayed.Rangeis0-64.Thisisthevaluethetrackerdisplays.All
trackersuse0-64.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
maxchannelswilldefaulttothenumberofchannelsallocatedbyFSOUND,sothiswillneverhappenbydefault.minvolumewilldefaultto0,soitwillalwayssucceedbydefault.ToseehowmanychannelsarecurrentlybeingMIXED,useFSOUND_GetChannelsPlaying.Asamusicianmentionedtomeonce,mostofhisdefaultvolumesaresetfairlyhigh,andanylowendvolumesareusuallyechoesetc,andcanaffordtobedropped.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_GetChannelsPlaying
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_PlaySong
Startsasongplaying.
signedcharF_APIFMUSIC_PlaySong(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtobeplayed.
ReturnValue
TRUEsongsucceededplayingFALSEsongfailedplaying
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_IsPlaying,FMUSIC_SetLooping,FMUSIC_StopAllSongs,FMUSIC_StopSong
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetInstCallback
Setsausercallbacktooccureverytimeainstrumentisplayed,triggeredfromaMOD,S3M,XMorITfile.
signedcharF_APIFMUSIC_SetInstCallback(FMUSIC_MODULE*mod,FMUSIC_CALLBACKcallback,intinstrument);
Parameters
mod Themoduleorsongtosetthecallbackfor.callback Thecallbackfunctionyousupplytogetcalled.instrument Callthecallbackwhenthisinstrumentnumberistriggered.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ItisimportanttonotethatthiscallbackwillbecalledfromdirectlyWITHINthemixer/musicupdatethread,thereforeitisimperativethatwhateveryoudofromthiscallbackbeextremelyefficient.Iftheroutinetakestoolongthenbreakupsinthesoundwilloccur,oritwillbasicallystopmixinguntilyoureturnfromthefunction.Thissortoffunctionisusuallybestforjustsettingaflag,ordosomesimplevariablemanipulation,andthenexiting,lettingyourmainthreaddowhatitneedstobasedontheseflagsorvariables.------------
ThiscallbackisLATENCYadjusted,sothatthecallbackhappenswhenyouHEARthesound,notwhenitismixed,foraccuratesynchronization.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantittobecalledbackatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_CALLBACK,FMUSIC_SetOrderCallback,FMUSIC_SetRowCallback,FMUSIC_SetZxxCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetLooping
Setsloopingmodeformidiandmodfiles.
signedcharF_APIFMUSIC_SetLooping(FMUSIC_MODULE*mod,signedcharlooping);
Parameters
mod Pointertothesong.
looping SettoTRUEtomakeitloopforever,orFALSEtoonlyhaveitplayonce.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
DefaultstoTRUE.TodisableloopingyoumustcallthisfunctionusingFALSEastheparameter.FormidifilesthisonlytakeseffectbeforeFMUSIC_PlaySongiscalled.Formodfilesthiscanbecalledatanytimeincludingduringplayback.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_PlaySong
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.
GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetMasterSpeed
Setsasongsmasterspeedscale,sothatthesongcanbespeduporsloweddown.
signedcharF_APIFMUSIC_SetMasterSpeed(FMUSIC_MODULE*mod,F_FLOAT_APIspeed);
Parameters
mod Pointertothesongtohaveitsspeedscaleset.
speed Speedscaleforsong.1.0isdefault.Minimumis0(stopped),maximumis10.0.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetMasterVolume
Setsasongsmastervolume.
signedcharF_APIFMUSIC_SetMasterVolume(FMUSIC_MODULE*mod,intvolume);
Parameters
mod Pointertothesongtohaveitsmastervolumeset.volume valuefrom0-256.0=silence,256=fullvolume.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Noteifthehardwaremidisynthisselected,youcannotsetthemastervolume.ThiscommandwillonlyworkreliablyifFSOUND_INIT_USEDEFAULTMIDISYNTHisselected.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetGlobalVolume,FMUSIC_GetMasterVolume,FSOUND_GetSFXMasterVolume,FSOUND_SetSFXMasterVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetOrder
Setsasongsorderposition/currentplayingposition.
signedcharF_APIFMUSIC_SetOrder(FMUSIC_MODULE*mod,intorder);
Parameters
mod Pointertothesongtohaveitsorderchanged.orderOrdernumbertojumpto.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetOrder
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetOrderCallback
Setsausercallbacktooccuroneveryorderdivisiblebytheorderstepparameter,playedfromaMOD,S3M,XMorITfile.
signedcharF_APIFMUSIC_SetOrderCallback(FMUSIC_MODULE*mod,FMUSIC_CALLBACKcallback,intorderstep);
Parameters
mod Themoduleorsongtosetthecallbackfor.callback Thecallbackfunctionyousupplytogetcalled.orderstep Callthecallbackeverymultipleofthisnumberoforders.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ItisimportanttonotethatthiscallbackwillbecalledfromdirectlyWITHINthemixer/musicupdatethread,thereforeitisimperativethatwhateveryoudofromthiscallbackbeextremelyefficient.Iftheroutinetakestoolongthenbreakupsinthesoundwilloccur,oritwillbasicallystopmixinguntilyoureturnfromthefunction.Thissortoffunctionisusuallybestforjustsettingaflag,ordosomesimplevariablemanipulation,andthenexiting,lettingyourmainthreaddowhatitneedstobasedontheseflagsorvariables.------------
ThiscallbackisLATENCYadjusted,sothatthecallbackhappenswhenyouHEARthesound,notwhenitismixed,foraccuratesynchronization.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantittobecalledbackatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_CALLBACK,FMUSIC_SetInstCallback,FMUSIC_SetRowCallback,FMUSIC_SetZxxCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetPanSeperation
Setsthemasterpanseperationforamodule.
signedcharF_APIFMUSIC_SetPanSeperation(FMUSIC_MODULE*mod,F_FLOAT_APIpansep);
Parameters
pansep Thepanscale.1.0meansfullpanseperation,0meansmono.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
Thisissetto1.0bydefault.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetPanSeperation
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetPaused
Pausesasong
signedcharF_APIFMUSIC_SetPaused(FMUSIC_MODULE*mod,signedcharpause);
Parameters
mod Pointertothesongtobepaused/unpaused.pause TRUE-songshouldbePAUSED,FALSE-songshouldbeUNPAUSED
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetPaused
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetReverb
TurnsonreverbforMIDI/RMIfiles.
signedcharF_APIFMUSIC_SetReverb(signedcharreverb);
Parameters
reverb SettoTRUEtoturnMIDIreverbon,FALSEtoturnMIDIreverboff.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ReverbmaybeenabledthroughsoftwareemulationinthefutureforMODbasedformats.___________________Supportedonthefollowingplatforms:Win32
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetRowCallback
Setsausercallbacktooccuroneveryrowdivisiblebytherowstepparameter,playedfromaMOD,S3M,XMorITfile.
signedcharF_APIFMUSIC_SetRowCallback(FMUSIC_MODULE*mod,FMUSIC_CALLBACKcallback,introwstep);
Parameters
mod Themoduleorsongtosetthecallbackfor.callback Thecallbackfunctionyousupplytogetcalled.rowstep Callthecallbackeverymultipleofthisnumberofrows.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ItisimportanttonotethatthiscallbackwillbecalledfromdirectlyWITHINthemixer/musicupdatethread,thereforeitisimperativethatwhateveryoudofromthiscallbackbeextremelyefficient.Iftheroutinetakestoolongthenbreakupsinthesoundwilloccur,oritwillbasicallystopmixinguntilyoureturnfromthefunction.Thissortoffunctionisusuallybestforjustsettingaflag,ordosomesimplevariablemanipulation,andthenexiting,lettingyourmainthreaddowhatitneedstobasedontheseflagsorvariables.------------
ThiscallbackisLATENCYadjusted,sothatthecallbackhappenswhenyouHEARthesound,notwhenitismixed,foraccuratesynchronization.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantittobecalledbackatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_CALLBACK,FMUSIC_SetInstCallback,FMUSIC_SetOrderCallback,FMUSIC_SetZxxCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetSample
Replacesamod'ssamplewithasampledefinitionspecified.
signedcharF_APIFMUSIC_SetSample(FMUSIC_MODULE*mod,intsampno,FSOUND_SAMPLE*sptr);
Parameters
mod Pointertothesongtosetthesamplefor.sampno indextosampleinsidemodule.sptr Pointertothesampledefinitiontoreplacemodsample
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
BecauseoftheinstrumentnatureofsomeformatslikeXM,thisfunctionlistsallthesamplesinorderofinstrumentsandtheirsubsamples.ieifinstrument1has2samplesandinstrument2contains3samples,thensampnointhiscasewouldbe0and1forinstrument1'ssamples,and2,3&4forinstrument2'ssamples.------------FMODdoesnotfreetheexistingmodsamplethatyoumaybeoverwriting.Ifyoudooverwriteanexistinghandle,itmaybelost,andyoumayincuramemoryleak.Itisagoodideatofreetheexistingsamplefirstbeforeoverwritingit.------------Important:ForPlayStation2,thisfunctionhastodoablockingquerytotheIOP,andcantakesignificantlymoretimethanastandardnonblockingfmod
function.Thismeansitisbesttocachethepointersforsampleswhileloading,andnotcallthisfunctioninrealtime.------------ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetSample
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetUserData
Setsauserdefinedvaluetostorewiththemusicfiletoberetrievedlater.
signedcharF_APIFMUSIC_SetUserData(FMUSIC_MODULE*mod,void*userdata);
Parameters
mod Pointertothesong.userdata Valuetostorewithmusicobject.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetUserData
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_SetZxxCallback
SetsausercallbackforanyZxxcommandsencounteredinanS3M,XMorITfile.
signedcharF_APIFMUSIC_SetZxxCallback(FMUSIC_MODULE*mod,FMUSIC_CALLBACKcallback);
Parameters
mod Themoduleorsongtosetthecallbackfor.
callback ThecallbackfunctionyousupplytogetcalleduponexecutionofaZxxcommand.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
ThevaluepassedintotheparamparameterofthecallbackisthexxvaluespecifiedintheZxxcommandbythemusician.------------ItisimportanttonotethatthiscallbackwillbecalledfromdirectlyWITHINthemixer/musicupdatethread,thereforeitisimperativethatwhateveryoudofromthiscallbackbeextremelyefficient.Iftheroutinetakestoolongthenbreakupsinthesoundwilloccur,oritwillbasicallystopmixinguntilyoureturnfromthefunction.Thissortoffunctionisusuallybestforjustsettingaflag,ordosomesimplevariablemanipulation,andthenexiting,lettingyourmainthreaddowhatitneedsto
basedontheseflagsorvariables.------------ThiscallbackisLATENCYadjustedbydefault,sothatthecallbackhappenswhenyouHEARthesound,notwhenitismixed,foraccuratesynchronization.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantittobecalledbackatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively.------------Note:ThisfunctionisnotsupportedwiththeMIDIformat.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_CALLBACK,FMUSIC_SetInstCallback,FMUSIC_SetOrderCallback,FMUSIC_SetRowCallback
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_StopAllSongs
Stopsallsongsfromplaying.Thisisusefulifyouhavemultiplesongsplayingatonceandwantaquickwaytostopthem
voidF_APIFMUSIC_StopAllSongs();
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_PlaySong,FMUSIC_StopSong
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_StopSong
Stopsasongfromplaying.
signedcharF_APIFMUSIC_StopSong(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtobestopped.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_PlaySong,FMUSIC_StopAllSongs
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetBPM
Returnsthesong'scurrentBPM.
intF_APIFMUSIC_GetBPM(FMUSIC_MODULE*mod);
Parameters
mod PointertothesongtoretrievecurrentsongBPMfrom.
ReturnValue
Onsuccess,song'scurrentBPMisreturned.Onfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetSpeed
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetGlobalVolume
Returnsthesong'scurrentglobalvolume
intF_APIFMUSIC_GetGlobalVolume(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievesongglobalvolumefrom.
ReturnValue
Songscurrentglobalvolume,from0(silence)tothemaximumvaluedeterminedbythemusicformat.Globalvolumemaximumsaredifferentinrespecttoeachformat,theyrangefrom64to256.Onfailure,-1isreturned.
Remarks
GLOBALvolumeisnotthesameasMASTERvolume.GLOBALvolumeisaninternaloverallvolumewhichcanbealteredbythesongitself(ietheremightbecommandstofadeinaparticularpartofthesongbyscalingallthevolumesinthesongupslowlyfromnothing).GLOBALvolumeisdifferenttoMASTERvolumeinthatthesongcanmodifywithoutyourpermission,whereasMASTERvolumeisanoverallscalarthatyoucancontrol.Forgeneraluse,MASTERvolumeismoreuseful,butyoumaywanttoresetasong'sGLOBALvolumeatcertaintimesinthesong.(forexamplethesongmighthavefadedoutbyusingGLOBALvolumeandyouwanttoresetit)___________________
Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetMasterVolume,FMUSIC_SetMasterVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetMasterVolume
Returnsthesong'scurrentmastervolume
intF_APIFMUSIC_GetMasterVolume(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievesongmastervolumefrom.
ReturnValue
Onsuccess,thesong'scurrentmastervolume,from0(silence)to256(fullvolume)isreturnedOnfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetGlobalVolume,FMUSIC_SetMasterVolume
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetName
Returnsthenameofthesongsetbythecomposer.WithMIDIformat,thefilenameisreturned.
constchar*F_APIFMUSIC_GetName(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenamefrom.
ReturnValue
Onsuccess,thenameofthesongasaNULLterminatedstringisreturned.Onfailure,NULLisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetNumChannels
Returnsthenumberofchannelswithinthissongspatterndata
intF_APIFMUSIC_GetNumChannels(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenumberofchannelsfrom.
ReturnValue
NumberofchannelswithinthissongspatterndataOnfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetNumInstruments
Returnsthenumberofinstrumentscontainedinthissong.
intF_APIFMUSIC_GetNumInstruments(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenumberofinstrumentsfrom.
ReturnValue
Onsuccess,thenumberofinstrumentscontainedinthissongisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetNumOrders
Returnsthenumberofordersinthissong.
intF_APIFMUSIC_GetNumOrders(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenumberofordersfrom.
ReturnValue
Onsuccess,thenumberofordersinthissongisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetNumPatterns
Returnsthenumberofpatternscontainedinthissong.
intF_APIFMUSIC_GetNumPatterns(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenumberofpatterns.
ReturnValue
Onsuccess,thenumberofpatternscontainedinthissongisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetNumSamples
Returnsthenumberofsamplescontainedinthissong.
intF_APIFMUSIC_GetNumSamples(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenumberofsamples.
ReturnValue
Numberofsamplescontainedinthissong.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetOpenState
IfamodisopenedwithFSOUND_NONBLOCKING,thisfunctionreturnsthestateoftheopeningmod.
intF_APIFMUSIC_GetOpenState(FMUSIC_MODULE*mod);
Parameters
mod Pointertothemodtogettheopenstatefrom.
ReturnValue
0=modisopenedandready.-1=modhandlepassedinisinvalid.-2=modisstillopening-3=modfailedtoopen.(filenotfound,outofmemoryorothererror).
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetOrder
Returnsthesong'scurrentordernumber
intF_APIFMUSIC_GetOrder(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievecurrentordernumberfrom.
ReturnValue
Onsuccess,thesong'scurrentordernumberisreturned.Onfailure,-1isreturned.
Remarks
Thisvalueislatencyadjustedbydefault,andreturnsthenumberyouarehearing,notthe'mix-time'value.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantthevalueatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively,orfromaDSPcallback.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetPattern,FMUSIC_GetPatternLength,FMUSIC_SetOrder
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetPattern
Returnsthesong'scurrentpatternnumber
intF_APIFMUSIC_GetPattern(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievecurrentpatternnumberfrom.
ReturnValue
Onsuccess,Thesong'scurrentpatternnumberisreturned.Onfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetOrder
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetPatternLength
Returnsthethelengthinrowsofthepatternforthespecifiedordernumber.
intF_APIFMUSIC_GetPatternLength(FMUSIC_MODULE*mod,intorderno);
Parameters
mod Pointertothesongto.
ReturnValue
Onsuccess,thesongspatternlengthatthespecifiedorderisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetOrder
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetPaused
Returnswhethersongiscurrentlypausedornot.
signedcharF_APIFMUSIC_GetPaused(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtogetpausedflagfrom.
ReturnValue
Onsuccess,TRUEisreturnedtosaythesongiscurrentlypausedOnfailure,FALSEisreturnedtosaythesongisNOTcurrentlypaused
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetPaused
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetRealChannel
ReturnstherealFSOUNDchannelplayingbasedonthemod'sFMUSICchannel.
intF_APIFMUSIC_GetRealChannel(FMUSIC_MODULE*mod,intmodchannel);
Parameters
mod Pointertothesong.modchannel Themodchannelindex,toquerytherealchannelfrom.
ReturnValue
Onsuccess,thechannelindexfortherespectivemodchannelisreturned.Onfailure,-1isreturned.
Remarks
NoteFMUSICmodplaybackonlyallocatesarealchannelonamodchannelthefirsttimeaninstrumentisplayed.NNA'swillnotregister.Thisfunctiononlyreturnstheprimaryrealchannelforthemodchannel.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetRow
Returnsthesong'scurrentrownumber.
intF_APIFMUSIC_GetRow(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievecurrentrowfrom.
ReturnValue
Onsuccess,thesong'scurrentrownumberisreturned.Onfailure,-1isreturned.
Remarks
Thisvalueislatencyadjustedbydefault,andreturnsthenumberyouarehearing,notthe'mix-time'value.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantthevalueatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively,orfromaDSPcallback.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetSample
Returnsapointertoasampleinsideamodule.Onceyouhaveaccesstothemodule'ssample,youcandoalotofthingstoit,includinglockingandmodifyingthedatawithin;usingtheFSOUND_Sample_functionality.
FSOUND_SAMPLE*F_APIFMUSIC_GetSample(FMUSIC_MODULE*mod,intsampno);
Parameters
mod Pointertothesongtoretrieveasamplehandlefromsampno indextosampleinsidemodule.
ReturnValue
Onsuccess,avalidsamplehandleisreturned.Onfailure,NULLisreturned.
Remarks
BecauseoftheinstrumentnatureofsomeformatslikeXM,thisfunctionlistsallthesamplesinorderofinstrumentsandtheirsubsamples.ieifinstrument1has2samplesandinstrument2contains3samples,thensampnointhiscasewouldbe0and1forinstrument1'ssamples,and2,3&4forinstrument2'ssamples.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetSample
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetSpeed
Returnsthesong'scurrentspeed.
intF_APIFMUSIC_GetSpeed(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievecurrentsongspeedfrom.
ReturnValue
Onsuccess,Thesong'scurrentspeedisreturnedOnfailure,-1isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_GetBPM
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetTime
Returnsthetimeinmillisecondssincethesongwasstarted.Thisisusefulforsynchronizingpurposesbecuaseitwillbeexactlythesameeverytime,anditisreliablyretriggereduponstartingthesong.Tryingtosynchronizeusingotherwindowstimerscanleadtovaryingresults,andinexactperformance.Thisfixesthatproblembyactuallyusingthenumberofsamplessenttothesoundcardasareference.
intF_APIFMUSIC_GetTime(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtogettimefrom.
ReturnValue
Onsuccess,thetimeplayedinmillisecondsisreturned.Onfailure,-1isreturned.
Remarks
Thisvalueislatencyadjustedbydefault,andreturnsthenumberyouarehearing,notthe'mix-time'value.UseFSOUND_INIT_DONTLATENCYADJUSTifyouwantthevalueatmixtime,whichisusefulifyouwanttocontrolthemusicinteractively,orfromaDSPcallback.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetType
Returnstheformattypeasong.
intF_APIFMUSIC_GetType(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenamefrom.
ReturnValue
Onsuccess,thefollowingvaluesarereturned:FMUSIC_TYPE_NONEFMUSIC_TYPE_MODFMUSIC_TYPE_S3MFMUSIC_TYPE_XMFMUSIC_TYPE_ITFMUSIC_TYPE_MIDIOnfailure,FMUSIC_TYPE_NONEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_TYPES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_GetUserData
RetrievesthedatasetbyFMUSIC_SetUserData
void*F_APIFMUSIC_GetUserData(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesong.
ReturnValue
Onsuccess,userdatasetbyFMUSIC_SetUserDataisreturned.Onfailure,0isreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_SetUserData
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_IsFinished
Returnswhetherthesonghascompletedplaying,orwhenthelastorderhasfinishedplaying.Thisstayssetevenifthesongloops.
signedcharF_APIFMUSIC_IsFinished(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongthatyouwantcheckiffinishedornot.
ReturnValue
TRUESonghasfinishedplaying.FALSESonghasnotfinishedplaying.
Remarks
Somesongsmayuseapatternbreakorpatternjumpandneverreachthelastpattern.___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FMUSIC_IsPlaying
Returnswhetherthesongiscurrentlyplayingornot.
signedcharF_APIFMUSIC_IsPlaying(FMUSIC_MODULE*mod);
Parameters
mod Pointertothesongtoretrievenamefrom.
ReturnValue
TRUESongisplaying.FALSESongisstopped.
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FMUSIC_PlaySong
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FMUSIC_TYPES
Thesedefinitionsdescribethetypeofsongbeingplayed.
Enumerators
FMUSIC_TYPE_NONEFMUSIC_TYPE_MOD /*Protracker/Fasttracker*/FMUSIC_TYPE_S3M /*ScreamTracker3*/FMUSIC_TYPE_XM /*FastTracker2*/FMUSIC_TYPE_IT /*ImpulseTracker.*/FMUSIC_TYPE_MIDI /*MIDIfile*/FMUSIC_TYPE_FSB /*FMODSampleBankfile*/
SeeAlso
FMUSIC_GetType
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_INIT_FLAGS
Initializationflags.UsethemwithFSOUND_Initintheflagsparametertochangevariousbehaviour.FSOUND_INIT_ENABLESYSTEMCHANNELFXIsaninitmodewhichenablestheFSOUNDmixerbuffertobeaffectedbyDirectX8effects.NotethatduetolimitationsofDirectSound,FSOUND_Initmayfailifthisisenabledbecausethebuffersizeistoosmall.ThiscanbefixedwithFSOUND_SetBufferSize.IncreasetheBufferSizeuntilitworks.WhenitisenabledyoucanusetheFSOUND_FXapi,anduseFSOUND_SYSTEMCHANNELasthechannelidwhensettingparameters.
FSOUND_INIT_USEDEFAULTMIDISYNTH0x0001/*Win32only-CausesMIDIplaybacktoforcesoftwaredecoding.*/
FSOUND_INIT_GLOBALFOCUS
0x0002/*Win32only-ForDirectSoundoutput-soundisnotmutedwhenwindowisoutoffocus.*/
FSOUND_INIT_ENABLESYSTEMCHANNELFX
0x0004/*Win32only-ForDirectSoundoutput-AllowsFSOUND_FXapitobeusedonglobalsoftwaremixeroutput!(useFSOUND_SYSTEMCHANNELaschannelid)*/
FSOUND_INIT_ACCURATEVULEVELS
0x0008/*ThislatencyadjustsFSOUND_GetCurrentLevels,butincursasmallcpuandmemoryhit*/
FSOUND_INIT_PS2_DISABLECORE0REVERB
0x0010/*PS2only-DisablereverbonCORE0(SPU2voices00-23)toregainSRAM*/0x0020/*PS2only-Disable
FSOUND_INIT_PS2_DISABLECORE1REVERB reverbonCORE1(SPU2voices24-47)toregainSRAM*/
FSOUND_INIT_PS2_SWAPDMACORES
0x0040/*PS2only-BydefaultFMODusesDMACH0formixing,CH1foruploads,thisflagswapsthemaround*/
FSOUND_INIT_DONTLATENCYADJUST
0x0080/*Callbacksarenotlatencyadjusted,andarecalledatmixtime.Alsoinformationfunctionsareimmediate*/
FSOUND_INIT_GC_INITLIBS 0x0100/*GConly-InitializesGCaudiolibraries*/
FSOUND_INIT_STREAM_FROM_MAIN_THREAD
0x0200/*Turnsofffmodstreamerthread,andmakesstreamingupdatefromFSOUND_Updatecalledbytheuser*/
FSOUND_INIT_PS2_USEVOLUMERAMPING0x0400/*PS2only-Turnsonvolumerampingsystemtoremovehardwareclicks.*/
FSOUND_INIT_DSOUND_DEFERRED
0x0800/*Win32only-ForDirectSoundoutput.3DcommandsarebatchedtogetherandexecutedatFSOUND_Update.*/
FSOUND_INIT_DSOUND_HRTF_LIGHT
0x1000/*Win32only-ForDirectSoundoutput.FSOUND_HW3Dbuffersuseaslightlyhigherqualityalgorithmwhen3dhardwareaccelerationisnotpresent.*/
FSOUND_INIT_DSOUND_HRTF_FULL
0x2000/*Win32only-ForDirectSoundoutput.FSOUND_HW3Dbuffersusefullquality3dplaybackwhen
3dhardwareaccelerationisnotpresent.*/
FSOUND_INIT_XBOX_REMOVEHEADROOM
0x4000/*XBoxonly-Bydefaultdirectsoundattenuatesallsoundby6dbtoavoidclipping/distortion.CAUTION.Ifyouusethisflagyouareresponsibleforthefinalmixtomakesureclipping/distortiondoesn'thappen.*/
FSOUND_INIT_PSP_SILENCEONUNDERRUN
0x8000/*PSPonly-Ifstreamsskip/stutterwhendeviceispoweredon,eitherincreasestreambuffersize,orusethisflaginsteadtoplaysilencewhiletheUMDisrecovering.*/
SeeAlso
FSOUND_GetCurrentLevels,FSOUND_Init,FSOUND_SetBufferSize,FSOUND_Update
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetFreeHWRam
ReturnfreeSRAMandIOPramafterorbeforeFMODisinitialized.
signedcharF_APIFSOUND_GetFreeHWRam(int*spu2ram,int*iopram);
Parameters
spu2ram PointertovariabletocontainfreeSPU2ram.iopram PointertovariabletocontainfreeIOPram.
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
FreeIOPrammeansIOPmemoryfreebeforeinitializingFMOD,orafterFMODmemorypoolsizeisspecifiedwithFSOUND_SetMemorySystemandFSOUND_Init.Forexampleona2mbIOPsystem,beforeFSOUND_Inititmightreturn2mb,andafter,ifyoucallFSOUND_Initwithamemorypoolsizeof1.5mb,thisfunctionwouldreturn.5mb.ThisisdifferenttothevaluesreturnedbyFSOUND_GetMemoryStats,whichisthememoryinformationwithinthat1.5mbpool.------------------NoteusingFSOUND_INIT_DISABLE_CORE0_REVERBor/andFSOUND_INIT_DISABLE_CORE1_REVERBwillregainSPU2ram,butdisableshardwarereverb.Usethisifyouwanttofitmoresoundsinandarenotworriedaboutreverb.------------------
ThisfunctioncanbecalledbeforeorafterFSOUND_Init.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_GetMemoryStats,FSOUND_Init,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_GetSpeakerMode
Getsthemodeforcurrentlysetspeakermode.
unsignedintF_APIFSOUND_GetSpeakerMode();
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:Win32,WinCE,Linux,Macintosh,XBox,PlayStation2,GameCube
SeeAlso
FSOUND_SetPanSeperation,FSOUND_SetSpeakerMode,FSOUND_SPEAKERMODES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_IOP_Alloc
AllocatesIOPRam
void*F_APIFSOUND_IOP_Alloc(intlength);
Parameters
length LengthinbytesofIOPRAMtobeallocated.
ReturnValue
TheIOPaddressofthedataallocated.Thisisnotdirectlyaddressable.TheonlywaytogetdatatothisvalueistoDMAit.FSOUND_SendDatawillDMAdatafromtheEEtotheIOP.
Remarks
ThememoryallocatedistakenfromFMOD'smemorypoolusingFMOD'sinternalmemorymanager.ThepoolofmemorythisistakenfromisspecifiedwithFSOUND_SetMemorySystem.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_IOP_Free,FSOUND_SendData,FSOUND_SetMemorySystem
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_IOP_Free
FreesablockofIOPram.
voidF_APIFSOUND_IOP_Free(void*iopptr);
Parameters
data IOPpointertobefreed.MusthavebeenallocatedwithFSOUND_IOP_Alloc
ReturnValue
void
Remarks
___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_IOP_Alloc
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SendData
DMA'sdatafromEEtoIOP.ForDSPandstreamcallbacksusethisfunctiontogetdatatotheIOP.
signedcharF_APIFSOUND_SendData(void*iopaddr,void*eeaddr,intlenbytes,signedcharwait,void(*callback)(void*param),void*param);
Parameters
iopaddr destinationIOPAddress.eeaddr sourceEEAddress.lenbytes Lengthofdatablockinbytes.
wait TRUEorFALSEvaluetodeterminewethertowaitonthecompletionofDMAornot.Setto0fromcallbacks.
callback CallbackforcompletionofDMA.param UserdatathatwillgetpassedbacktotheendofDMAcallback.
ReturnValue
srcandlenbytesmustbe16bytealigned.
Remarks
Usuallyonlyusedwithauserstreamcallback,togetyouruserdatatotheIOPaddressthatFMODprovided.YoucanalsoallocatesomeIOPmemorywithFSOUND_IOP_Allocifsodesired.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_IOP_Alloc,FSOUND_Sample_Lock,FSOUND_Stream_Create,FSOUND_STREAMCALLBACK
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SetDiskBusy
TellsFMODthattheuserisaccessingthedisk,sothatFMODwillwaituntilitisfinishedwithit.ThisisessentialforoptimalgamefileaccessincooperationwithFMOD.
voidF_APIFSOUND_SetDiskBusy(signedchardiskbusy);
Parameters
diskbusy TRUEtotellFMODthecallerisabouttoaccessthedisk.FALSEtotellFMODithasfinishedwiththedisk.
ReturnValue
Remarks
ItisrecommendedtowrapFSOUND_SetDiskBusy(TRUE)andFSOUND_SetDiskBusy(FALSE)aroundallgamefileaccessfunctions.--------------------NoteiftheuserhaltsthediskaccessforlongerthanthebuffersizesetbyFSOUND_Stream_SetBufferSize.Evenlessthanthiscancauseskippingorcorruptedsound,duetoseekingandtheactualtimeittakestodotheaudiostreamreadinthestreamsubsystem.Toavoidthisitisrecommendedtosplitgamereadsupintochunks,toallowFMODaccesstothediskperiodically.--------------------ThisfunctionwillblockuntilFMODisnotusingthediskanymore.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_IsDiskBusy,FSOUND_SetDiskBusy,FSOUND_Stream_SetBufferSize
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SPU2_Alloc
AllocatesSPU2Ram
void*F_APIFSOUND_SPU2_Alloc(intlength);
Parameters
length LengthinbytesofSPU2soundRAMtobeallocated.
ReturnValue
AnIOPbasedhandlefortheSPU2ramblock.
Remarks
Thisfunctionismainlyusedtoreservememoryforpurposessuchas3rdpartylibrariesneedingmemoryfortheirownspu2use.DONOTusethisastheoffsetintospu2ram!UseFSOUND_SPU2_GetRawAddresstogetthespu2offsetintosoundramfromthishandle.-----------TheSPU2has2mboframavailable,unlessreverbisactivatedonbothcores,thenitisless.YoucandisablereverbusingFSOUND_INIT_PS2_DISABLECORE0REVERBandFSOUND_INIT_PS2_DISABLECORE1REVERBwithFSOUND_Init.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_Init,FSOUND_SPU2_Free,FSOUND_SPU2_GetRawAddress
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SPU2_Free
FreesSPU2Ram
voidF_APIFSOUND_SPU2_Free(void*iopptr);
Parameters
iopptrHandletofreegeneratedbyFSOUND_SPU2_Alloc.
ReturnValue
void
Remarks
PassthevaluefromFSOUND_SPU2_Alloc,NOTthevaluefromFSOUND_SPU2_GetRawAddress.___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_SPU2_Alloc,FSOUND_SPU2_GetRawAddress
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_SPU2_GetRawAddress
GetstherawSPU2offsetinsidetheSPU2memoryspacefromthehandlereturnedfromFSOUND_SPU2_Alloc
unsignedintF_APIFSOUND_SPU2_GetRawAddress(void*iopptr);
Parameters
iopptr PointertotheIOPbasedsoundramhandle.
ReturnValue
TheSPU2addressofthedataallocated.Thisisnotdirectlyaddressable.TheonlywaytogetdatatothisaddressistoDMAitfromtheEEtotheIOPfirst,thenfromtheIOPtoSRAM.
Remarks
___________________Supportedonthefollowingplatforms:PlayStation2
SeeAlso
FSOUND_SPU2_Alloc,FSOUND_SPU2_Free
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_Net_SetTimeout
Setsthetimeoutforinternetstreams.
signedcharF_APIFSOUND_Stream_Net_SetTimeout(inttimeout);
Parameters
timeout Thetimeoutvalueinms
ReturnValue
Onsuccess,TRUEisreturned.Onfailure,FALSEisreturned.
Remarks
___________________Supportedonthefollowingplatforms:Win32,Macintosh,Linux
SeeAlso
FSOUND_Stream_Close,FSOUND_Stream_Net_GetBufferProperties,FSOUND_Stream_Net_GetLastServerStatus,FSOUND_Stream_Net_GetStatus,FSOUND_Stream_Net_SetBufferProperties,FSOUND_Stream_Net_SetMetadataCallback,FSOUND_Stream_Net_SetProxy,FSOUND_Stream_Open,FSOUND_Stream_Play,FSOUND_Stream_Stop
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
FSOUND_Stream_OpenFromHandle
FSOUND_STREAM*F_APIFSOUND_Stream_OpenFromHandle(HANDLEhandle,unsignedintmode);
Parameters
handle ApointertoafileHANDLEtypethatwasretrievedfromXOpenSoundtrackSong.
ReturnValue
Onsuccess,avalidstreamhandleisreturned.Onfailure,NULLisreturned.
Remarks
UsetheXDKfunctionsXFindFirstSoundtrack,XFindNextSoundtrack,XGetSoundtrackSongInfoandXOpenSoundtrackSongtoenumerateandopenWMAfilessavedontothedashboardbyusers.___________________Supportedonthefollowingplatforms:XBox
SeeAlso
FSOUND_Stream_Close.,FSOUND_Stream_Open
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[APIfunction]
sceSifAddCmdHandler
Foradvancedusersonly.OnlyusedifusersaregettingconflictswithFMOD'scommandhandlerwhenwritingIOPmodulesoftheirownorusingothermiddlewarethatusesSIFCMD.ThisfunctiontellsFMODabouttheuser'sSIFCMDbufferthathasbeensetwithsceSifSetCmdBuffer,andtheindiciesintothatsceSifCmdDataarraythatFMODcanuse.TheusermayhavespecifiedaSIFcommandhandleroftheirownbeforecallingFSOUND_InitandloadingFMOD.IRXwhensettinguptheirownIOP<->EEcommunication.ItsimplyenablesFMODtoknowthesize,andwhatindiciesintothesceSifCmdDataarraytheuserhassetthatFMODcanuse.Itallowstheuser'sappandFMODtosharethebufferthattheuserhascreated.FMODuses2sifhandlers.Amainoneandsecondaryone.
sceSifAddCmdHandler(YOURHANDLERINDEX,yourhandler,NULL);
Parameters
buffersize ThesizeofthesceSifCmdDataarraythattheuserhasset.
bufferindexmain TheindexintotheusercreatedsceSifCmdDataarrayfortheprimaryFMODsifcmdhandler.
bufferindexsecondary TheindexintotheusercreatedsceSifCmdDataarrayforthesecondaryFMODsifcmdhandler.
ReturnValue
void
Remarks
FMODwillautomaticallyusethepreviouslysetcommandbuffer,assceSifSetCmdBufferreturnsthepreviouslysetbufferwhichFMODuses.Thisiswhyyoudonthavetopassintheactualbufferitself.-----------IMPORTANT!FMOD.IRXmustalsobenotifiedwhenitisinitialized!TheIOPsideofthecommandhandler,whichisinitializedwhenFMOD.IRXisloaded,mustalsobenotifiedoftheuser'sIOPsidebuffersizeandindicies.BypassingitascommandlineparameterwithsceSifLoadModule,youcandothis.Ifthisisnotdone,unexpectedresultsmayoccur.TheFMOD.IRXtakes3parameters.Theyaresimply3integersseperatedbyaspace.Parameter1isequalto'buffersize'Parameter2isequalto'bufferindexmain'Parameter3isequalto'bufferindexsecondary'------------HereisanexampleofusingsceSifLoadModuletonotifyFMOD.IRXofyourIOPsidesifCmdbuffersizeandcommandhandlerindex.sprintf(s,"49894721238404205",CMDBUFSIZE,FMODINDEXMAIN,FMODINDEXSECONDARY);//NOTE:mustbeformattedas3integersseperatedbyaspace.sceSifLoadModule("host0:api/fmod.irx",strlen(s),s);ThenlaterontheEEside,beforecallingFSOUND_Init,youwillcallthisfunction,ieFSOUND_SetSifCommandInfo(CMDBUFSIZE,FMODINDEXMAIN,FMODINDEXSECONDARY);Andbeforeanyofthis,youwouldhavesetupyourowncommandhandlerwithsomethinglikethis.sceSifInitCmd();sceSifSetCmdBuffer(&yourcommandbuffer;
SeeAlso
FSOUND_Init
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_REVERB_CHANNELFLAGS
ValuesfortheFlagsmemberoftheFSOUND_REVERB_CHANNELPROPERTIESstructure.
FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO 0x00000001/*Automaticsettingof'Direct'fromlistener*/
FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO 0x00000002/*Automaticsettingof'Room'fromlistener*/
FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO 0x00000004/*Automaticsettingof'RoomHF'duetodistancefromlistener*/
FSOUND_REVERB_CHANNELFLAGS_DEFAULT (FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO|FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO|FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO)
SeeAlso
FSOUND_REVERB_CHANNELFLAGS,FSOUND_REVERB_CHANNELPROPERTIES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_REVERB_FLAGS
ValuesfortheFlagsmemberoftheFSOUND_REVERB_PROPERTIESstructure.
FSOUND_REVERB_FLAGS_DECAYTIMESCALE 0x00000001/*'EnvSize'affectsreverberationdecaytime*/FSOUND_REVERB_FLAGS_REFLECTIONSSCALE 0x00000002/*'EnvSize'affectsreflectionlevel*/
FSOUND_REVERB_FLAGS_REFLECTIONSDELAYSCALE 0x00000004/*'EnvSize'affectsinitialreflectiondelaytime*/FSOUND_REVERB_FLAGS_REVERBSCALE 0x00000008/*'EnvSize'affectsreflectionslevel*/
FSOUND_REVERB_FLAGS_REVERBDELAYSCALE 0x00000010/*'EnvSize'affectslatereverberationdelaytime*/
FSOUND_REVERB_FLAGS_DECAYHFLIMIT 0x00000020/*AirAbsorptionHFaffectsDecayHFRatio*/FSOUND_REVERB_FLAGS_ECHOTIMESCALE 0x00000040/*'EnvSize'affectsechotime*/FSOUND_REVERB_FLAGS_MODULATIONTIMESCALE 0x00000080/*'EnvSize'affectsmodulationtime*/
FSOUND_REVERB_FLAGS_CORE0 0x00000100/*PS2Only-ReverbisappliedtoCORE0(hwvoices0-23)*/
FSOUND_REVERB_FLAGS_CORE1 0x00000200/*PS2Only-ReverbisappliedtoCORE1(hwvoices24-47)*/
FSOUND_REVERB_FLAGS_DEFAULT (FSOUND_REVERB_FLAGS_DECAYTIMESCALE|FSOUND_REVERB_FLAGS_REFLECTIONSSCALE|FSOUND_REVERB_FLAGS_REFLECTIONSDELAYSCALE|FSOUND_REVERB_FLAGS_REVERBSCALE|FSOUND_REVERB_FLAGS_REVERBDELAYSCALE|FSOUND_REVERB_FLAGS_DECAYHFLIMIT|FSOUND_REVERB_FLAGS_CORE0|FSOUND_REVERB_FLAGS_CORE1)
SeeAlso
FSOUND_REVERB_FLAGS,FSOUND_REVERB_PROPERTIES
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Define]
FSOUND_STATUS_FLAGS
Thesevaluesdescribetheprotocolandformatofaninternetstream.UseFSOUND_Stream_Net_GetStatustoretrievethisinformationforanopeninternetstream.
FSOUND_PROTOCOL_SHOUTCAST 0x00000001FSOUND_PROTOCOL_ICECAST 0x00000002FSOUND_PROTOCOL_HTTP 0x00000004FSOUND_FORMAT_MPEG 0x00010000FSOUND_FORMAT_OGGVORBIS 0x00020000
SeeAlso
FSOUND_Stream_Net_GetStatus
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_FX_MODES
ThesevaluesareusedwithFSOUND_FX_EnabletoenableDirectX8FXforachannel.
Enumerators
FSOUND_FX_CHORUSFSOUND_FX_COMPRESSORFSOUND_FX_DISTORTIONFSOUND_FX_ECHOFSOUND_FX_FLANGERFSOUND_FX_GARGLEFSOUND_FX_I3DL2REVERBFSOUND_FX_PARAMEQFSOUND_FX_WAVES_REVERBFSOUND_FX_MAX
SeeAlso
FSOUND_FX_Disable,FSOUND_FX_Enable,FSOUND_FX_SetChorus,FSOUND_FX_SetCompressor,FSOUND_FX_SetDistortion,FSOUND_FX_SetEcho,FSOUND_FX_SetFlanger,FSOUND_FX_SetGargle,FSOUND_FX_SetI3DL2Reverb,FSOUND_FX_SetParamEQ,FSOUND_FX_SetWavesReverb
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_SPEAKERMODES
ThesearespeakertypesdefinedforusewiththeFSOUND_SetSpeakerModecommand.Note-OnlyreliablyworkswithFSOUND_OUTPUT_DSOUNDorFSOUND_OUTPUT_XBOXoutputmodes.OtheroutputmodeswillonlyinterpretFSOUND_SPEAKERMODE_MONOandseteverythingelsetobestereo.UsingeitherDolbyDigitalorDTSwillusewhatever5.1digitalmodeisavailableifdestinationhardwareisunsure.
Enumerators
FSOUND_SPEAKERMODE_DOLBYDIGITAL/*DolbyDigitalOutput(XBOXorPConly).*/
FSOUND_SPEAKERMODE_HEADPHONES /*Thespeakersareheadphones.*/
FSOUND_SPEAKERMODE_MONO /*Thespeakersaremonaural.*/
FSOUND_SPEAKERMODE_QUAD /*Thespeakersarequadraphonic.*/
FSOUND_SPEAKERMODE_STEREO/*Thespeakersarestereo(defaultvalue).*/
FSOUND_SPEAKERMODE_SURROUND /*Thespeakersaresurroundsound.*/
FSOUND_SPEAKERMODE_DTS /*DTSoutput(XBOXonly).*/
FSOUND_SPEAKERMODE_PROLOGIC2
/*DolbyPrologic2.Playstation2andGamecubeonly.PlayStation2doesntsupportinteriorpanning,butsupports48voices
simultaneously.*/
FSOUND_SPEAKERMODE_PROLOGIC2_INTERIOR
/*DolbyPrologic2.Playstation2andGamecubeonly.PlayStation2doessupportinteriorpanning,butonlysupports24voicessimultaneously.*/
SeeAlso
FSOUND_SetSpeakerMode
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_STREAM_NET_STATUS
Statusvaluesforinternetstreams.UseFSOUND_Stream_Net_GetStatustogetthecurrentstatusofaninternetstream.
Enumerators
FSOUND_STREAM_NET_NOTCONNECTED /*Streamhasn'tconnectedyet*/
FSOUND_STREAM_NET_CONNECTING /*Streamisconnectingtoremotehost*/
FSOUND_STREAM_NET_BUFFERING /*Streamisbufferingdata*/FSOUND_STREAM_NET_READY /*Streamisreadytoplay*/
FSOUND_STREAM_NET_ERROR /*Streamhassufferedafatalerror*/
SeeAlso
FSOUND_Stream_Net_GetStatus
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.
[Enum]
FSOUND_TAGFIELD_TYPE
Describesthetypeofaparticulartagfield.
Enumerators
FSOUND_TAGFIELD_VORBISCOMMENT /*Avorbiscomment*/FSOUND_TAGFIELD_ID3V1 /*PartofanID3v1tag*/FSOUND_TAGFIELD_ID3V2 /*AnID3v2frame*/FSOUND_TAGFIELD_SHOUTCAST /*ASHOUTcastheaderline*/FSOUND_TAGFIELD_ICECAST /*AnIcecastheaderline*/
FSOUND_TAGFIELD_ASF /*AnAdvancedStreamingFormatheaderline*/
SeeAlso
FSOUND_Stream_FindTagField,FSOUND_Stream_GetNumTagFields,FSOUND_Stream_GetTagField
Thisdocumentcopyright©FirelightTechnologies,Pty,Ltd,1999-2002.Allrightsreserved.GeneratedFriNov1800:31:542005bySourceDocv0.10,theautomatedsourcecodedocumenter.