| 
    FreeRDP
    
   | 
 
#include <freerdp/config.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <winpr/crt.h>#include <alsa/asoundlib.h>#include <freerdp/types.h>#include <freerdp/codec/dsp.h>#include "tsmf_audio.h"Functions | |
| static BOOL | tsmf_alsa_open_device (TSMFAlsaAudioDevice *alsa) | 
| static BOOL | tsmf_alsa_open (ITSMFAudioDevice *audio, const char *device) | 
| static BOOL | tsmf_alsa_set_format (ITSMFAudioDevice *audio, UINT32 sample_rate, UINT32 channels, UINT32 bits_per_sample) | 
| static BOOL | tsmf_alsa_play (ITSMFAudioDevice *audio, const BYTE *src, UINT32 data_size) | 
| static UINT64 | tsmf_alsa_get_latency (ITSMFAudioDevice *audio) | 
| static BOOL | tsmf_alsa_flush (ITSMFAudioDevice *audio) | 
| static void | tsmf_alsa_free (ITSMFAudioDevice *audio) | 
| WINPR_ASSERT (sptr) | |
| if (!alsa) return ERROR_OUTOFMEMORY | |
Variables | |
| * | sptr = NULL | 
| TSMFAlsaAudioDevice * | alsa = calloc(1, sizeof(TSMFAlsaAudioDevice)) | 
| alsa iface | Open = tsmf_alsa_open | 
| alsa iface | SetFormat = tsmf_alsa_set_format | 
| alsa iface | Play = tsmf_alsa_play | 
| alsa iface | GetLatency = tsmf_alsa_get_latency | 
| alsa iface | Flush = tsmf_alsa_flush | 
| alsa iface | Free = tsmf_alsa_free | 
| return | CHANNEL_RC_OK | 
| if | ( | ! | alsa | ) | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 

      
  | 
  static | 

      
  | 
  static | 

      
  | 
  static | 
| WINPR_ASSERT | ( | sptr | ) | 
| TSMFAlsaAudioDevice* alsa = calloc(1, sizeof(TSMFAlsaAudioDevice)) | 
| return CHANNEL_RC_OK | 
| alsa iface Flush = tsmf_alsa_flush | 
| alsa iface Free = tsmf_alsa_free | 
| alsa iface GetLatency = tsmf_alsa_get_latency | 
| alsa iface Open = tsmf_alsa_open | 
| alsa iface Play = tsmf_alsa_play | 
| alsa iface SetFormat = tsmf_alsa_set_format | 
| * sptr = NULL |