diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 55 | ||||
| -rw-r--r-- | src/music.rs | 32 | 
2 files changed, 44 insertions, 43 deletions
| diff --git a/src/main.rs b/src/main.rs index 714d540..24dcf8d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,33 +27,34 @@ pub fn main() {    let sdl_context = sdl2::init().unwrap();    #[cfg(all(feature = "music", not(feature = "32k")))] -  { -    let audio_subsystem = sdl_context.audio().unwrap(); - -    let desired_spec = AudioSpecDesired { -      freq: Some(48_000), -      #[cfg(feature = "stereo")] -      channels: Some(2), -      #[cfg(not(feature = "stereo"))] -      channels: Some(1), -      samples: Some(8192 as u16), -    }; - -    let device = audio_subsystem -      .open_playback(None, &desired_spec, |spec| { -        // initialize the audio callback -        Music { -          offset: 0, -          pcm: mmc2r_to_pcm( -            &mut MmC2r::new(include_bytes!("../uwudhd.mod"), spec.freq as isize).unwrap(), -          ), -        } -      }) -      .unwrap(); - -    // Start playback -    device.resume(); -  } +  let audio_subsystem = sdl_context.audio().unwrap(); + +  #[cfg(all(feature = "music", not(feature = "32k")))] +  let desired_spec = AudioSpecDesired { +    freq: Some(48_000), +    #[cfg(feature = "stereo")] +    channels: Some(2), +    #[cfg(not(feature = "stereo"))] +    channels: Some(1), +    samples: Some(8192 as u16), +  }; + +  #[cfg(all(feature = "music", not(feature = "32k")))] +  let device = audio_subsystem +    .open_playback(None, &desired_spec, |spec| { +      // initialize the audio callback +      Music { +        offset: 0, +        pcm: mmc2r_to_pcm( +          &mut MmC2r::new(include_bytes!("../uwudhd.mod"), spec.freq as isize).unwrap(), +        ), +      } +    }) +    .unwrap(); + +  // Start playback +  #[cfg(all(feature = "music", not(feature = "32k")))] +  device.resume();    let video_subsystem = sdl_context.video().unwrap(); diff --git a/src/music.rs b/src/music.rs index 5a33d84..888de77 100644 --- a/src/music.rs +++ b/src/music.rs @@ -38,22 +38,22 @@ pub fn mmc2r_to_pcm(state: &mut MmC2r) -> Vec<i16> {        destination.push(sample);      }    } -  // #[cfg(not(feature = "stereo"))] -  // let destination = { -  //   let stereo = destination; -  //   let mut mono = Vec::<i16>::new(); -  //   let mut is_first_stereo_pair = true; -  //   let mut stereo_pair_val = 0 as i16; -  //   for sample in stereo { -  //     if is_first_stereo_pair { -  //       stereo_pair_val = sample; -  //     } else { -  //       mono.push(((sample as i32 + stereo_pair_val as i32) / 2) as i16); -  //     } -  //     is_first_stereo_pair = !is_first_stereo_pair; -  //   } -  //   mono -  // }; +  #[cfg(not(feature = "stereo"))] +  let destination = { +    let stereo = destination; +    let mut mono = Vec::<i16>::new(); +    let mut is_first_stereo_pair = true; +    let mut stereo_pair_val = 0 as i16; +    for sample in stereo { +      if is_first_stereo_pair { +        stereo_pair_val = sample; +      } else { +        mono.push(((sample as i32 + stereo_pair_val as i32) / 2) as i16); +      } +      is_first_stereo_pair = !is_first_stereo_pair; +    } +    mono +  };    destination  } |