preliminary compressed audio
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index 3d42096d2f420296566a897ebe2f77e5d0079ede..c3ff3e97511e2c99386161c8c64fe7bf71f1a9a0 100644 (file)
--- a/player.h
+++ b/player.h
@@ -1137,7 +1137,7 @@ static void player_animate_camera(void)
  */
 static void player_audio(void)
 {
-   sfx_lock();
+   audio_lock();
 
    static float air = 0.0f;
    air = vg_lerpf(air, player.in_air? 1.0f: 0.0f, 5.0f*ktimestep);
@@ -1149,47 +1149,50 @@ static void player_audio(void)
    float *cam = player.camera[3],
          *pos = player.rb.co;
 
+   audio_player_set_position( &audio_player0, player.rb.co );
+   audio_player_set_position( &audio_player1, player.rb.co );
+   audio_player_set_position( &audio_player2, player.rb.co );
+
    v3_sub( player.rb.co, player.camera[3], delta );
    v3_normalize( delta );
    m3x3_mulv( player.camera, ears, ears );
+
+   /* TODO, Make function */
+   v3_copy( ears, vg_audio.listener_ears );
+   v3_copy( player.camera[3], vg_audio.listener_pos );
+
+   /* Tunnel / occlusion */
+   audio_sample_occlusion( player.camera[3] );
    
    if( freecam || player.is_dead || !player.on_board )
    {
-      audio_player0.vol = 0.0f;
-      audio_player1.vol = 0.0f;
-      audio_player2.vol = 0.0f;
-
-      audio_player0.pan = 0.0f;
-      audio_player1.pan = 0.0f;
-      audio_player2.pan = 0.0f;
+      audio_player_set_vol( &audio_player0, 0.0f );
+      audio_player_set_vol( &audio_player1, 0.0f );
+      audio_player_set_vol( &audio_player2, 0.0f );
    }
    else
    {
-      /* Spacialize 0 */
-      audio_spacialize( &audio_player0, pos, cam, ears, 1.0f );
-      audio_player1.pan = audio_player0.pan;
-      audio_player2.pan = audio_player0.pan;
-
       /* Composite */
       float speed = vg_minf(v3_length( player.rb.v )*0.1f,1.0f),
-            attn  = audio_player0.vol * speed,
+            attn  = speed,
             slide = vg_clampf( fabsf(player.slip), 0.0f, 1.0f ),
             vol0  = (1.0f-air)*attn*(1.0f-slide),
             vol1  =       air *attn,
             vol2  = (1.0f-air)*attn*slide;
+      
+      audio_player_set_vol( &audio_player0, vol0 );
+      audio_player_set_vol( &audio_player1, vol1 );
+      audio_player_set_vol( &audio_player2, vol2 );
 
-      audio_player1.vol = vol1;
-      audio_player2.vol = vol2;
-      audio_player0.vol = vol0;
+      float reverb_amt = vol0 * audio_occlusion_current * 1.0f;
+      audio_player_set_pan( &audio_player3, 0.0f );
+      audio_player_set_vol( &audio_player3, reverb_amt );
    }
-
-   /* Tunnel / occlusion */
-   audio_sample_occlusion( player.camera[3] );
-   audio_player3.pan = 0.0f;
-   audio_player3.vol = audio_player0.vol * audio_occlusion_current * 2.0f;
    
+#if 0
    world_audio_update( cam, ears );
-   sfx_unlock();
+#endif
+   audio_unlock();
 }
 
 /*