1. 07 Jun, 2020 4 commits
    • David Reid's avatar
      Fix sound uninitialization. · 95ded1d5
      David Reid authored
      95ded1d5
    • David Reid's avatar
      More work on the new high level API: · ce4d4b35
      David Reid authored
        * Implement the notion of a virtual file system (VFS) which is used
          by the resource manager for loading sound files. The idea is that
          the application can implement these to support loading from custom
          packages, archives, etc.
        * Add a helper API for decoding a file from a VFS and a file name.
        * Add some symbols representing allocation types. These are not
          currently used, but I've added them in preparation for changes to
          the allocation callbacks. The idea is that an allocation type will
          be passed to the callbacks to give the allocator better intel as to
          what it's allocating which will give it a chance to optimize.
        * Add some placeholders for flags for controlling how to load a data
          source. Currently only MA_DATA_SOURCE_FLAG_DECODE is implemented
          which is used to indicate to the resource manager that it should
          store the decoded contents of the sound file in memory rather than
          the raw (encoded) file data.
        * Support has been added to the resource manager to load audio data
          into memory rather than naively reading straight from disk. This
          eliminates file IO from the audio thread, but comes at the expense
          of extra memory usage. Support for streaming is not implemented as
          of this commit. Early (largely untested) work has been implemented
          to avoid loading sound files multiple times. This is a simple ref
          count system for now, with hashed files paths being used for the
          key into a binary search tree. The BST is not fully tested and
          likely has bugs which will be ironed out in future commits.
        * Support has been added for configuring the stereo pan effect. Most
          audio engines use a simple balancing technique to implement the
          pan effect, but a true pan should "move" one side to the other
          rather than just simply making one side quieter. With this commit,
          the ma_panner effect can support both modes. The default mode will
          be set to ma_pan_mode_balance which is just a simple balancing and
          is consistent with most other audio engines. A true pan can be used
          by setting the mode to ma_pan_mode_pan.
      ce4d4b35
    • David Reid's avatar
      Fix a bug when mixing a data source using mmap mode. · 99fea233
      David Reid authored
      This was causing mmaped data sources to not loop if they coincidentally
      reached the end at the same time as the final output frame was written.
      99fea233
    • David Reid's avatar
      0be72c02
  2. 06 Jun, 2020 1 commit
  3. 03 Jun, 2020 5 commits
  4. 01 Jun, 2020 6 commits
  5. 31 May, 2020 5 commits
  6. 30 May, 2020 7 commits
  7. 29 May, 2020 6 commits
  8. 28 May, 2020 3 commits
  9. 27 May, 2020 3 commits