tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cubeb_audio_dump.h (3280B)


      1 /*
      2 * Copyright © 2023 Mozilla Foundation
      3 *
      4 * This program is made available under an ISC-style license.  See the
      5 * accompanying file LICENSE for details.
      6 */
      7 
      8 #ifndef CUBEB_AUDIO_DUMP
      9 #define CUBEB_AUDIO_DUMP
     10 
     11 #include "cubeb/cubeb.h"
     12 
     13 #if defined(__cplusplus)
     14 extern "C" {
     15 #endif
     16 
     17 typedef struct cubeb_audio_dump_stream * cubeb_audio_dump_stream_t;
     18 typedef struct cubeb_audio_dump_session * cubeb_audio_dump_session_t;
     19 
     20 // Start audio dumping session
     21 // This can only be called if the other API functions
     22 // aren't currently being called: synchronized externally.
     23 // This is not real-time safe.
     24 //
     25 // This is generally called when deciding to start logging some audio.
     26 //
     27 // Returns 0 in case of success.
     28 int
     29 cubeb_audio_dump_init(cubeb_audio_dump_session_t * session);
     30 
     31 // End audio dumping session
     32 // This can only be called if the other API functions
     33 // aren't currently being called: synchronized externally.
     34 //
     35 // This is generally called when deciding to stop logging some audio.
     36 //
     37 // This is not real-time safe.
     38 // Returns 0 in case of success.
     39 int
     40 cubeb_audio_dump_shutdown(cubeb_audio_dump_session_t session);
     41 
     42 // Register a stream for dumping to a file
     43 // This can only be called if cubeb_audio_dump_write
     44 // isn't currently being called: synchronized externally.
     45 //
     46 // This is generally called when setting up a system-level stream side (either
     47 // input or output).
     48 //
     49 // This is not real-time safe.
     50 // Returns 0 in case of success.
     51 int
     52 cubeb_audio_dump_stream_init(cubeb_audio_dump_session_t session,
     53                             cubeb_audio_dump_stream_t * stream,
     54                             cubeb_stream_params stream_params,
     55                             const char * name);
     56 
     57 // Unregister a stream for dumping to a file
     58 // This can only be called if cubeb_audio_dump_write
     59 // isn't currently being called: synchronized externally.
     60 //
     61 // This is generally called when a system-level audio stream side
     62 // (input/output) has been stopped and drained, and the audio callback isn't
     63 // going to be called.
     64 //
     65 // This is not real-time safe.
     66 // Returns 0 in case of success.
     67 int
     68 cubeb_audio_dump_stream_shutdown(cubeb_audio_dump_session_t session,
     69                                 cubeb_audio_dump_stream_t stream);
     70 
     71 // Start dumping.
     72 // cubeb_audio_dump_write can now be called.
     73 //
     74 // This starts dumping the audio to disk. Generally this is called when
     75 // cubeb_stream_start is caled is called, but can be called at the beginning of
     76 // the application.
     77 //
     78 // This is not real-time safe.
     79 // Returns 0 in case of success.
     80 int
     81 cubeb_audio_dump_start(cubeb_audio_dump_session_t session);
     82 
     83 // Stop dumping.
     84 // cubeb_audio_dump_write can't be called at this point.
     85 //
     86 // This stops dumping the audio to disk cubeb_stream_stop is caled is called,
     87 // but can be called before exiting the application.
     88 //
     89 // This is not real-time safe.
     90 // Returns 0 in case of success.
     91 int
     92 cubeb_audio_dump_stop(cubeb_audio_dump_session_t session);
     93 
     94 // Dump some audio samples for audio stream id.
     95 //
     96 // This is generally called from the real-time audio callback.
     97 //
     98 // This is real-time safe.
     99 // Returns 0 in case of success.
    100 int
    101 cubeb_audio_dump_write(cubeb_audio_dump_stream_t stream, void * audio_samples,
    102                       uint32_t count);
    103 
    104 #ifdef __cplusplus
    105 };
    106 #endif
    107 
    108 #endif