~ubuntu-branches/ubuntu/jaunty/ecasound2.2/jaunty

« back to all changes in this revision

Viewing changes to libecasound/plugins/audioio_jack.h

  • Committer: Bazaar Package Importer
  • Author(s): Junichi Uekawa
  • Date: 2005-04-14 09:15:48 UTC
  • Revision ID: james.westby@ubuntu.com-20050414091548-o7kgb47z0tcunh0s
Tags: upstream-2.4.1
ImportĀ upstreamĀ versionĀ 2.4.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef INCLUDED_AUDIOIO_JACK_H
 
2
#define INCLUDED_AUDIOIO_JACK_H
 
3
 
 
4
#include <string>
 
5
 
 
6
#include "audioio-device.h"
 
7
#include "sample-specs.h"
 
8
 
 
9
class AUDIO_IO_MANAGER;
 
10
class AUDIO_IO_JACK_MANAGER;
 
11
 
 
12
/**
 
13
 * Interface to JACK audio framework.
 
14
 *
 
15
 * @author Kai Vehmanen
 
16
 */
 
17
class AUDIO_IO_JACK : public AUDIO_IO_DEVICE {
 
18
 
 
19
 public:
 
20
 
 
21
  virtual std::string name(void) const { return("JACK interface"); }
 
22
  virtual std::string description(void) const { return(name()); }
 
23
  virtual std::string parameter_names(void) const;
 
24
 
 
25
  AUDIO_IO_JACK (void);
 
26
  ~AUDIO_IO_JACK(void);
 
27
 
 
28
  virtual void set_parameter(int param, string value);
 
29
  virtual string get_parameter(int param) const;
 
30
 
 
31
  /** @name Function reimplemented from AUDIO_IO */
 
32
  /*@{*/
 
33
 
 
34
  virtual int supported_io_modes(void) const { return(io_read | io_write); }
 
35
  virtual bool locked_audio_format(void) const { return(true); }
 
36
  
 
37
  virtual void open(void) throw(AUDIO_IO::SETUP_ERROR&);
 
38
  virtual void close(void);
 
39
 
 
40
  virtual bool finished(void) const;
 
41
 
 
42
  virtual long int read_samples(void* target_buffer, long int samples);
 
43
  virtual void write_samples(void* target_buffer, long int samples);
 
44
 
 
45
  virtual AUDIO_IO_MANAGER* create_object_manager(void) const;
 
46
  void set_manager(AUDIO_IO_JACK_MANAGER* mgr, int id);
 
47
 
 
48
  /*@}*/
 
49
 
 
50
  /** @name Function reimplemented from AUDIO_IO_DEVICE */
 
51
  /*@{*/
 
52
 
 
53
  virtual void prepare(void);
 
54
  virtual void start(void);
 
55
  virtual void stop(void);
 
56
 
 
57
  virtual long int latency(void) const;
 
58
  virtual long int prefill_space(void) const { return(0); }
 
59
 
 
60
  /*@}*/
 
61
 
 
62
  AUDIO_IO_JACK* clone(void) const { return new AUDIO_IO_JACK(*this); }
 
63
  AUDIO_IO_JACK* new_expr(void) const { return new AUDIO_IO_JACK(); }  
 
64
 
 
65
 private:
 
66
 
 
67
  AUDIO_IO_JACK_MANAGER* jackmgr_rep;
 
68
  int myid_rep;
 
69
 
 
70
  std::string secondparam_rep;
 
71
  SAMPLE_SPECS::sample_pos_t curpos_rep;
 
72
 
 
73
 private:
 
74
 
 
75
  AUDIO_IO_JACK (const AUDIO_IO_JACK& x) { }
 
76
  AUDIO_IO_JACK& operator=(const AUDIO_IO_JACK& x) {  return *this; }
 
77
};
 
78
 
 
79
#ifdef ECA_ENABLE_AUDIOIO_PLUGINS
 
80
extern "C" {
 
81
AUDIO_IO* audio_io_descriptor(void);
 
82
int audio_io_interface_version(void);
 
83
const char* audio_io_keyword(void);
 
84
const char* audio_io_keyword_regex(void);
 
85
};
 
86
#endif
 
87
 
 
88
#endif