Class: FMOD::Channel

Inherits:
Object
  • Object
show all
Includes:
Functions
Defined in:
lib/fmod/channel.rb

Constant Summary

Constants included from Enums

Enums::FMOD_CHANNELINDEX, Enums::FMOD_DSP_TYPE, Enums::FMOD_RESULT

Constants included from Constants

FMOD::Constants::FMOD_2D, FMOD::Constants::FMOD_3D, FMOD::Constants::FMOD_3D_CUSTOMROLLOFF, FMOD::Constants::FMOD_3D_HEADRELATIVE, FMOD::Constants::FMOD_3D_IGNOREGEOMETRY, FMOD::Constants::FMOD_3D_LINEARROLLOFF, FMOD::Constants::FMOD_3D_LOGROLLOFF, FMOD::Constants::FMOD_3D_WORLDRELATIVE, FMOD::Constants::FMOD_ACCURATETIME, FMOD::Constants::FMOD_CDDA_FORCEASPI, FMOD::Constants::FMOD_CDDA_JITTERCORRECT, FMOD::Constants::FMOD_CREATECOMPRESSEDSAMPLE, FMOD::Constants::FMOD_CREATESAMPLE, FMOD::Constants::FMOD_CREATESTREAM, FMOD::Constants::FMOD_DEFAULT, FMOD::Constants::FMOD_HARDWARE, FMOD::Constants::FMOD_IGNORETAGS, FMOD::Constants::FMOD_INIT_3D_RIGHTHANDED, FMOD::Constants::FMOD_INIT_DISABLE_MYEARS, FMOD::Constants::FMOD_INIT_DSOUND_HRTFFULL, FMOD::Constants::FMOD_INIT_DSOUND_HRTFLIGHT, FMOD::Constants::FMOD_INIT_DSOUND_HRTFNONE, FMOD::Constants::FMOD_INIT_DTS_NEURALSURROUND, FMOD::Constants::FMOD_INIT_ENABLE_PROFILE, FMOD::Constants::FMOD_INIT_GEOMETRY_USECLOSEST, FMOD::Constants::FMOD_INIT_NORMAL, FMOD::Constants::FMOD_INIT_PS2_DISABLECORE0REVERB, FMOD::Constants::FMOD_INIT_PS2_DISABLECORE1REVERB, FMOD::Constants::FMOD_INIT_PS2_DONTUSESCRATCHPAD, FMOD::Constants::FMOD_INIT_PS2_SWAPDMACHANNELS, FMOD::Constants::FMOD_INIT_PS3_FORCE2CHLPCM, FMOD::Constants::FMOD_INIT_PS3_PREFERDTS, FMOD::Constants::FMOD_INIT_SOFTWARE_DISABLE, FMOD::Constants::FMOD_INIT_SOFTWARE_HRTF, FMOD::Constants::FMOD_INIT_SOFTWARE_OCCLUSION, FMOD::Constants::FMOD_INIT_SOFTWARE_REVERB_LOWMEM, FMOD::Constants::FMOD_INIT_STREAM_FROM_UPDATE, FMOD::Constants::FMOD_INIT_SYNCMIXERWITHUPDATE, FMOD::Constants::FMOD_INIT_SYSTEM_MUSICMUTENOTPAUSE, FMOD::Constants::FMOD_INIT_VOL0_BECOMES_VIRTUAL, FMOD::Constants::FMOD_INIT_WASAPI_EXCLUSIVE, FMOD::Constants::FMOD_INIT_XBOX_REMOVEHEADROOM, FMOD::Constants::FMOD_LOADSECONDARYRAM, FMOD::Constants::FMOD_LOOP_BIDI, FMOD::Constants::FMOD_LOOP_NORMAL, FMOD::Constants::FMOD_LOOP_OFF, FMOD::Constants::FMOD_LOWMEM, FMOD::Constants::FMOD_MPEGSEARCH, FMOD::Constants::FMOD_NONBLOCKING, FMOD::Constants::FMOD_OPENMEMORY, FMOD::Constants::FMOD_OPENMEMORY_POINT, FMOD::Constants::FMOD_OPENONLY, FMOD::Constants::FMOD_OPENRAW, FMOD::Constants::FMOD_OPENUSER, FMOD::Constants::FMOD_SOFTWARE, FMOD::Constants::FMOD_TIMEUNIT_BUFFERED, FMOD::Constants::FMOD_TIMEUNIT_MODORDER, FMOD::Constants::FMOD_TIMEUNIT_MODPATTERN, FMOD::Constants::FMOD_TIMEUNIT_MODROW, FMOD::Constants::FMOD_TIMEUNIT_MS, FMOD::Constants::FMOD_TIMEUNIT_PCM, FMOD::Constants::FMOD_TIMEUNIT_PCMBYTES, FMOD::Constants::FMOD_TIMEUNIT_RAWBYTES, FMOD::Constants::FMOD_TIMEUNIT_SENTENCE, FMOD::Constants::FMOD_TIMEUNIT_SENTENCE_MS, FMOD::Constants::FMOD_TIMEUNIT_SENTENCE_PCM, FMOD::Constants::FMOD_TIMEUNIT_SENTENCE_PCMBYTES, FMOD::Constants::FMOD_TIMEUNIT_SENTENCE_SUBSOUND, FMOD::Constants::FMOD_UNICODE, FMOD::Constants::FMOD_UNIQUE, FMOD::Constants::FMOD_VIRTUAL_PLAYFROMSTART

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Functions

