Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index 4021d4a..85030de 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp | |||
@@ -141,25 +141,27 @@ int Lib::majorVersion() { | |||
141 | int Lib::minorVersion() { | 141 | int Lib::minorVersion() { |
142 | xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); | 142 | xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); |
143 | return m_minor_version; | 143 | return m_minor_version; |
144 | } | 144 | } |
145 | 145 | ||
146 | int Lib::subVersion() { | 146 | int Lib::subVersion() { |
147 | xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); | 147 | xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); |
148 | return m_sub_version; | 148 | return m_sub_version; |
149 | } | 149 | } |
150 | 150 | ||
151 | int Lib::play( const QString& fileName, int startPos, int start_time ) { | 151 | int Lib::play( const QString& fileName, int startPos, int start_time ) { |
152 | QString str = fileName.stripWhiteSpace(); | 152 | QString str = fileName.stripWhiteSpace(); |
153 | xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ); | 153 | if ( !xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ) ) { |
154 | return 0; | ||
155 | } | ||
154 | return xine_play( m_xine, startPos, start_time); | 156 | return xine_play( m_xine, startPos, start_time); |
155 | } | 157 | } |
156 | 158 | ||
157 | void Lib::stop() { | 159 | void Lib::stop() { |
158 | qDebug("<<<<<<<< STOP IN LIB TRIGGERED >>>>>>>"); | 160 | qDebug("<<<<<<<< STOP IN LIB TRIGGERED >>>>>>>"); |
159 | xine_stop( m_xine ); | 161 | xine_stop( m_xine ); |
160 | } | 162 | } |
161 | 163 | ||
162 | void Lib::pause() { | 164 | void Lib::pause() { |
163 | xine_set_param( m_xine, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); | 165 | xine_set_param( m_xine, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); |
164 | } | 166 | } |
165 | 167 | ||
@@ -185,53 +187,73 @@ int Lib::currentTime() { | |||
185 | return m_time/1000; | 187 | return m_time/1000; |
186 | } | 188 | } |
187 | 189 | ||
188 | int Lib::length() { | 190 | int Lib::length() { |
189 | xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); | 191 | xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); |
190 | return m_length/1000; | 192 | return m_length/1000; |
191 | } | 193 | } |
192 | 194 | ||
193 | bool Lib::isSeekable() { | 195 | bool Lib::isSeekable() { |
194 | return xine_get_stream_info ( m_xine, XINE_STREAM_INFO_SEEKABLE ); | 196 | return xine_get_stream_info ( m_xine, XINE_STREAM_INFO_SEEKABLE ); |
195 | } | 197 | } |
196 | 198 | ||
199 | void Lib::seekTo( int time ) { | ||
200 | // xine_trick_mode ( m_xine, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_( | ||
201 | xine_play( m_xine, 0, time ); | ||
202 | } | ||
203 | |||
204 | |||
197 | Frame Lib::currentFrame() { | 205 | Frame Lib::currentFrame() { |
198 | Frame frame; | 206 | Frame frame; |
199 | return frame; | 207 | return frame; |
200 | }; | 208 | }; |
201 | 209 | ||
202 | QString Lib::metaInfo() { | 210 | QString Lib::metaInfo( int number) { |
203 | xine_get_meta_info( m_xine, 0 ); | 211 | return xine_get_meta_info( m_xine, number ); |
204 | } | 212 | } |
205 | 213 | ||
206 | int Lib::error() { | 214 | int Lib::error() { |
207 | return xine_get_error( m_xine ); | 215 | return xine_get_error( m_xine ); |
208 | }; | 216 | }; |
209 | 217 | ||
210 | void Lib::handleXineEvent( xine_event_t* t ) { | 218 | void Lib::handleXineEvent( xine_event_t* t ) { |
211 | if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) { | 219 | if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) { |
212 | emit stopped(); | 220 | emit stopped(); |
213 | } | 221 | } |
214 | } | 222 | } |
215 | 223 | ||
216 | 224 | ||
217 | void Lib::setShowVideo( bool video ) { | 225 | void Lib::setShowVideo( bool video ) { |
218 | m_video = video; | 226 | m_video = video; |
219 | ::null_set_show_video( m_videoOutput, video ); | 227 | ::null_set_show_video( m_videoOutput, video ); |
220 | } | 228 | } |
221 | 229 | ||
222 | bool Lib::isShowingVideo() { | 230 | bool Lib::isShowingVideo() { |
223 | return ::null_is_showing_video( m_videoOutput ); | 231 | return ::null_is_showing_video( m_videoOutput ); |
224 | } | 232 | } |
225 | 233 | ||
234 | bool Lib::hasVideo() { | ||
235 | //looks like it is not implemented yet | ||
236 | //return xine_get_stream_info( m_xine, XINE_STREAM_INFO_VIDEO_CHANNELS ); | ||
237 | // ugly hack until xine is ready, look for the width of the video | ||
238 | int test = xine_get_stream_info( m_xine, 2 ); | ||
239 | if( test > 0 ) { | ||
240 | // qDebug( QString(" has video: %1").arg( test ) ); | ||
241 | return true; | ||
242 | } else { | ||
243 | //qDebug ( "does not have video "); | ||
244 | return false; | ||
245 | } | ||
246 | } | ||
247 | |||
226 | void Lib::showVideoFullScreen( bool fullScreen ) { | 248 | void Lib::showVideoFullScreen( bool fullScreen ) { |
227 | ::null_set_fullscreen( m_videoOutput, fullScreen ); | 249 | ::null_set_fullscreen( m_videoOutput, fullScreen ); |
228 | } | 250 | } |
229 | 251 | ||
230 | bool Lib::isVideoFullScreen() { | 252 | bool Lib::isVideoFullScreen() { |
231 | return ::null_is_fullscreen( m_videoOutput ); | 253 | return ::null_is_fullscreen( m_videoOutput ); |
232 | } | 254 | } |
233 | 255 | ||
234 | void Lib::setScaling( bool scale ) { | 256 | void Lib::setScaling( bool scale ) { |
235 | ::null_set_scaling( m_videoOutput, scale ); | 257 | ::null_set_scaling( m_videoOutput, scale ); |
236 | } | 258 | } |
237 | 259 | ||
@@ -249,17 +271,14 @@ void Lib::xine_event_handler( void* user_data, xine_event_t* t ) { | |||
249 | } | 271 | } |
250 | 272 | ||
251 | void Lib::xine_display_frame( void* user_data, uint8_t *frame, | 273 | void Lib::xine_display_frame( void* user_data, uint8_t *frame, |
252 | int width, int height, int bytes ) { | 274 | int width, int height, int bytes ) { |
253 | ( (Lib*)user_data)->drawFrame( frame, width, height, bytes ); | 275 | ( (Lib*)user_data)->drawFrame( frame, width, height, bytes ); |
254 | } | 276 | } |
255 | 277 | ||
256 | void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { | 278 | void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { |
257 | if ( !m_video ) { | 279 | if ( !m_video ) { |
258 | qWarning("not showing video now"); | 280 | qWarning("not showing video now"); |
259 | return; | 281 | return; |
260 | } | 282 | } |
261 | |||
262 | // qWarning( "called draw frame %d %d", width, height ); | ||
263 | |||
264 | m_wid-> setVideoFrame ( frame, width, height, bytes ); | 283 | m_wid-> setVideoFrame ( frame, width, height, bytes ); |
265 | } | 284 | } |