Mercurial > octave-nkf
annotate libinterp/dldfcn/player_class.h @ 19534:8bb399569393
Add Octave copyright header block to audio project files
* libinterp/dldfcn/__player_audioplayer__.cc,
libinterp/dldfcn/__recorder_audiorecorder__.cc,
libinterp/dldfcn/audiodevinfo.cc, libinterp/dldfcn/audioinfo.cc,
libinterp/dldfcn/audioread.cc, libinterp/dldfcn/audiowrite.cc,
libinterp/dldfcn/player_class.cc, libinterp/dldfcn/player_class.h,
libinterp/dldfcn/recorder_class.cc, libinterp/dldfcn/recorder_class.h,
scripts/audio/@audioplayer/__get_properties__.m,
scripts/audio/@audioplayer/audioplayer.m,
scripts/audio/@audioplayer/display.m, scripts/audio/@audioplayer/get.m,
scripts/audio/@audioplayer/isplaying.m, scripts/audio/@audioplayer/pause.m,
scripts/audio/@audioplayer/play.m,
scripts/audio/@audioplayer/playblocking.m,
scripts/audio/@audioplayer/resume.m, scripts/audio/@audioplayer/set.m,
scripts/audio/@audioplayer/stop.m, scripts/audio/@audioplayer/subsasgn.m,
scripts/audio/@audioplayer/subsref.m,
scripts/audio/@audiorecorder/__get_properties__.m,
scripts/audio/@audiorecorder/audiorecorder.m,
scripts/audio/@audiorecorder/display.m, scripts/audio/@audiorecorder/get.m,
scripts/audio/@audiorecorder/getaudiodata.m,
scripts/audio/@audiorecorder/getplayer.m,
scripts/audio/@audiorecorder/isrecording.m,
scripts/audio/@audiorecorder/pause.m, scripts/audio/@audiorecorder/play.m,
scripts/audio/@audiorecorder/record.m,
scripts/audio/@audiorecorder/recordblocking.m,
scripts/audio/@audiorecorder/resume.m, scripts/audio/@audiorecorder/set.m,
scripts/audio/@audiorecorder/stop.m,
scripts/audio/@audiorecorder/subsasgn.m,
scripts/audio/@audiorecorder/subsref.m: Add Octave copyright header.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Tue, 01 Oct 2013 23:36:37 -0400 |
parents | b9df6b3fd5ef |
children | 36a26a131209 |
rev | line source |
---|---|
19534
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
1 /* |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
2 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
3 Copyright (C) 2013 Vytautas JanĨauskas |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
4 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
5 This file is part of Octave. |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
6 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
7 Octave is free software; you can redistribute it and/or modify it |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
9 Free Software Foundation; either version 3 of the License, or (at your |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
10 option) any later version. |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
11 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but WITHOUT |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
15 for more details. |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
16 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
18 along with Octave; see the file COPYING. If not, see |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
20 |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
21 */ |
8bb399569393
Add Octave copyright header block to audio project files
Mike Miller <mtmiller@ieee.org>
parents:
19509
diff
changeset
|
22 |
19508
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
23 #ifndef PLAYER_CLASS_H |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
24 #define PLAYER_CLASS_H |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
25 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
26 #include <string> |
19509
b9df6b3fd5ef
Fix includes in player and recorder class files, add instructions to build them
Vytautas Jančauskas <unaudio@gmail.com>
parents:
19508
diff
changeset
|
27 #include "oct.h" |
b9df6b3fd5ef
Fix includes in player and recorder class files, add instructions to build them
Vytautas Jančauskas <unaudio@gmail.com>
parents:
19508
diff
changeset
|
28 #include "ov-int32.h" |
19508
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
29 #include <portaudio.h> |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
30 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
31 #include "player_class.h" |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
32 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
33 enum audio_type {INT8, UINT8, INT16, DOUBLE}; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
34 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
35 class audioplayer : public octave_base_value |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
36 { |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
37 public: |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
38 audioplayer(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
39 ~audioplayer(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
40 // Overloaded base functions |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
41 double player_value() const { return 0; } |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
42 virtual double scalar_value (bool frc_str_conv = false) const |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
43 { |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
44 return 0; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
45 } |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
46 void print (std::ostream& os, bool pr_as_read_syntax = false) const; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
47 void print_raw (std::ostream& os, bool pr_as_read_syntax) const; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
48 // Properties |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
49 bool is_constant (void) const { return true;} |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
50 bool is_defined (void) const { return true;} |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
51 bool print_as_scalar (void) const { return true;} |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
52 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
53 void init(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
54 void init_fn(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
55 void set_y(octave_value y); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
56 void set_y(octave_function *fn); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
57 void set_y(std::string fn); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
58 Matrix &get_y(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
59 RowVector *get_left(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
60 RowVector *get_right(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
61 void set_fs(int fs); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
62 int get_fs(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
63 void set_nbits(int nbits); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
64 int get_nbits(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
65 void set_id(int id); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
66 int get_id(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
67 int get_channels(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
68 audio_type get_type(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
69 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
70 void set_sample_number(unsigned int sample); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
71 unsigned int get_sample_number(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
72 unsigned int get_total_samples(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
73 void set_end_sample(unsigned int sample); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
74 unsigned int get_end_sample(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
75 void reset_end_sample(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
76 void set_tag(charMatrix tag); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
77 charMatrix get_tag(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
78 void set_userdata(octave_value userdata); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
79 octave_value get_userdata(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
80 PaStream *get_stream(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
81 octave_function *octave_callback_function; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
82 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
83 void playblocking(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
84 void play(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
85 void pause(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
86 void resume(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
87 void stop(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
88 bool isplaying(); |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
89 private: |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
90 Matrix y; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
91 RowVector left; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
92 RowVector right; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
93 charMatrix tag; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
94 octave_value userdata; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
95 int channels; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
96 int fs; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
97 int nbits; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
98 int id; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
99 unsigned int sample_number; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
100 unsigned int end_sample; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
101 PaStream *stream; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
102 PaStreamParameters output_parameters; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
103 audio_type type; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
104 DECLARE_OCTAVE_ALLOCATOR |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
105 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
106 }; |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
107 |
91ee78cdba6c
New files for audio playback and recording
Vytautas Jančauskas <unaudio@gmail.com>
parents:
diff
changeset
|
108 #endif // PLAYER_CLASS_H |