#error_check

Constructor Details

#initialize(options = {}) ⇒ Channel

TODO: Need to find a way to reliably destroy this pointer



8
9
10
11
# File 'lib/fmod/channel.rb', line 8

def initialize(options = {})
  @system_pointer = FMOD.system.pointer
  @pointer = FFI::MemoryPointer.new(:pointer)
end

Instance Attribute Details

#pointerObject (readonly)

pointer to the channel instance



5
6
7
# File 'lib/fmod/channel.rb', line 5

def pointer
  @pointer
end

Instance Method Details

#frequencyObject



43
44
45
46
47
48
# File 'lib/fmod/channel.rb', line 43

def frequency
  FFI::MemoryPointer.new(:float) do |ptr|
    error_check FMOD_Channel_GetFrequency(@pointer.read_pointer, ptr)
    return ptr.read_float
  end
end

#frequency=(float) ⇒ Object



50
51
52
# File 'lib/fmod/channel.rb', line 50

def frequency=(float)
  error_check FMOD_Channel_SetFrequency(@pointer.read_pointer, float)
end

#pan=(float) ⇒ Object



37
38
39
40
41
# File 'lib/fmod/channel.rb', line 37

def pan=(float)
  float = 1.0 if float > 1.0
  float = 0.0 if float < 0.0
  error_check FMOD_Channel_SetPan(@pointer.read_pointer, float)
end

#pauseObject



21
22
23
24
# File 'lib/fmod/channel.rb', line 21

def pause
  error_check FMOD_Channel_SetPaused(@pointer.read_pointer, ((paused?) ? 0 : 1))
  true
end

#paused?Boolean

Returns:



26
27
28
29
30
31
# File 'lib/fmod/channel.rb', line 26

def paused?
  FFI::MemoryPointer.new(:int) do |ptr|
    error_check FMOD_Channel_GetPaused(@pointer.read_pointer, ptr)
    return ptr.read_int == 1
  end
end

#playing?Boolean

result = FMOD_Channel_IsPlaying(channel, &playing);

Returns:



14
15
16
17
18
19
# File 'lib/fmod/channel.rb', line 14

def playing?
  FFI::MemoryPointer.new(:int) do |ptr|
    error_check FMOD_Channel_IsPlaying(@pointer.read_pointer, ptr)
    return playing_ptr.read_int == 1
  end
end

#set_position(int = 0) ⇒ Object



33
34
35
# File 'lib/fmod/channel.rb', line 33

def set_position(int = 0)
  error_check FMOD_Channel_SetPosition(@pointer.read_pointer, int, FMOD_TIMEUNIT_MS)
end