]>
Commit | Line | Data |
---|---|---|
45516216 | 1 | class Qt { |
2 | }; | |
3 | extern "C" { | |
4 | } | |
5 | class QObject: public Qt { | |
6 | }; | |
7 | class QPaintDevice { | |
8 | }; | |
9 | class QWidget : public QObject, public QPaintDevice { | |
10 | }; | |
11 | class QThread : public Qt { | |
12 | }; | |
13 | class QTime { | |
14 | public: QTime() { | |
15 | } | |
16 | QTime addMSecs( int ms ) const; | |
17 | unsigned ds; | |
18 | }; | |
19 | extern "C" { | |
20 | extern "C" { | |
21 | extern "C" { | |
22 | typedef union { | |
23 | struct __pthread_mutex_s { | |
24 | } | |
25 | __data; | |
26 | } | |
27 | pthread_rwlockattr_t; | |
28 | typedef union { | |
29 | } | |
30 | pthread_barrierattr_t; | |
31 | } | |
32 | } | |
33 | extern "C" { | |
34 | extern "C" { | |
35 | typedef struct xine_stream_s xine_stream_t; | |
36 | struct xine_post_s { | |
37 | } | |
38 | xine_post_api_t; | |
39 | int xine_get_pos_length (xine_stream_t *stream, int *pos_stream, int *pos_time, int *length_time); | |
40 | } | |
41 | } | |
42 | void xine_usec_sleep(unsigned usec); | |
43 | } | |
44 | class KXineWidget : public QWidget, private QThread { | |
45 | QTime getLengthInfo(); | |
46 | static QTime msToTime(int msec); | |
47 | xine_stream_t* m_xineStream; | |
48 | }; | |
49 | QTime KXineWidget::getLengthInfo() { | |
50 | int pos, time, length; | |
51 | int t = 0, ret = 0; | |
52 | while(((ret = xine_get_pos_length(m_xineStream, &pos, &time, &length)) == 0) && (++t < 5)) xine_usec_sleep(100000); | |
53 | if ( (ret != 0) && (length > 0) ) { | |
54 | return msToTime(length); | |
55 | } | |
56 | } | |
57 | QTime KXineWidget::msToTime(int msec) { | |
58 | QTime t; | |
59 | t = t.addMSecs(msec); | |
60 | return t; | |
61 | } |