author | hgs |
Fri, 11 Jun 2010 19:59:23 -0500 | |
changeset 25 | 6f7ceef7b1d1 |
parent 19 | 4a629bc82c5e |
child 33 | 5e8b14bae8c3 |
permissions | -rw-r--r-- |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
25 | 2 |
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 |
* All rights reserved. |
|
4 |
* This component and the accompanying materials are made available |
|
5 |
* under the terms of "Eclipse Public License v1.0" |
|
6 |
* which accompanies this distribution, and is available |
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 |
* |
|
9 |
* Initial Contributors: |
|
10 |
* Nokia Corporation - initial contribution. |
|
11 |
* |
|
12 |
* Contributors: |
|
13 |
* |
|
14 |
* Description: Seek Itf Implementation |
|
15 |
* |
|
16 |
*/ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
18 |
#include <stdio.h> |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
#include <stdlib.h> |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
#include <assert.h> |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include "xaseekitf.h" |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
|
19 | 24 |
#include "xaseekitfadaptation.h" |
25 |
#include "xaplayitfadaptation.h" |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
26 |
#include "xathreadsafety.h" |
19 | 27 |
#include "xaplayitfadaptationmmf.h" |
28 |
#include "xaseekitfadaptationmmf.h" |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
* XASeekItfImpl* GetImpl(XASeekItf self) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
* Description: Validate interface pointer and cast it to implementation pointer. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
*/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
33 |
static XASeekItfImpl* GetImpl(XASeekItf self) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
34 |
{ |
25 | 35 |
if (self) |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
{ |
25 | 37 |
XASeekItfImpl* impl = (XASeekItfImpl*) (*self); |
38 |
if (impl && impl == impl->self) |
|
39 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
return impl; |
25 | 41 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
} |
25 | 43 |
return NULL; |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
44 |
} |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
46 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
* Base interface XASeekItf implementation |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
48 |
*/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
51 |
* XAresult XASeekItfImpl_SetPosition(XASeekItf self, XAmillisecond pos, |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
52 |
* XAuint32 seekMode) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
53 |
* Description: Sets the position of the playback head. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
54 |
**/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
55 |
XAresult XASeekItfImpl_SetPosition(XASeekItf self, XAmillisecond pos, |
25 | 56 |
XAuint32 seekMode) |
57 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
XAresult ret = XA_RESULT_SUCCESS; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
XAmillisecond duration = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
XASeekItfImpl* impl = GetImpl(self); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
DEBUG_API("->XASeekItfImpl_SetPosition"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
|
25 | 64 |
if (!impl) |
65 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
66 |
/* invalid parameter */ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
68 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
69 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
70 |
return XA_RESULT_PARAMETER_INVALID; |
25 | 71 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
|
25 | 73 |
if (impl->adapCtx->fwtype == FWMgrFWMMF) |
19 | 74 |
{ |
75 |
/* Get duration of the content */ |
|
25 | 76 |
if (XAPlayItfAdaptMMF_GetDuration( |
77 |
(XAAdaptationBaseCtx*) impl->adapCtx, &duration) |
|
78 |
!= XA_RESULT_SUCCESS) |
|
19 | 79 |
{ |
80 |
/* invalid parameter */ |
|
81 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
82 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
83 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
84 |
return XA_RESULT_PARAMETER_INVALID; |
|
85 |
} |
|
25 | 86 |
if (pos > duration) |
19 | 87 |
{ |
88 |
/* invalid parameter */ |
|
89 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
90 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
91 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
92 |
return XA_RESULT_PARAMETER_INVALID; |
|
93 |
} |
|
25 | 94 |
|
95 |
if (seekMode != XA_SEEKMODE_FAST && seekMode != XA_SEEKMODE_ACCURATE) |
|
19 | 96 |
{ |
97 |
/* seek mode unsupported */ |
|
98 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
99 |
DEBUG_ERR("XA_RESULT_FEATURE_UNSUPPORTED"); |
|
100 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
101 |
return XA_RESULT_FEATURE_UNSUPPORTED; |
|
102 |
} |
|
25 | 103 |
|
19 | 104 |
ret = XASeekItfAdaptMMF_SetPosition(impl->adapCtx, pos, seekMode); |
25 | 105 |
if (ret == XA_RESULT_SUCCESS) |
19 | 106 |
{ |
107 |
impl->playbackPosition = pos; |
|
108 |
impl->seekMode = seekMode; |
|
109 |
} |
|
110 |
} |
|
111 |
else |
|
112 |
{ |
|
113 |
/* Get duration of the content */ |
|
25 | 114 |
if (XAPlayItfAdaptGST_GetDuration( |
115 |
(XAAdaptationGstCtx*) impl->adapCtx, &duration) |
|
116 |
!= XA_RESULT_SUCCESS) |
|
19 | 117 |
{ |
118 |
/* invalid parameter */ |
|
119 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
120 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
121 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
122 |
return XA_RESULT_PARAMETER_INVALID; |
|
123 |
} |
|
25 | 124 |
if (pos > duration) |
19 | 125 |
{ |
126 |
/* invalid parameter */ |
|
127 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
128 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
129 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
130 |
return XA_RESULT_PARAMETER_INVALID; |
|
131 |
} |
|
25 | 132 |
|
133 |
if (seekMode != XA_SEEKMODE_FAST && seekMode != XA_SEEKMODE_ACCURATE) |
|
19 | 134 |
{ |
135 |
/* seek mode unsupported */ |
|
136 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
137 |
DEBUG_ERR("XA_RESULT_FEATURE_UNSUPPORTED"); |
|
138 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
|
139 |
return XA_RESULT_FEATURE_UNSUPPORTED; |
|
140 |
} |
|
25 | 141 |
|
142 |
ret = XASeekItfAdapt_SetPosition((XAAdaptationGstCtx*) impl->adapCtx, |
|
143 |
pos, seekMode); |
|
144 |
if (ret == XA_RESULT_SUCCESS) |
|
19 | 145 |
{ |
146 |
impl->playbackPosition = pos; |
|
147 |
impl->seekMode = seekMode; |
|
148 |
} |
|
25 | 149 |
|
19 | 150 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
151 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
152 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
153 |
DEBUG_API("<-XASeekItfImpl_SetPosition"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
154 |
return ret; |
25 | 155 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
157 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
158 |
* XAresult XASeekItfImpl_SetLoop(XASeekItf self, XAboolean loopEnable, |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
159 |
* XAmillisecond startPos, XAmillisecond endPos) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
160 |
* Description: Enables or disables looping and sets the start and end points of looping. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
161 |
**/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
162 |
XAresult XASeekItfImpl_SetLoop(XASeekItf self, XAboolean loopEnable, |
25 | 163 |
XAmillisecond startPos, XAmillisecond endPos) |
164 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
165 |
XAresult ret = XA_RESULT_SUCCESS; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
166 |
XAmillisecond duration = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
167 |
XASeekItfImpl* impl = GetImpl(self); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
168 |
DEBUG_API_A2("->XASeekItfImpl_SetLoop, startPos:%lu, endPos:%lu", startPos, endPos); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
169 |
XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
170 |
|
25 | 171 |
if (!impl || (startPos > endPos)) |
172 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
173 |
/* invalid parameter */ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
174 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
175 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
176 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
177 |
return XA_RESULT_PARAMETER_INVALID; |
25 | 178 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
179 |
|
25 | 180 |
if (impl->adapCtx->fwtype == FWMgrFWMMF) |
19 | 181 |
{ |
182 |
/* Get duration of the content */ |
|
25 | 183 |
if (XAPlayItfAdaptMMF_GetDuration( |
184 |
(XAAdaptationBaseCtx*) impl->adapCtx, &duration) |
|
185 |
!= XA_RESULT_SUCCESS) |
|
19 | 186 |
{ |
187 |
/* invalid parameter */ |
|
188 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
189 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
190 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
|
191 |
return XA_RESULT_PARAMETER_INVALID; |
|
192 |
} |
|
25 | 193 |
if (endPos > duration && endPos != XA_TIME_UNKNOWN) |
19 | 194 |
{ |
195 |
/* invalid parameter */ |
|
196 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
197 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
198 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
|
199 |
return XA_RESULT_PARAMETER_INVALID; |
|
200 |
} |
|
25 | 201 |
|
202 |
ret = XASeekItfAdaptMMF_SetLoop(impl->adapCtx, loopEnable, startPos, |
|
203 |
endPos); |
|
204 |
if (ret == XA_RESULT_SUCCESS) |
|
19 | 205 |
{ |
206 |
impl->loopEnable = loopEnable; |
|
207 |
impl->startPos = startPos; |
|
208 |
impl->endPos = endPos; |
|
25 | 209 |
} |
19 | 210 |
} |
211 |
else |
|
212 |
{ |
|
213 |
/* Get duration of the content */ |
|
25 | 214 |
if (XAPlayItfAdaptGST_GetDuration( |
215 |
(XAAdaptationGstCtx*) impl->adapCtx, &duration) |
|
216 |
!= XA_RESULT_SUCCESS) |
|
19 | 217 |
{ |
218 |
/* invalid parameter */ |
|
219 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
220 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
221 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
|
222 |
return XA_RESULT_PARAMETER_INVALID; |
|
223 |
} |
|
25 | 224 |
if (endPos > duration && endPos != XA_TIME_UNKNOWN) |
19 | 225 |
{ |
226 |
/* invalid parameter */ |
|
227 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
|
228 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
229 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
|
230 |
return XA_RESULT_PARAMETER_INVALID; |
|
231 |
} |
|
25 | 232 |
|
233 |
ret = XASeekItfAdapt_SetLoop((XAAdaptationGstCtx*) impl->adapCtx, |
|
234 |
loopEnable, startPos, endPos); |
|
235 |
if (ret == XA_RESULT_SUCCESS) |
|
19 | 236 |
{ |
237 |
impl->loopEnable = loopEnable; |
|
238 |
impl->startPos = startPos; |
|
239 |
impl->endPos = endPos; |
|
240 |
} |
|
25 | 241 |
|
19 | 242 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
243 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
244 |
XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
245 |
DEBUG_API("<-XASeekItfImpl_SetLoop"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
246 |
return ret; |
25 | 247 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
248 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
249 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
250 |
* XAresult XASeekItfImpl_GetLoop(XASeekItf self, XAboolean *pLoopEnabled, |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
251 |
* XAmillisecond *pStartPos, |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
252 |
* XAmillisecond *pEndPos) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
253 |
* Description: Queries whether looping is enabled or disabled, and retrieves loop points. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
254 |
**/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
255 |
XAresult XASeekItfImpl_GetLoop(XASeekItf self, XAboolean *pLoopEnabled, |
25 | 256 |
XAmillisecond *pStartPos, XAmillisecond *pEndPos) |
257 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
258 |
XAresult ret = XA_RESULT_SUCCESS; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
259 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
260 |
XASeekItfImpl* impl = GetImpl(self); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
261 |
DEBUG_API("->XASeekItfImpl_GetLoop"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
262 |
|
25 | 263 |
if (!impl || !pLoopEnabled || !pStartPos || !pEndPos) |
264 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
265 |
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
266 |
DEBUG_API("<-XASeekItfImpl_GetLoop"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
267 |
/* invalid parameter */ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
return XA_RESULT_PARAMETER_INVALID; |
25 | 269 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
*pLoopEnabled = impl->loopEnable; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
272 |
*pStartPos = impl->startPos; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
273 |
*pEndPos = impl->endPos; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
274 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
275 |
DEBUG_API("<-XASeekItfImpl_GetLoop"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
276 |
return ret; |
25 | 277 |
} |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
278 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
279 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
280 |
* XASeekItfImpl -specific methods |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
281 |
**/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
282 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
283 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
284 |
* XASeekItfImpl* XASeekItfImpl_Create() |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
285 |
* Description: Allocate and initialize SeekItfImpl. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
286 |
**/ |
25 | 287 |
XASeekItfImpl* XASeekItfImpl_Create(XAMediaPlayerImpl* impl) |
288 |
{ |
|
289 |
XASeekItfImpl *self = (XASeekItfImpl*) calloc(1, sizeof(XASeekItfImpl)); |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
290 |
DEBUG_API("->XASeekItfImpl_Create"); |
25 | 291 |
if (self) |
292 |
{ |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
293 |
/* init itf default implementation */ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
294 |
self->itf.GetLoop = XASeekItfImpl_GetLoop; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
295 |
self->itf.SetLoop = XASeekItfImpl_SetLoop; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
296 |
self->itf.SetPosition = XASeekItfImpl_SetPosition; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
297 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
298 |
/* init variables */ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
299 |
self->playbackPosition = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
300 |
self->seekMode = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
301 |
self->loopEnable = XA_BOOLEAN_FALSE; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
302 |
self->startPos = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
303 |
self->endPos = 0; |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
304 |
|
19 | 305 |
self->adapCtx = impl->curAdaptCtx; |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
306 |
|
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
307 |
self->self = self; |
25 | 308 |
}DEBUG_API("<-XASeekItfImpl_Create"); |
309 |
return self; |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
310 |
} |
19 | 311 |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
312 |
/** |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
313 |
* void XASeekItfImpl_Free(XASeekItfImpl* self) |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
314 |
* Description: Free all resources reserved at XASeekItfImpl_Create. |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
315 |
**/ |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
316 |
void XASeekItfImpl_Free(XASeekItfImpl* self) |
25 | 317 |
{ |
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
318 |
DEBUG_API("->XASeekItfImpl_Free"); |
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
319 |
assert(self==self->self); |
25 | 320 |
if(self) |
321 |
{ |
|
322 |
free(self); |
|
323 |
} |
|
12
5a06f39ad45b
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
324 |
DEBUG_API("<-XASeekItfImpl_Free"); |
25 | 325 |
} |