root/branches/streaming-rework/src/freebob-interface.cpp

Revision 438, 3.1 kB (checked in by pieterpalmers, 17 years ago)

- introduced generic setting of the samplerate, removed AVC depency for other IAvDevices.

Line 
1 /* freebob-interface.cpp
2  * Copyright (C) 2007 by Pieter Palmers
3  *
4  * This file is part of FreeBoB.
5  *
6  * FreeBoB is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * FreeBoB is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with FreeBoB; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18  * MA 02111-1307 USA.
19  */
20
21 #include "freebob-interface.h"
22
23 int
24 convertESampleRate(const ESampleRate freq)
25 {
26     int value = 0;
27
28     switch ( freq ) {
29     case eSF_22050Hz:
30         value = 22050;
31         break;
32     case eSF_24000Hz:
33         value = 24000;
34         break;
35     case eSF_32000Hz:
36         value = 32000;
37         break;
38     case eSF_44100Hz:
39         value = 44100;
40         break;
41     case eSF_48000Hz:
42         value = 48000;
43         break;
44     case eSF_88200Hz:
45         value = 88200;
46         break;
47     case eSF_96000Hz:
48         value = 96000;
49         break;
50     case eSF_176400Hz:
51         value = 176400;
52         break;
53     case eSF_192000Hz:
54         value = 192000;
55         break;
56     case eSF_AnyLow:
57         value = 48000;
58         break;
59     case eSF_AnyMid:
60         value = 96000;
61         break;
62     case eSF_AnyHigh:
63         value = 192000;
64         break;
65     default:
66         value = 0;
67     }
68     return value;
69 }
70
71 ESampleRate
72 parseSampleRate( const int sampleRate )
73 {
74     ESampleRate efreq;
75     switch ( sampleRate ) {
76     case 22050:
77         efreq = eSF_22050Hz;
78         break;
79     case 24000:
80         efreq = eSF_24000Hz;
81         break;
82     case 32000:
83         efreq = eSF_32000Hz;
84         break;
85     case 44100:
86         efreq = eSF_44100Hz;
87         break;
88     case 48000:
89         efreq = eSF_48000Hz;
90         break;
91     case 88200:
92         efreq = eSF_88200Hz;
93         break;
94     case 96000:
95         efreq = eSF_96000Hz;
96         break;
97     case 176400:
98         efreq = eSF_176400Hz;
99         break;
100     case 192000:
101         efreq = eSF_192000Hz;
102         break;
103     default:
104         efreq = eSF_DontCare;
105     }
106     return efreq;
107 }
108
109 std::ostream&
110 operator<<( std::ostream& stream, ESampleRate sampleRate )
111 {
112     char* str;
113     switch ( sampleRate ) {
114     case eSF_22050Hz:
115         str = "22050";
116         break;
117     case eSF_24000Hz:
118         str = "24000";
119         break;
120     case eSF_32000Hz:
121         str = "32000";
122         break;
123     case eSF_44100Hz:
124         str = "44100";
125         break;
126     case eSF_48000Hz:
127         str = "48000";
128         break;
129     case eSF_88200Hz:
130         str = "88200";
131         break;
132     case eSF_96000Hz:
133         str = "96000";
134         break;
135     case eSF_176400Hz:
136         str = "176400";
137         break;
138     case eSF_192000Hz:
139         str = "192000";
140         break;
141     case eSF_DontCare:
142     default:
143         str = "unknown";
144     }
145     return stream << str;
146 }
Note: See TracBrowser for help on using the browser.