• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "avmedia_description.h"
17 #include "avsession_log.h"
18 
19 namespace OHOS::AVSession {
Marshalling(Parcel & parcel) const20 bool AVMediaDescription::Marshalling(Parcel& parcel) const
21 {
22     return parcel.WriteString(mediaId_) &&
23         parcel.WriteString(title_) &&
24         parcel.WriteString(subtitle_) &&
25         parcel.WriteString(description_) &&
26         parcel.WriteString(iconUri_) &&
27         parcel.WriteString(mediaType_) &&
28         parcel.WriteInt32(mediaSize_) &&
29         parcel.WriteString(albumTitle_) &&
30         parcel.WriteString(albumCoverUri_) &&
31         parcel.WriteString(lyricContent_) &&
32         parcel.WriteString(lyricUri_) &&
33         parcel.WriteString(artist_) &&
34         parcel.WriteString(mediaUri_) &&
35         fdSrc_.WriteToParcel(parcel)&&
36         parcel.WriteInt32(duration_) &&
37         parcel.WriteInt32(startPosition_) &&
38         parcel.WriteInt32(creditsPosition_) &&
39         parcel.WriteString(appName_) &&
40         parcel.WriteParcelable(icon_.get()) &&
41         parcel.WriteParcelable(extras_.get()) &&
42         parcel.WriteString(drmScheme_) &&
43         dataSrc_.WriteToParcel(parcel);
44 }
45 
Unmarshalling(Parcel & data)46 AVMediaDescription *AVMediaDescription::Unmarshalling(Parcel& data)
47 {
48     auto *result = new (std::nothrow) AVMediaDescription();
49     CHECK_AND_RETURN_RET_LOG(result != nullptr, nullptr, "new AVMediaDescription failed");
50     data.ReadString(result->mediaId_);
51     data.ReadString(result->title_);
52     data.ReadString(result->subtitle_);
53     data.ReadString(result->description_);
54     data.ReadString(result->iconUri_);
55     data.ReadString(result->mediaType_);
56     data.ReadInt32(result->mediaSize_);
57     data.ReadString(result->albumTitle_);
58     data.ReadString(result->albumCoverUri_);
59     data.ReadString(result->lyricContent_);
60     data.ReadString(result->lyricUri_);
61     data.ReadString(result->artist_);
62     data.ReadString(result->mediaUri_);
63     result->fdSrc_.ReadFromParcel(data);
64     data.ReadInt32(result->duration_);
65     data.ReadInt32(result->startPosition_);
66     data.ReadInt32(result->creditsPosition_);
67     data.ReadString(result->appName_);
68     result->icon_ = std::shared_ptr<AVSessionPixelMap>(data.ReadParcelable<AVSessionPixelMap>());
69     if (result->icon_ == nullptr) {
70         SLOGD("read AVMediaDescription - icon null");
71     }
72     result->extras_ = std::shared_ptr<AAFwk::WantParams>(data.ReadParcelable<AAFwk::WantParams>());
73     if (result->extras_ == nullptr) {
74         SLOGD("read AVMediaDescription - extras null");
75     }
76     data.ReadString(result->drmScheme_);
77     result->dataSrc_.ReadFromParcel(data);
78     return result;
79 }
80 
SetMediaId(const std::string & mediaId)81 void AVMediaDescription::SetMediaId(const std::string& mediaId)
82 {
83     mediaId_ = mediaId;
84 }
85 
GetMediaId() const86 std::string AVMediaDescription::GetMediaId() const
87 {
88     return mediaId_;
89 }
90 
SetTitle(const std::string & title)91 void AVMediaDescription::SetTitle(const std::string& title)
92 {
93     title_ = title;
94 }
95 
GetTitle() const96 std::string AVMediaDescription::GetTitle() const
97 {
98     return title_;
99 }
100 
SetSubtitle(const std::string & subtitle)101 void AVMediaDescription::SetSubtitle(const std::string& subtitle)
102 {
103     subtitle_ = subtitle;
104 }
105 
GetSubtitle() const106 std::string AVMediaDescription::GetSubtitle() const
107 {
108     return subtitle_;
109 }
110 
SetDescription(const std::string & description)111 void AVMediaDescription::SetDescription(const std::string& description)
112 {
113     description_ = description;
114 }
115 
GetDescription() const116 std::string AVMediaDescription::GetDescription() const
117 {
118     return description_;
119 }
120 
SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)121 void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon)
122 {
123     icon_ = icon;
124 }
125 
GetIcon() const126 std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const
127 {
128     return icon_;
129 }
130 
SetIconUri(const std::string & iconUri)131 void AVMediaDescription::SetIconUri(const std::string& iconUri)
132 {
133     iconUri_ = iconUri;
134 }
135 
GetIconUri() const136 std::string AVMediaDescription::GetIconUri() const
137 {
138     return iconUri_;
139 }
140 
SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)141 void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras)
142 {
143     extras_ = extras;
144 }
145 
GetExtras() const146 std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const
147 {
148     return extras_;
149 }
150 
SetMediaUri(const std::string & mediaUri)151 void AVMediaDescription::SetMediaUri(const std::string& mediaUri)
152 {
153     mediaUri_ = mediaUri;
154 }
155 
GetMediaUri() const156 std::string AVMediaDescription::GetMediaUri() const
157 {
158     return mediaUri_;
159 }
160 
SetFdSrc(const AVFileDescriptor & fdSrc)161 void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc)
162 {
163     fdSrc_ = fdSrc;
164 }
165 
GetFdSrc() const166 AVFileDescriptor AVMediaDescription::GetFdSrc() const
167 {
168     return fdSrc_;
169 }
SetMediaType(const std::string & mediaType)170 void AVMediaDescription::SetMediaType(const std::string& mediaType)
171 {
172     mediaType_ = mediaType;
173 }
174 
GetMediaType() const175 std::string AVMediaDescription::GetMediaType() const
176 {
177     return mediaType_;
178 }
179 
SetMediaSize(const int32_t mediaSize)180 void AVMediaDescription::SetMediaSize(const int32_t mediaSize)
181 {
182     mediaSize_ = mediaSize;
183 }
184 
GetMediaSize() const185 int32_t AVMediaDescription::GetMediaSize() const
186 {
187     return mediaSize_;
188 }
189 
SetAlbumTitle(const std::string & albumTitle)190 void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle)
191 {
192     albumTitle_ = albumTitle;
193 }
194 
GetAlbumTitle() const195 std::string AVMediaDescription::GetAlbumTitle() const
196 {
197     return albumTitle_;
198 }
199 
SetAlbumCoverUri(const std::string & albumCoverUri)200 void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri)
201 {
202     albumCoverUri_ = albumCoverUri;
203 }
204 
GetAlbumCoverUri() const205 std::string AVMediaDescription::GetAlbumCoverUri() const
206 {
207     return albumCoverUri_;
208 }
209 
SetLyricContent(const std::string & lyricContent)210 void AVMediaDescription::SetLyricContent(const std::string& lyricContent)
211 {
212     lyricContent_ = lyricContent;
213 }
214 
GetLyricContent() const215 std::string AVMediaDescription::GetLyricContent() const
216 {
217     return lyricContent_;
218 }
219 
SetLyricUri(const std::string & lyricUri)220 void AVMediaDescription::SetLyricUri(const std::string& lyricUri)
221 {
222     lyricUri_ = lyricUri;
223 }
224 
GetLyricUri() const225 std::string AVMediaDescription::GetLyricUri() const
226 {
227     return lyricUri_;
228 }
229 
SetArtist(const std::string & artist)230 void AVMediaDescription::SetArtist(const std::string& artist)
231 {
232     artist_ = artist;
233 }
234 
GetArtist() const235 std::string AVMediaDescription::GetArtist() const
236 {
237     return artist_;
238 }
239 
SetDuration(const int32_t duration)240 void AVMediaDescription::SetDuration(const int32_t duration)
241 {
242     duration_ = duration;
243 }
244 
GetDuration() const245 int32_t AVMediaDescription::GetDuration() const
246 {
247     return duration_;
248 }
249 
SetStartPosition(const int32_t startPosition)250 void AVMediaDescription::SetStartPosition(const int32_t startPosition)
251 {
252     startPosition_ = startPosition;
253 }
254 
GetStartPosition() const255 int32_t AVMediaDescription::GetStartPosition() const
256 {
257     return startPosition_;
258 }
259 
SetCreditsPosition(const int32_t creditsPosition)260 void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition)
261 {
262     creditsPosition_ = creditsPosition;
263 }
264 
GetCreditsPosition() const265 int32_t AVMediaDescription::GetCreditsPosition() const
266 {
267     return creditsPosition_;
268 }
269 
SetAppName(const std::string & appName)270 void AVMediaDescription::SetAppName(const std::string& appName)
271 {
272     appName_ = appName;
273 }
274 
GetAppName() const275 std::string AVMediaDescription::GetAppName() const
276 {
277     return appName_;
278 }
279 
SetDrmScheme(const std::string & drmScheme)280 void AVMediaDescription::SetDrmScheme(const std::string& drmScheme)
281 {
282     drmScheme_ = drmScheme;
283 }
284 
GetDrmScheme() const285 std::string AVMediaDescription::GetDrmScheme() const
286 {
287     return drmScheme_;
288 }
289 
IsValid() const290 bool AVMediaDescription::IsValid() const
291 {
292     return !(mediaId_.empty());
293 }
294 
SetDataSrc(const AVDataSrcDescriptor & dataSrc)295 void AVMediaDescription::SetDataSrc(const AVDataSrcDescriptor& dataSrc)
296 {
297     dataSrc_ = dataSrc;
298 }
299 
GetDataSrc() const300 AVDataSrcDescriptor AVMediaDescription::GetDataSrc() const
301 {
302     return dataSrc_;
303 }
304 
Reset()305 void AVMediaDescription::Reset()
306 {
307     mediaId_ = "";
308     title_ = "";
309     subtitle_ = "";
310     description_ = "";
311     icon_ = nullptr;
312     iconUri_ = "";
313     extras_ = nullptr;
314     mediaType_ = "";
315     mediaSize_ = 0;
316     albumTitle_ = "";
317     albumCoverUri_ = "";
318     lyricContent_ = "";
319     lyricUri_ = "";
320     artist_ = "";
321     mediaUri_ = "";
322     AVFileDescriptor fdSrc;
323     fdSrc_ = fdSrc;
324     duration_ = 0;
325     startPosition_ = 0;
326     creditsPosition_ = 0;
327     appName_ = "";
328     drmScheme_ = "";
329     AVDataSrcDescriptor dataSrc;
330     dataSrc_ = dataSrc;
331 }
332 } // namespace OHOS::AVSession
333