1. 08 Nov, 2020 4 commits
    • David Reid's avatar
    • David Reid's avatar
      Fix warnings on the Emscripten build. · dd8f6c4c
      David Reid authored
      dd8f6c4c
    • David Reid's avatar
      Fix a compilation warning. · 8451af8a
      David Reid authored
      8451af8a
    • David Reid's avatar
      Add support for custom backends. · 887bbeee
      David Reid authored
      This commit includes a few changes required for better supporting this:
      
        * Extra members have been added to ma_device_info which are going to
          eventually replace the min and max channels and sample rates. The
          new system is going to provide a list of supported data formats,
          groups by format/channels/rate and some flags. The only flag used
          at the moment is whether or not the format is usable in exclusive
          mode. The custom backend is the only backend currently using these
          new device info properties, and a backwards-compatibility layer has
          been implemented to fill out the old properties. Built-in backends
          will be migrated over to the new system in time.
      
        * A new set of backend callbacks have been implemented. Only the
          custom backend is using these at the moment. Built-in backends will
          be migrated over to these new backends soon.
      
        * A new public API called ma_device_get_state() has been added which
          returns the current state of the device (whether or not it's
          started or stopped). This is necessary for some custom backends.
      
        * A new public API called ma_device_handle_backend_data_callback()
          has been added. This is required for custom backends who use the
          callback paradigm for data delivery.
      
        * A new type of ring buffer has been created called ma_duplex_rb.
          This is used as an intermediary buffer for duplex devices running
          on backends that use the callback paradigm. It's used internally by
          ma_device_handle_backend_data_callback(). In the future it's
          planned to expand ma_duplex_rb to handle desyncs by dynamically
          resampling to get both sides back in sync. This is not implemented
          as of this commit.
      
      Future work will involve converting existing built-in backends to be
      consistent with the new ideas introduced with custom backend support.
      887bbeee
  2. 07 Nov, 2020 2 commits
  3. 06 Nov, 2020 3 commits
  4. 05 Nov, 2020 2 commits
  5. 04 Nov, 2020 4 commits
  6. 03 Nov, 2020 6 commits
  7. 01 Nov, 2020 17 commits
  8. 31 Oct, 2020 1 commit
  9. 30 Oct, 2020 1 commit