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

« back to all changes in this revision

Viewing changes to libecasound/audioio-flac.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_FLAC_H
 
2
#define INCLUDED_AUDIOIO_FLAC_H
 
3
 
 
4
#include <string>
 
5
#include <cstdio>
 
6
#include "audioio-buffered.h"
 
7
#include "audioio-forked-stream.h"
 
8
 
 
9
/**
 
10
 * Interface to FLAC decoders and encoders using UNIX pipe i/o.
 
11
 *
 
12
 * @author Kai Vehmanen
 
13
 */
 
14
class FLAC_FORKED_INTERFACE : public AUDIO_IO_BUFFERED,
 
15
                              protected AUDIO_IO_FORKED_STREAM {
 
16
 
 
17
 private:
 
18
  
 
19
  static std::string default_input_cmd;
 
20
  static std::string default_output_cmd;
 
21
 
 
22
 public:
 
23
 
 
24
  static void set_input_cmd(const std::string& value);
 
25
  static void set_output_cmd(const std::string& value);
 
26
 
 
27
 public:
 
28
 
 
29
  FLAC_FORKED_INTERFACE (const std::string& name = "");
 
30
  virtual ~FLAC_FORKED_INTERFACE(void);
 
31
    
 
32
  virtual FLAC_FORKED_INTERFACE* clone(void) const { return new FLAC_FORKED_INTERFACE(*this); }
 
33
  virtual FLAC_FORKED_INTERFACE* new_expr(void) const { return new FLAC_FORKED_INTERFACE(*this); }
 
34
 
 
35
  virtual std::string name(void) const { return("FLAC stream"); }
 
36
  virtual std::string description(void) const { return("Interface to FLAC decoders and encoders using UNIX pipe i/o."); }
 
37
  virtual std::string parameter_names(void) const { return("label"); }
 
38
  virtual bool locked_audio_format(void) const { return(true); }
 
39
 
 
40
  virtual int supported_io_modes(void) const { return(io_read | io_write); }
 
41
  virtual bool supports_seeking(void) const { return(false); }
 
42
 
 
43
  virtual void open(void) throw(AUDIO_IO::SETUP_ERROR &);
 
44
  virtual void close(void);
 
45
  
 
46
  virtual long int read_samples(void* target_buffer, long int samples);
 
47
  virtual void write_samples(void* target_buffer, long int samples);
 
48
 
 
49
  virtual bool finished(void) const { return(finished_rep); }
 
50
  virtual void seek_position(void);
 
51
 
 
52
  virtual void set_parameter(int param, std::string value);
 
53
  virtual std::string get_parameter(int param) const;
 
54
 
 
55
  // --
 
56
  // Realtime related functions
 
57
  // --
 
58
  
 
59
 private:
 
60
 
 
61
  bool triggered_rep;
 
62
  bool finished_rep;
 
63
  long int bytes_rep;
 
64
  int filedes_rep;
 
65
  FILE* f1_rep;
 
66
  
 
67
  void fork_input_process(void);
 
68
  void fork_output_process(void);
 
69
};
 
70
 
 
71
#endif