# simple_client.c File Reference

This simple client demonstrates the basic features of JACK as they would be used by many applications. More...

`#include <stdio.h>`
`#include <errno.h>`
`#include <unistd.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <jack/jack.h>`

## Enumerations
enum | { Init, Run, Exit }
## Functions
int | process (jack_nframes_t nframes, void *arg)
void | jack_shutdown (void *arg)
int | main (int argc, char *argv[])
## Variables
jack_port_t * | input_port
jack_port_t * | output_port
jack_client_t * | client
volatile enum { ... } | client_state

## Detailed Description

This simple client demonstrates the basic features of JACK as they would be used by many applications.

## Enumeration Type Documentation

anonymous enum

  | Enumerator:
  Init |
  Run |
  Exit |

## Function Documentation

void jack_shutdown | ( | void * | arg | ) |

| JACK calls this shutdown_callback if the server ever shuts down or decides to disconnect the client.

int main | ( | int | argc,
|  | char * | argv[]
| ) |

int process | ( | jack_nframes_t | nframes,
|  | void * | arg
| ) |

| The process callback for this JACK application is called in a special realtime thread once for each audio cycle. This client follows a simple rule: when the JACK transport is running, copy the input port to the output. When it stops, exit.

## Variable Documentation

jack_client_t* client

volatile { ... } client_state

jack_port_t* input_port

jack_port_t* output_port