summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/frame.cpp51
-rw-r--r--noncore/multimedia/opieplayer2/frame.h45
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp8
-rw-r--r--noncore/multimedia/opieplayer2/lib.h10
-rw-r--r--noncore/multimedia/opieplayer2/opieplayer2.pro4
-rw-r--r--noncore/multimedia/opieplayer2/zeckeplayer.pro13
6 files changed, 4 insertions, 127 deletions
diff --git a/noncore/multimedia/opieplayer2/frame.cpp b/noncore/multimedia/opieplayer2/frame.cpp
deleted file mode 100644
index 3a3e418..0000000
--- a/noncore/multimedia/opieplayer2/frame.cpp
+++ b/dev/null
@@ -1,51 +0,0 @@
1
2#include "frame.h"
3
4using namespace XINE;
5
6Frame::Frame() {
7 m_height = 0;
8 m_width = 0;
9 m_ratioCode = 0;
10 m_format = 0;
11 m_u = 0;
12 m_y = 0;
13 m_v = 0;
14}
15Frame::Frame( int *width, int* height,
16 int *ratio_code, int *format,
17 uint8_t **y, uint8_t **u,
18 uint8_t **v ) {
19 m_width = width;
20 m_height = height;
21 m_ratioCode = ratio_code ;
22 m_format = format;
23 m_y = y;
24 m_u = u;
25 m_v = v;
26}
27Frame::~Frame() {
28
29
30}
31void Frame::setHeight( int* height ) {
32 m_height = height;
33}
34void Frame::setWidth( int* width ) {
35 m_width = width;
36}
37void Frame::setRatioCode( int* ratio ) {
38 m_ratioCode = ratio;
39}
40void Frame::setFormat( int* format ) {
41 m_format = format;
42}
43void Frame::setU( uint8_t** u ) {
44 m_u = u;
45}
46void Frame::setY( uint8_t** y ) {
47 m_y = y;
48}
49void Frame::setV( uint8_t** v ) {
50 m_v = v;
51}
diff --git a/noncore/multimedia/opieplayer2/frame.h b/noncore/multimedia/opieplayer2/frame.h
deleted file mode 100644
index 0ce7feb..0000000
--- a/noncore/multimedia/opieplayer2/frame.h
+++ b/dev/null
@@ -1,45 +0,0 @@
1
2#ifndef XINELIBFRAME_H
3#define XINELIBFRAME_H
4
5#include <xine.h>
6
7namespace XINE {
8 class Frame {
9 public:
10 Frame();
11 Frame( int *width, int* height,
12 int *ratio_code, int *format,
13 uint8_t **y, uint8_t **u,
14 uint8_t **v );
15 ~Frame();
16 int* width() { return m_width; };
17 int* height() { return m_height; };
18
19 int* ratioCode() { return m_ratioCode; };
20 int* format() { return m_format; };
21 uint8_t ** y() { return m_y; };
22 uint8_t ** u() { return m_u; };
23 uint8_t ** v() { return m_v; };
24
25 void setHeight( int* );
26 void setWidth( int* );
27 void setRatioCode(int *);
28 void setFormat( int* );
29 void setU( uint8_t** );
30 void setY( uint8_t** );
31 void setV( uint8_t** );
32
33 private:
34 friend class Lib;
35 int* m_height;
36 int* m_width;
37 int* m_ratioCode;
38 int* m_format;
39 uint8_t** m_u;
40 uint8_t** m_y;
41 uint8_t** m_v;
42 };
43};
44
45#endif
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index 9f0d448..e3289bc 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -1,445 +1,437 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 LJP <> 5 Copyright (c) 2002 LJP <>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#include "xinevideowidget.h" 34#include "xinevideowidget.h"
35#include "frame.h"
36#include "lib.h" 35#include "lib.h"
37 36
38/* OPIE */ 37/* OPIE */
39#include <opie2/odebug.h> 38#include <opie2/odebug.h>
40#include <qpe/global.h> 39#include <qpe/global.h>
41 40
42/* QT */ 41/* QT */
43#include <qtextstream.h> 42#include <qtextstream.h>
44#include <qdir.h> 43#include <qdir.h>
45#include <qgfx_qws.h> 44#include <qgfx_qws.h>
46 45
47/* STD */ 46/* STD */
48#include <assert.h> 47#include <assert.h>
49#include <unistd.h> 48#include <unistd.h>
50 49
51typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame, 50typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame,
52 int width, int height,int bytes ); 51 int width, int height,int bytes );
53 52
54extern "C" { 53extern "C" {
55 xine_vo_driver_t* init_video_out_plugin( xine_t *xine, void* video, display_xine_frame_t, void * ); 54 xine_vo_driver_t* init_video_out_plugin( xine_t *xine, void* video, display_xine_frame_t, void * );
56 int null_is_showing_video( const xine_vo_driver_t* self ); 55 int null_is_showing_video( const xine_vo_driver_t* self );
57 void null_set_show_video( const xine_vo_driver_t* self, int show ); 56 void null_set_show_video( const xine_vo_driver_t* self, int show );
58 int null_is_fullscreen( const xine_vo_driver_t* self ); 57 int null_is_fullscreen( const xine_vo_driver_t* self );
59 void null_set_fullscreen( const xine_vo_driver_t* self, int screen ); 58 void null_set_fullscreen( const xine_vo_driver_t* self, int screen );
60 int null_is_scaling( const xine_vo_driver_t* self ); 59 int null_is_scaling( const xine_vo_driver_t* self );
61 void null_set_scaling( const xine_vo_driver_t* self, int scale ); 60 void null_set_scaling( const xine_vo_driver_t* self, int scale );
62 void null_set_gui_width( const xine_vo_driver_t* self, int width ); 61 void null_set_gui_width( const xine_vo_driver_t* self, int width );
63 void null_set_gui_height( const xine_vo_driver_t* self, int height ); 62 void null_set_gui_height( const xine_vo_driver_t* self, int height );
64 void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb ); 63 void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb );
65 void null_set_videoGamma( const xine_vo_driver_t* self , int value ); 64 void null_set_videoGamma( const xine_vo_driver_t* self , int value );
66 void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data ); 65 void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data );
67 66
68 void null_preload_decoders( xine_stream_t *stream ); 67 void null_preload_decoders( xine_stream_t *stream );
69} 68}
70 69
71using namespace XINE; 70using namespace XINE;
72 71
73Lib::Lib( InitializationMode initMode, XineVideoWidget* widget ) 72Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
74{ 73{
75 m_initialized = false; 74 m_initialized = false;
76 m_duringInitialization = false; 75 m_duringInitialization = false;
77 m_video = false; 76 m_video = false;
78 m_wid = widget; 77 m_wid = widget;
79 printf("Lib"); 78 printf("Lib");
80 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf"; 79 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf";
81 // get the configuration 80 // get the configuration
82 81
83 // not really OO, should be an extra class, later 82 // not really OO, should be an extra class, later
84 if ( !QFile::exists(configPath) ) { 83 if ( !QFile::exists(configPath) ) {
85 QFile f(configPath); 84 QFile f(configPath);
86 f.open(IO_WriteOnly); 85 f.open(IO_WriteOnly);
87 QTextStream ts( &f ); 86 QTextStream ts( &f );
88 ts << "misc.memcpy_method:glibc\n"; 87 ts << "misc.memcpy_method:glibc\n";
89 ts << "# uncomment if you experience double speed audio \n #audio.oss_sync_method:softsync\n"; 88 ts << "# uncomment if you experience double speed audio \n #audio.oss_sync_method:softsync\n";
90 ts << "codec.ffmpeg_pp_quality:3\n"; 89 ts << "codec.ffmpeg_pp_quality:3\n";
91 ts << "audio.num_buffers:50\n"; 90 ts << "audio.num_buffers:50\n";
92 ts << "audio.size_buffers:4096\n"; 91 ts << "audio.size_buffers:4096\n";
93 ts << "video.num_buffers:20\n"; 92 ts << "video.num_buffers:20\n";
94 ts << "video.size_buffers:4096\n"; 93 ts << "video.size_buffers:4096\n";
95 ts << "audio.out_num_audio_buf:16\n"; 94 ts << "audio.out_num_audio_buf:16\n";
96 ts << "audio.out_size_audio_buf:8096\n"; 95 ts << "audio.out_size_audio_buf:8096\n";
97 ts << "audio.out_size_zero_buf:1024\n"; 96 ts << "audio.out_size_zero_buf:1024\n";
98 ts << "audio.passthrough_offset:0\n"; 97 ts << "audio.passthrough_offset:0\n";
99 f.close(); 98 f.close();
100 } 99 }
101 100
102 if ( initMode == InitializeImmediately ) { 101 if ( initMode == InitializeImmediately ) {
103 initialize(); 102 initialize();
104 m_initialized = true; 103 m_initialized = true;
105 } 104 }
106 else 105 else
107 start(); 106 start();
108} 107}
109 108
110void Lib::run() 109void Lib::run()
111{ 110{
112 odebug << "Lib::run() started" << oendl; 111 odebug << "Lib::run() started" << oendl;
113 initialize(); 112 initialize();
114 m_initialized = true; 113 m_initialized = true;
115 odebug << "Lib::run() finished" << oendl; 114 odebug << "Lib::run() finished" << oendl;
116} 115}
117 116
118void Lib::initialize() 117void Lib::initialize()
119{ 118{
120 m_duringInitialization = true; 119 m_duringInitialization = true;
121 m_xine = xine_new( ); 120 m_xine = xine_new( );
122 121
123 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf"; 122 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf";
124 xine_config_load( m_xine, QFile::encodeName( configPath ) ); 123 xine_config_load( m_xine, QFile::encodeName( configPath ) );
125 124
126 xine_init( m_xine ); 125 xine_init( m_xine );
127 126
128 // allocate oss for sound 127 // allocate oss for sound
129 // and fb for framebuffer 128 // and fb for framebuffer
130 m_audioOutput = xine_open_audio_driver( m_xine, "oss", NULL ); 129 m_audioOutput = xine_open_audio_driver( m_xine, "oss", NULL );
131 m_videoOutput = ::init_video_out_plugin( m_xine, NULL, xine_display_frame, this ); 130 m_videoOutput = ::init_video_out_plugin( m_xine, NULL, xine_display_frame, this );
132 131
133 m_stream = xine_stream_new (m_xine, m_audioOutput, m_videoOutput ); 132 m_stream = xine_stream_new (m_xine, m_audioOutput, m_videoOutput );
134 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1); 133 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1);
135 134
136 if (m_wid != 0 ) 135 if (m_wid != 0 )
137 setWidget( m_wid ); 136 setWidget( m_wid );
138 137
139 138
140 m_queue = xine_event_new_queue (m_stream); 139 m_queue = xine_event_new_queue (m_stream);
141 xine_event_create_listener_thread (m_queue, xine_event_handler, this); 140 xine_event_create_listener_thread (m_queue, xine_event_handler, this);
142 141
143 ::null_preload_decoders( m_stream ); 142 ::null_preload_decoders( m_stream );
144 143
145 m_duringInitialization = false; 144 m_duringInitialization = false;
146} 145}
147 146
148Lib::~Lib() { 147Lib::~Lib() {
149 assert( isRunning() == false ); 148 assert( isRunning() == false );
150 assert( m_initialized ); 149 assert( m_initialized );
151 150
152// free( m_config ); 151// free( m_config );
153 152
154 xine_close( m_stream ); 153 xine_close( m_stream );
155 xine_event_dispose_queue( m_queue ); 154 xine_event_dispose_queue( m_queue );
156 xine_dispose( m_stream ); 155 xine_dispose( m_stream );
157 xine_close_audio_driver(m_xine,m_audioOutput); 156 xine_close_audio_driver(m_xine,m_audioOutput);
158 xine_close_video_driver(m_xine,m_videoOutput); 157 xine_close_video_driver(m_xine,m_videoOutput);
159 xine_exit( m_xine ); 158 xine_exit( m_xine );
160 159
161 /* FIXME either free or delete but valgrind bitches against both */ 160 /* FIXME either free or delete but valgrind bitches against both */
162 //free( m_videoOutput ); 161 //free( m_videoOutput );
163 //delete m_audioOutput; 162 //delete m_audioOutput;
164} 163}
165 164
166void Lib::resize ( const QSize &s ) { 165void Lib::resize ( const QSize &s ) {
167 assert( m_initialized || m_duringInitialization ); 166 assert( m_initialized || m_duringInitialization );
168 167
169 if ( s. width ( ) && s. height ( ) ) { 168 if ( s. width ( ) && s. height ( ) ) {
170 ::null_set_gui_width( m_videoOutput, s. width() ); 169 ::null_set_gui_width( m_videoOutput, s. width() );
171 ::null_set_gui_height( m_videoOutput, s. height() ); 170 ::null_set_gui_height( m_videoOutput, s. height() );
172 } 171 }
173} 172}
174 173
175int Lib::majorVersion() { 174int Lib::majorVersion() {
176 int major, minor, sub; 175 int major, minor, sub;
177 xine_get_version ( &major, &minor, &sub ); 176 xine_get_version ( &major, &minor, &sub );
178 return major; 177 return major;
179} 178}
180 179
181int Lib::minorVersion() { 180int Lib::minorVersion() {
182 int major, minor, sub; 181 int major, minor, sub;
183 xine_get_version ( &major, &minor, &sub ); 182 xine_get_version ( &major, &minor, &sub );
184 return minor; 183 return minor;
185} 184}
186 185
187int Lib::subVersion() { 186int Lib::subVersion() {
188 int major, minor, sub; 187 int major, minor, sub;
189 xine_get_version ( &major, &minor, &sub ); 188 xine_get_version ( &major, &minor, &sub );
190 return sub; 189 return sub;
191} 190}
192 191
193int Lib::play( const QString& fileName, int startPos, int start_time ) { 192int Lib::play( const QString& fileName, int startPos, int start_time ) {
194 assert( m_initialized ); 193 assert( m_initialized );
195 194
196 QString str = fileName.stripWhiteSpace(); 195 QString str = fileName.stripWhiteSpace();
197 196
198 197
199 if ( !xine_open( m_stream, str.utf8().data() ) ) { 198 if ( !xine_open( m_stream, str.utf8().data() ) ) {
200 return 0; 199 return 0;
201 } 200 }
202 return xine_play( m_stream, startPos, start_time); 201 return xine_play( m_stream, startPos, start_time);
203} 202}
204 203
205void Lib::stop() { 204void Lib::stop() {
206 assert( m_initialized ); 205 assert( m_initialized );
207 xine_stop( m_stream ); 206 xine_stop( m_stream );
208 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1); 207 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1);
209} 208}
210 209
211void Lib::pause( bool toggle ) { 210void Lib::pause( bool toggle ) {
212 assert( m_initialized ); 211 assert( m_initialized );
213 212
214 if ( toggle ) { 213 if ( toggle ) {
215 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); 214 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
216 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1); 215 xine_set_param( m_stream, XINE_PARAM_AUDIO_CLOSE_DEVICE, 1);
217 } 216 }
218 217
219 else { 218 else {
220 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL ); 219 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL );
221 } 220 }
222} 221}
223 222
224int Lib::speed() const { 223int Lib::speed() const {
225 assert( m_initialized ); 224 assert( m_initialized );
226 225
227 return xine_get_param ( m_stream, XINE_PARAM_SPEED ); 226 return xine_get_param ( m_stream, XINE_PARAM_SPEED );
228} 227}
229 228
230void Lib::setSpeed( int speed ) { 229void Lib::setSpeed( int speed ) {
231 assert( m_initialized ); 230 assert( m_initialized );
232 231
233 xine_set_param ( m_stream, XINE_PARAM_SPEED, speed ); 232 xine_set_param ( m_stream, XINE_PARAM_SPEED, speed );
234} 233}
235 234
236int Lib::status() const { 235int Lib::status() const {
237 assert( m_initialized ); 236 assert( m_initialized );
238 237
239 return xine_get_status( m_stream ); 238 return xine_get_status( m_stream );
240} 239}
241 240
242int Lib::currentPosition() const { 241int Lib::currentPosition() const {
243 assert( m_initialized ); 242 assert( m_initialized );
244 243
245 int pos, time, length; 244 int pos, time, length;
246 xine_get_pos_length( m_stream, &pos, &time, &length ); 245 xine_get_pos_length( m_stream, &pos, &time, &length );
247 return pos; 246 return pos;
248} 247}
249 248
250int Lib::currentTime() const { 249int Lib::currentTime() const {
251 assert( m_initialized ); 250 assert( m_initialized );
252 251
253 int pos, time, length; 252 int pos, time, length;
254 pos = time = length = 0; 253 pos = time = length = 0;
255 254
256 if ( xine_get_pos_length( m_stream, &pos, &time, &length ) ) 255 if ( xine_get_pos_length( m_stream, &pos, &time, &length ) )
257 return time/1000; 256 return time/1000;
258 else 257 else
259 return 0; 258 return 0;
260} 259}
261 260
262int Lib::length() const { 261int Lib::length() const {
263 assert( m_initialized ); 262 assert( m_initialized );
264 263
265 int pos, time, length; 264 int pos, time, length;
266/* dilb: patch to solve the wrong stream length reported to the GUI*/ 265/* dilb: patch to solve the wrong stream length reported to the GUI*/
267 int iRetVal=0, iTestLoop=0; 266 int iRetVal=0, iTestLoop=0;
268 267
269 do 268 do
270 { 269 {
271 iRetVal = xine_get_pos_length( m_stream, &pos, &time, &length ); 270 iRetVal = xine_get_pos_length( m_stream, &pos, &time, &length );
272 if (iRetVal) 271 if (iRetVal)
273 {/* if the function didn't return 0, then pos, time and length are valid.*/ 272 {/* if the function didn't return 0, then pos, time and length are valid.*/
274 return length/1000; 273 return length/1000;
275 } 274 }
276 /*don't poll too much*/ 275 /*don't poll too much*/
277 usleep(100000); 276 usleep(100000);
278 iTestLoop++; 277 iTestLoop++;
279 } 278 }
280 while ( iTestLoop < 10 ); /* if after 1s, we still don't have any 279 while ( iTestLoop < 10 ); /* if after 1s, we still don't have any
281valid stream, then return -1 (this value could be used to make the stream 280valid stream, then return -1 (this value could be used to make the stream
282unseekable, but it should never occur!! Mr. Murphy ? :) ) */ 281unseekable, but it should never occur!! Mr. Murphy ? :) ) */
283 282
284 return -1; 283 return -1;
285} 284}
286 285
287bool Lib::isSeekable() const { 286bool Lib::isSeekable() const {
288 assert( m_initialized ); 287 assert( m_initialized );
289 288
290 return xine_get_stream_info( m_stream, XINE_STREAM_INFO_SEEKABLE ); 289 return xine_get_stream_info( m_stream, XINE_STREAM_INFO_SEEKABLE );
291} 290}
292 291
293void Lib::seekTo( int time ) { 292void Lib::seekTo( int time ) {
294 assert( m_initialized ); 293 assert( m_initialized );
295 294
296 odebug << "Seeking to second " << time << oendl; 295 odebug << "Seeking to second " << time << oendl;
297 //Keep it paused if it was in that state 296 //Keep it paused if it was in that state
298 if ( xine_get_param( m_stream, XINE_PARAM_SPEED ) ) { 297 if ( xine_get_param( m_stream, XINE_PARAM_SPEED ) ) {
299 xine_play( m_stream, 0, time*1000 ); 298 xine_play( m_stream, 0, time*1000 );
300 } 299 }
301 300
302 else { 301 else {
303 xine_play( m_stream, 0, time*1000 ); 302 xine_play( m_stream, 0, time*1000 );
304 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); 303 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
305 } 304 }
306 305
307} 306}
308 307
309 308
310Frame Lib::currentFrame() const {
311 assert( m_initialized );
312
313 Frame frame;
314 return frame;
315};
316
317QString Lib::metaInfo( int number) const { 309QString Lib::metaInfo( int number) const {
318 assert( m_initialized ); 310 assert( m_initialized );
319 311
320 return xine_get_meta_info( m_stream, number ); 312 return xine_get_meta_info( m_stream, number );
321} 313}
322 314
323int Lib::error() const { 315int Lib::error() const {
324 assert( m_initialized ); 316 assert( m_initialized );
325 317
326 return xine_get_error( m_stream ); 318 return xine_get_error( m_stream );
327}; 319};
328 320
329void Lib::ensureInitialized() 321void Lib::ensureInitialized()
330{ 322{
331 if ( m_initialized ) 323 if ( m_initialized )
332 return; 324 return;
333 325
334 odebug << "waiting for initialization thread to finish" << oendl; 326 odebug << "waiting for initialization thread to finish" << oendl;
335 wait(); 327 wait();
336 odebug << "initialization thread finished!" << oendl; 328 odebug << "initialization thread finished!" << oendl;
337} 329}
338 330
339void Lib::setWidget( XineVideoWidget *widget ) 331void Lib::setWidget( XineVideoWidget *widget )
340{ 332{
341 m_wid = widget; 333 m_wid = widget;
342 resize ( m_wid-> size ( ) ); 334 resize ( m_wid-> size ( ) );
343 ::null_set_mode( m_videoOutput, qt_screen->depth(), qt_screen->pixelType() ); 335 ::null_set_mode( m_videoOutput, qt_screen->depth(), qt_screen->pixelType() );
344 m_wid->repaint(); 336 m_wid->repaint();
345} 337}
346 338
347void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ) 339void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType )
348{ 340{
349 assert( sendType == ThreadUtil::Channel::OneWay ); 341 assert( sendType == ThreadUtil::Channel::OneWay );
350 handleXineEvent( msg->type(), msg->data(), msg->msg() ); 342 handleXineEvent( msg->type(), msg->data(), msg->msg() );
351 delete msg; 343 delete msg;
352} 344}
353 345
354void Lib::handleXineEvent( const xine_event_t* t ) { 346void Lib::handleXineEvent( const xine_event_t* t ) {
355 int prog = -1; const char* name = 0; 347 int prog = -1; const char* name = 0;
356 if ( t->type == XINE_EVENT_PROGRESS ) { 348 if ( t->type == XINE_EVENT_PROGRESS ) {
357 xine_progress_data_t *pt = static_cast<xine_progress_data_t*>( t->data ); 349 xine_progress_data_t *pt = static_cast<xine_progress_data_t*>( t->data );
358 prog = pt->percent; 350 prog = pt->percent;
359 name = pt->description; 351 name = pt->description;
360 } 352 }
361 353
362 send( new ThreadUtil::ChannelMessage( t->type, prog, name ), OneWay ); 354 send( new ThreadUtil::ChannelMessage( t->type, prog, name ), OneWay );
363} 355}
364 356
365void Lib::handleXineEvent( int type, int data, const char* name ) { 357void Lib::handleXineEvent( int type, int data, const char* name ) {
366 assert( m_initialized ); 358 assert( m_initialized );
367 359
368 if ( type == XINE_EVENT_UI_PLAYBACK_FINISHED ) { 360 if ( type == XINE_EVENT_UI_PLAYBACK_FINISHED ) {
369 emit stopped(); 361 emit stopped();
370 }else if ( type == XINE_EVENT_PROGRESS ) { 362 }else if ( type == XINE_EVENT_PROGRESS ) {
371 QString str = name == 0 ? QString::null : QString::fromUtf8( name ); 363 QString str = name == 0 ? QString::null : QString::fromUtf8( name );
372 Global::statusMessage( tr( "Progress: %1 %2" ).arg( name, data ) );; 364 Global::statusMessage( tr( "Progress: %1 %2" ).arg( name, data ) );;
373 } 365 }
374} 366}
375 367
376 368
377void Lib::setShowVideo( bool video ) { 369void Lib::setShowVideo( bool video ) {
378 assert( m_initialized ); 370 assert( m_initialized );
379 371
380 m_video = video; 372 m_video = video;
381 ::null_set_show_video( m_videoOutput, video ); 373 ::null_set_show_video( m_videoOutput, video );
382} 374}
383 375
384bool Lib::isShowingVideo() const { 376bool Lib::isShowingVideo() const {
385 assert( m_initialized ); 377 assert( m_initialized );
386 378
387 return ::null_is_showing_video( m_videoOutput ); 379 return ::null_is_showing_video( m_videoOutput );
388} 380}
389 381
390bool Lib::hasVideo() const { 382bool Lib::hasVideo() const {
391 assert( m_initialized ); 383 assert( m_initialized );
392 384
393 return xine_get_stream_info( m_stream, 18 ); 385 return xine_get_stream_info( m_stream, 18 );
394} 386}
395 387
396void Lib::showVideoFullScreen( bool fullScreen ) { 388void Lib::showVideoFullScreen( bool fullScreen ) {
397 assert( m_initialized ); 389 assert( m_initialized );
398 390
399 ::null_set_fullscreen( m_videoOutput, fullScreen ); 391 ::null_set_fullscreen( m_videoOutput, fullScreen );
400} 392}
401 393
402bool Lib::isVideoFullScreen() const { 394bool Lib::isVideoFullScreen() const {
403 assert( m_initialized ); 395 assert( m_initialized );
404 396
405 return ::null_is_fullscreen( m_videoOutput ); 397 return ::null_is_fullscreen( m_videoOutput );
406} 398}
407 399
408void Lib::setScaling( bool scale ) { 400void Lib::setScaling( bool scale ) {
409 assert( m_initialized ); 401 assert( m_initialized );
410 402
411 ::null_set_scaling( m_videoOutput, scale ); 403 ::null_set_scaling( m_videoOutput, scale );
412} 404}
413 405
414void Lib::setGamma( int value ) { 406void Lib::setGamma( int value ) {
415 assert( m_initialized ); 407 assert( m_initialized );
416 408
417 ::null_set_videoGamma( m_videoOutput, value ); 409 ::null_set_videoGamma( m_videoOutput, value );
418} 410}
419 411
420bool Lib::isScaling() const { 412bool Lib::isScaling() const {
421 assert( m_initialized ); 413 assert( m_initialized );
422 414
423 return ::null_is_scaling( m_videoOutput ); 415 return ::null_is_scaling( m_videoOutput );
424} 416}
425 417
426void Lib::xine_event_handler( void* user_data, const xine_event_t* t ) { 418void Lib::xine_event_handler( void* user_data, const xine_event_t* t ) {
427 ( (Lib*)user_data)->handleXineEvent( t ); 419 ( (Lib*)user_data)->handleXineEvent( t );
428} 420}
429 421
430void Lib::xine_display_frame( void* user_data, uint8_t *frame, 422void Lib::xine_display_frame( void* user_data, uint8_t *frame,
431 int width, int height, int bytes ) { 423 int width, int height, int bytes ) {
432 ( (Lib*)user_data)->drawFrame( frame, width, height, bytes ); 424 ( (Lib*)user_data)->drawFrame( frame, width, height, bytes );
433} 425}
434 426
435void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { 427void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) {
436 assert( m_initialized ); 428 assert( m_initialized );
437 429
438 if ( !m_video ) { 430 if ( !m_video ) {
439 return; 431 return;
440 } 432 }
441 433
442 assert( m_wid ); 434 assert( m_wid );
443 435
444 m_wid-> setVideoFrame ( frame, width, height, bytes ); 436 m_wid-> setVideoFrame ( frame, width, height, bytes );
445} 437}
diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h
index dfddc2a..ab432a0 100644
--- a/noncore/multimedia/opieplayer2/lib.h
+++ b/noncore/multimedia/opieplayer2/lib.h
@@ -1,216 +1,210 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 LJP <> 5 Copyright (c) 2002 LJP <>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef ZECKEXINELIB_H 34#ifndef XINE_VIDEO_LIB_H
35#define ZECKEXINELIB_H 35#define XINE_VIDEO_LIB_H
36 36
37#include <xine.h> 37#include <xine.h>
38 38
39#include "threadutil.h" 39#include "threadutil.h"
40 40
41class XineVideoWidget; 41class XineVideoWidget;
42 42
43namespace XINE { 43namespace XINE {
44 44
45 /** 45 /**
46 * Lib wrapps the simple interface 46 * Lib wrapps the simple interface
47 * of libxine for easy every day use 47 * of libxine for easy every day use
48 * This will become a full C++ Wrapper 48 * This will become a full C++ Wrapper
49 * It supports playing, pausing, info, 49 * It supports playing, pausing, info,
50 * stooping, seeking. 50 * stooping, seeking.
51 */ 51 */
52 class Frame;
53 class Lib : public ThreadUtil::Channel, private ThreadUtil::Thread 52 class Lib : public ThreadUtil::Channel, private ThreadUtil::Thread
54 { 53 {
55 Q_OBJECT 54 Q_OBJECT
56 public: 55 public:
57 enum InitializationMode { InitializeImmediately, InitializeInThread }; 56 enum InitializationMode { InitializeImmediately, InitializeInThread };
58 57
59 Lib( InitializationMode initMode, XineVideoWidget* = 0); 58 Lib( InitializationMode initMode, XineVideoWidget* = 0);
60 59
61 ~Lib(); 60 ~Lib();
62 static int majorVersion(); 61 static int majorVersion();
63 static int minorVersion(); 62 static int minorVersion();
64 static int subVersion(); 63 static int subVersion();
65 64
66 65
67 void resize ( const QSize &s ); 66 void resize ( const QSize &s );
68 67
69 int play( const QString& fileName, 68 int play( const QString& fileName,
70 int startPos = 0, 69 int startPos = 0,
71 int start_time = 0 ); 70 int start_time = 0 );
72 void stop(); 71 void stop();
73 void pause( bool toggle ); 72 void pause( bool toggle );
74 73
75 int speed() const; 74 int speed() const;
76 75
77 /** 76 /**
78 * Set the speed of the stream, if codec supports it 77 * Set the speed of the stream, if codec supports it
79 * XINE_SPEED_PAUSE 0 78 * XINE_SPEED_PAUSE 0
80 * XINE_SPEED_SLOW_4 1 79 * XINE_SPEED_SLOW_4 1
81 * XINE_SPEED_SLOW_2 2 80 * XINE_SPEED_SLOW_2 2
82 * XINE_SPEED_NORMAL 4 81 * XINE_SPEED_NORMAL 4
83 * XINE_SPEED_FAST_2 8 82 * XINE_SPEED_FAST_2 8
84 *XINE_SPEED_FAST_4 16 83 *XINE_SPEED_FAST_4 16
85 */ 84 */
86 void setSpeed( int speed = XINE_SPEED_PAUSE ); 85 void setSpeed( int speed = XINE_SPEED_PAUSE );
87 86
88 int status() const; 87 int status() const;
89 88
90 int currentPosition()const; 89 int currentPosition()const;
91 //in seconds 90 //in seconds
92 int currentTime()const; 91 int currentTime()const;
93 92
94 int length() const; 93 int length() const;
95 94
96 bool isSeekable()const; 95 bool isSeekable()const;
97 96
98 /** 97 /**
99 * Whether or not to show video output 98 * Whether or not to show video output
100 */ 99 */
101 void setShowVideo(bool video); 100 void setShowVideo(bool video);
102 101
103 /** 102 /**
104 * is we show video 103 * is we show video
105 */ 104 */
106 bool isShowingVideo() const; 105 bool isShowingVideo() const;
107 106
108 /** 107 /**
109 * 108 *
110 */ 109 */
111 void showVideoFullScreen( bool fullScreen ); 110 void showVideoFullScreen( bool fullScreen );
112 111
113 /** 112 /**
114 * 113 *
115 */ 114 */
116 bool isVideoFullScreen() const; 115 bool isVideoFullScreen() const;
117 116
118 117
119 /** 118 /**
120 * Get the meta info (like author etc) from the stream 119 * Get the meta info (like author etc) from the stream
121 * XINE_META_INFO_TITLE 0 120 * XINE_META_INFO_TITLE 0
122 * XINE_META_INFO_COMMENT 1 121 * XINE_META_INFO_COMMENT 1
123 * XINE_META_INFO_ARTIST 2 122 * XINE_META_INFO_ARTIST 2
124 * XINE_META_INFO_GENRE 3 123 * XINE_META_INFO_GENRE 3
125 * XINE_META_INFO_ALBUM 4 124 * XINE_META_INFO_ALBUM 4
126 * XINE_META_INFO_YEAR 5 125 * XINE_META_INFO_YEAR 5
127 * XINE_META_INFO_VIDEOCODEC 6 126 * XINE_META_INFO_VIDEOCODEC 6
128 * XINE_META_INFO_AUDIOCODEC 7 127 * XINE_META_INFO_AUDIOCODEC 7
129 * XINE_META_INFO_SYSTEMLAYER 8 128 * XINE_META_INFO_SYSTEMLAYER 8
130 * XINE_META_INFO_INPUT_PLUGIN 9 129 * XINE_META_INFO_INPUT_PLUGIN 9
131 */ 130 */
132 QString metaInfo( int number ) const; 131 QString metaInfo( int number ) const;
133 132
134 /** 133 /**
135 * 134 *
136 */ 135 */
137 bool isScaling() const; 136 bool isScaling() const;
138 137
139 /** 138 /**
140 * seek to a position 139 * seek to a position
141 */ 140 */
142 void seekTo( int time ); 141 void seekTo( int time );
143 142
144 /** 143 /**
145 * 144 *
146 * @return is media stream has video 145 * @return is media stream has video
147 */ 146 */
148 bool hasVideo() const; 147 bool hasVideo() const;
149 148
150 /** 149 /**
151 * 150 *
152 */ 151 */
153 void setScaling( bool ); 152 void setScaling( bool );
154 153
155 /** 154 /**
156 * Set the Gamma value for video output 155 * Set the Gamma value for video output
157 * @param int the value between -100 and 100, 0 is original 156 * @param int the value between -100 and 100, 0 is original
158 */ 157 */
159 void setGamma( int ); 158 void setGamma( int );
160 159
161 /** 160 /**
162 * test
163 */
164 Frame currentFrame() const;
165
166 /**
167 * Returns the error code 161 * Returns the error code
168 * XINE_ERROR_NONE 0 162 * XINE_ERROR_NONE 0
169 * XINE_ERROR_NO_INPUT_PLUGIN 1 163 * XINE_ERROR_NO_INPUT_PLUGIN 1
170 * XINE_ERROR_NO_DEMUXER_PLUGIN 2 164 * XINE_ERROR_NO_DEMUXER_PLUGIN 2
171 * XINE_ERROR_DEMUXER_FAILED 3 165 * XINE_ERROR_DEMUXER_FAILED 3
172 */ 166 */
173 int error() const; 167 int error() const;
174 168
175 void ensureInitialized(); 169 void ensureInitialized();
176 170
177 void setWidget( XineVideoWidget *widget ); 171 void setWidget( XineVideoWidget *widget );
178 172
179 signals: 173 signals:
180 174
181 void stopped(); 175 void stopped();
182 176
183 void initialized(); 177 void initialized();
184 178
185 protected: 179 protected:
186 virtual void receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ); 180 virtual void receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType );
187 181
188 virtual void run(); 182 virtual void run();
189 183
190 private: 184 private:
191 void initialize(); 185 void initialize();
192 186
193 int m_bytes_per_pixel; 187 int m_bytes_per_pixel;
194 bool m_initialized:1; 188 bool m_initialized:1;
195 bool m_duringInitialization:1; 189 bool m_duringInitialization:1;
196 bool m_video:1; 190 bool m_video:1;
197 XineVideoWidget *m_wid; 191 XineVideoWidget *m_wid;
198 xine_t *m_xine; 192 xine_t *m_xine;
199 xine_stream_t *m_stream; 193 xine_stream_t *m_stream;
200 xine_cfg_entry_t *m_config; 194 xine_cfg_entry_t *m_config;
201 xine_vo_driver_t *m_videoOutput; 195 xine_vo_driver_t *m_videoOutput;
202 xine_ao_driver_t* m_audioOutput; 196 xine_ao_driver_t* m_audioOutput;
203 xine_event_queue_t *m_queue; 197 xine_event_queue_t *m_queue;
204 198
205 void handleXineEvent( const xine_event_t* t ); 199 void handleXineEvent( const xine_event_t* t );
206 void handleXineEvent( int type, int data, const char* name ); 200 void handleXineEvent( int type, int data, const char* name );
207 void drawFrame( uint8_t* frame, int width, int height, int bytes ); 201 void drawFrame( uint8_t* frame, int width, int height, int bytes );
208 // C -> C++ bridge for the event system 202 // C -> C++ bridge for the event system
209 static void xine_event_handler( void* user_data, const xine_event_t* t); 203 static void xine_event_handler( void* user_data, const xine_event_t* t);
210 static void xine_display_frame( void* user_data, uint8_t* frame , 204 static void xine_display_frame( void* user_data, uint8_t* frame ,
211 int width, int height, int bytes ); 205 int width, int height, int bytes );
212 }; 206 };
213}; 207};
214 208
215 209
216#endif 210#endif
diff --git a/noncore/multimedia/opieplayer2/opieplayer2.pro b/noncore/multimedia/opieplayer2/opieplayer2.pro
index cd103ee..af7fc5d 100644
--- a/noncore/multimedia/opieplayer2/opieplayer2.pro
+++ b/noncore/multimedia/opieplayer2/opieplayer2.pro
@@ -1,29 +1,29 @@
1CONFIG = qt warn_on quick-app 1CONFIG = qt warn_on quick-app
2HEADERS = playlistselection.h mediaplayerstate.h xinecontrol.h \ 2HEADERS = playlistselection.h mediaplayerstate.h xinecontrol.h \
3 videowidget.h audiowidget.h playlistwidget.h om3u.h mediaplayer.h inputDialog.h \ 3 videowidget.h audiowidget.h playlistwidget.h om3u.h mediaplayer.h inputDialog.h \
4 frame.h lib.h xinevideowidget.h volumecontrol.h playlistwidgetgui.h\ 4 lib.h xinevideowidget.h volumecontrol.h playlistwidgetgui.h\
5 alphablend.h yuv2rgb.h threadutil.h mediawidget.h playlistview.h playlistfileview.h \ 5 alphablend.h yuv2rgb.h threadutil.h mediawidget.h playlistview.h playlistfileview.h \
6 skin.h 6 skin.h
7SOURCES = main.cpp \ 7SOURCES = main.cpp \
8 playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp \ 8 playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp \
9 videowidget.cpp audiowidget.cpp playlistwidget.cpp om3u.cpp mediaplayer.cpp inputDialog.cpp \ 9 videowidget.cpp audiowidget.cpp playlistwidget.cpp om3u.cpp mediaplayer.cpp inputDialog.cpp \
10 frame.cpp lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp \ 10 lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp \
11 playlistwidgetgui.cpp\ 11 playlistwidgetgui.cpp\
12 alphablend.c yuv2rgb.c yuv2rgb_arm2.c yuv2rgb_arm4l.S \ 12 alphablend.c yuv2rgb.c yuv2rgb_arm2.c yuv2rgb_arm4l.S \
13 threadutil.cpp mediawidget.cpp playlistview.cpp playlistfileview.cpp \ 13 threadutil.cpp mediawidget.cpp playlistview.cpp playlistfileview.cpp \
14 skin.cpp 14 skin.cpp
15TARGET = opieplayer2 15TARGET = opieplayer2
16INCLUDEPATH += $(OPIEDIR)/include 16INCLUDEPATH += $(OPIEDIR)/include
17DEPENDPATH += $(OPIEDIR)/include 17DEPENDPATH += $(OPIEDIR)/include
18LIBS += -lqpe -lpthread -lopiecore2 -lopieui2 -lqtaux2 -lxine 18LIBS += -lqpe -lpthread -lopiecore2 -lopieui2 -lqtaux2 -lxine
19MOC_DIR = qpeobj 19MOC_DIR = qpeobj
20OBJECTS_DIR = qpeobj 20OBJECTS_DIR = qpeobj
21 21
22include( $(OPIEDIR)/include.pro ) 22include( $(OPIEDIR)/include.pro )
23 23
24!isEmpty( LIBXINE_INC_DIR ) { 24!isEmpty( LIBXINE_INC_DIR ) {
25 INCLUDEPATH = $$LIBXINE_INC_DIR $$INCLUDEPATH 25 INCLUDEPATH = $$LIBXINE_INC_DIR $$INCLUDEPATH
26} 26}
27!isEmpty( LIBXINE_LIB_DIR ) { 27!isEmpty( LIBXINE_LIB_DIR ) {
28 LIBS = -L$$LIBXINE_LIB_DIR $$LIBS 28 LIBS = -L$$LIBXINE_LIB_DIR $$LIBS
29} 29}
diff --git a/noncore/multimedia/opieplayer2/zeckeplayer.pro b/noncore/multimedia/opieplayer2/zeckeplayer.pro
deleted file mode 100644
index ba06081..0000000
--- a/noncore/multimedia/opieplayer2/zeckeplayer.pro
+++ b/dev/null
@@ -1,13 +0,0 @@
1 TEMPLATE= app
2DESTDIR = .
3 #CONFIG = qt warn_on
4 CONFIG = qt warn_on
5 HEADERS = frame.h lib.h
6 SOURCES = alphablend.c yuv2rgb.c nullvideo.o frame.cpp lib.cpp mainTest.cpp
7 INCLUDEPATH+= $(OPIEDIR)/include /opt/QtPalmtop/include
8 DEPENDPATH+= $(OPIEDIR)/include /opt/QtPalmtop/include
9LIBS += -L/opt/QtPalmtop/lib -lxine -lxineutils
10TARGET = zeckeplayer
11
12
13include( $(OPIEDIR)/include.pro )