92 } |
91 } |
93 |
92 |
94 void S60AudioEncoderControl::setBitRate(int value) |
93 void S60AudioEncoderControl::setBitRate(int value) |
95 { |
94 { |
96 Q_UNUSED(value) |
95 Q_UNUSED(value) |
97 } |
96 //Note: None of the default codecs provided in the MMF support the setting of bit rates. |
98 |
97 } |
99 QtMedia::EncodingQuality S60AudioEncoderControl::quality() const |
98 |
100 { |
99 QtMediaServices::EncodingQuality S60AudioEncoderControl::quality() const |
101 return QtMedia::NormalQuality; |
100 { |
102 } |
101 return m_quality; |
103 |
102 } |
104 void S60AudioEncoderControl::setQuality(QtMedia::EncodingQuality value) |
103 |
|
104 void S60AudioEncoderControl::setQuality(QtMediaServices::EncodingQuality value) |
105 { |
105 { |
106 QAudioFormat fmt = m_session->format(); |
106 QAudioFormat fmt = m_session->format(); |
107 |
107 |
108 switch (value) { |
108 switch (value) { |
109 case QtMedia::VeryLowQuality: |
109 case QtMediaServices::VeryLowQuality: |
110 case QtMedia::LowQuality: |
110 case QtMediaServices::LowQuality: |
111 // low, 8000Hz mono U8 |
111 // low, 8000Hz mono U8 |
112 fmt.setSampleType(QAudioFormat::UnSignedInt); |
112 fmt.setSampleType(QAudioFormat::UnSignedInt); |
113 fmt.setSampleSize(8); |
113 fmt.setSampleSize(8); |
114 fmt.setFrequency(8000); |
114 fmt.setFrequency(8000); |
115 fmt.setChannels(1); |
115 fmt.setChannels(1); |
116 break; |
116 break; |
117 case QtMedia::NormalQuality: |
117 case QtMediaServices::NormalQuality: |
118 // medium, 22050Hz mono S16 |
118 // medium, 22050Hz mono S16 |
119 fmt.setSampleType(QAudioFormat::SignedInt); |
119 fmt.setSampleType(QAudioFormat::SignedInt); |
120 fmt.setSampleSize(16); |
120 fmt.setSampleSize(16); |
121 fmt.setFrequency(22050); |
121 fmt.setFrequency(22050); |
122 fmt.setChannels(1); |
122 fmt.setChannels(1); |
123 break; |
123 break; |
124 case QtMedia::HighQuality: |
124 case QtMediaServices::HighQuality: |
125 case QtMedia::VeryHighQuality: |
125 case QtMediaServices::VeryHighQuality: |
126 // high, 44100Hz mono S16 |
126 // high, 44100Hz mono S16 |
127 fmt.setSampleType(QAudioFormat::SignedInt); |
127 fmt.setSampleType(QAudioFormat::SignedInt); |
128 fmt.setSampleSize(16); |
128 fmt.setSampleSize(16); |
129 fmt.setFrequency(44100); |
129 fmt.setFrequency(44100); |
130 fmt.setChannels(1); |
130 fmt.setChannels(1); |
131 break; |
131 break; |
132 default: |
132 default: |
133 break; |
133 break; |
134 } |
134 } |
135 m_session->setFormat(fmt); |
135 m_session->setFormat(fmt); |
|
136 m_quality = value; |
136 } |
137 } |
137 |
138 |
138 QStringList S60AudioEncoderControl::supportedEncodingOptions(const QString &codec) const |
139 QStringList S60AudioEncoderControl::supportedEncodingOptions(const QString &codec) const |
139 { |
140 { |
140 Q_UNUSED(codec) |
141 Q_UNUSED(codec) |
141 |
|
142 QStringList list; |
142 QStringList list; |
143 return list; |
143 if (codec == "PCM") |
|
144 list << "quality" << "channels" << "samplerate"; |
|
145 return list; |
144 } |
146 } |
145 |
147 |
146 QVariant S60AudioEncoderControl::encodingOption(const QString &codec, const QString &name) const |
148 QVariant S60AudioEncoderControl::encodingOption(const QString &codec, const QString &name) const |
147 { |
149 { |
148 Q_UNUSED(codec) |
150 if (codec == "PCM") { |
149 QAudioFormat fmt = m_session->format(); |
151 QAudioFormat fmt = m_session->format(); |
150 |
152 |
151 if(qstrcmp(name.toLocal8Bit().constData(), "bitrate") == 0) { |
153 if(qstrcmp(name.toLocal8Bit().constData(), "bitrate") == 0) { |
152 return QVariant(fmt.frequency()); |
154 return QVariant(bitRate()); |
|
155 } |
|
156 else if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) { |
|
157 return QVariant(quality()); |
|
158 } |
|
159 else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) { |
|
160 return QVariant(fmt.channels()); |
|
161 } |
|
162 else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) { |
|
163 return QVariant(fmt.frequency()); |
|
164 } |
153 } |
165 } |
154 |
|
155 return QVariant(); |
166 return QVariant(); |
156 } |
167 } |
157 |
168 |
158 void S60AudioEncoderControl::setEncodingOption( |
169 void S60AudioEncoderControl::setEncodingOption( |
159 const QString &codec, const QString &name, const QVariant &value) |
170 const QString &codec, const QString &name, const QVariant &value) |
160 { |
171 { |
161 Q_UNUSED(value) |
172 if (codec == "PCM") { |
162 Q_UNUSED(codec) |
173 if(qstrcmp(name.toLocal8Bit().constData(), "bitrate") == 0) { |
163 |
|
164 //QAudioFormat fmt = m_session->format(); |
|
165 |
|
166 if(qstrcmp(name.toLocal8Bit().constData(), "bitrate") == 0) { |
|
167 if (value.toString() == "vbr") |
|
168 setBitRate(-1); |
|
169 else |
|
170 setBitRate(value.toInt()); |
174 setBitRate(value.toInt()); |
171 |
175 } else if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) { |
172 } else if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) { |
176 setQuality((QtMediaServices::EncodingQuality)value.toInt()); |
173 setQuality((QtMedia::EncodingQuality)value.toInt()); |
177 } else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) { |
174 |
178 setChannelCount(value.toInt()); |
175 } else |
179 } else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) { |
176 qWarning() << "option: " << name << " is an unknown option!"; |
180 setSampleRate(value.toInt()); |
|
181 } |
|
182 } |
177 } |
183 } |
178 |
184 |
179 int S60AudioEncoderControl::sampleRate() const |
185 int S60AudioEncoderControl::sampleRate() const |
180 { |
186 { |
181 return m_session->format().frequency(); |
187 return m_session->format().frequency(); |
182 } |
188 } |
183 |
189 |
184 void S60AudioEncoderControl::setSampleRate(int sampleRate) |
190 void S60AudioEncoderControl::setSampleRate(int sampleRate) |
185 { |
191 { |
186 if (sampleRate > 0) { |
192 QAudioFormat fmt = m_session->format(); |
187 QAudioFormat fmt = m_session->format(); |
193 fmt.setFrequency(sampleRate); |
188 fmt.setFrequency(sampleRate); |
194 m_session->setFormat(fmt); |
189 m_session->setFormat(fmt); |
|
190 } |
|
191 } |
195 } |
192 |
196 |
193 QList<int> S60AudioEncoderControl::supportedSampleRates(const QAudioEncoderSettings &settings, bool *continuous) const |
197 QList<int> S60AudioEncoderControl::supportedSampleRates(const QAudioEncoderSettings &settings, bool *continuous) const |
194 { |
198 { |
195 if (continuous) |
199 if (continuous) |
196 *continuous = false; |
200 *continuous = false; |
197 |
201 |
198 return m_session->supportedAudioSampleRates(); |
202 return m_session->supportedAudioSampleRates(settings); |
199 } |
203 } |
200 |
204 |
201 int S60AudioEncoderControl::channelCount() const |
205 int S60AudioEncoderControl::channelCount() const |
202 { |
206 { |
203 return m_session->format().channels(); |
207 return m_session->format().channels(); |
204 } |
208 } |
205 |
209 |
206 void S60AudioEncoderControl::setChannelCount(int channels) |
210 void S60AudioEncoderControl::setChannelCount(int channels) |
207 { |
211 { |
208 if (channels > 0) { |
212 QAudioFormat fmt = m_session->format(); |
209 QAudioFormat fmt = m_session->format(); |
213 fmt.setChannels(channels); |
210 fmt.setChannels(channels); |
214 m_session->setFormat(fmt); |
211 m_session->setFormat(fmt); |
|
212 } |
|
213 } |
|
214 |
|
215 QList<int> S60AudioEncoderControl::supportedChannelCounts() const |
|
216 { |
|
217 return QList<int>() << 1 << 2; |
|
218 } |
215 } |
219 |
216 |
220 int S60AudioEncoderControl::sampleSize() const |
217 int S60AudioEncoderControl::sampleSize() const |
221 { |
218 { |
222 return m_session->format().sampleSize(); |
219 return m_session->format().sampleSize(); |