• 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.WriteString(launchClientData_) &&
41         parcel.WriteParcelable(icon_.get()) &&
42         parcel.WriteParcelable(extras_.get()) &&
43         parcel.WriteString(drmScheme_) &&
44         dataSrc_.WriteToParcel(parcel) &&
45         parcel.WriteBool(pcmSrc_);
46 }
47 
Unmarshalling(Parcel & data)48 AVMediaDescription *AVMediaDescription::Unmarshalling(Parcel& data)
49 {
50     auto *result = new (std::nothrow) AVMediaDescription();
51     CHECK_AND_RETURN_RET_LOG(result != nullptr, nullptr, "new AVMediaDescription failed");
52     data.ReadString(result->mediaId_);
53     data.ReadString(result->title_);
54     data.ReadString(result->subtitle_);
55     data.ReadString(result->description_);
56     data.ReadString(result->iconUri_);
57     data.ReadString(result->mediaType_);
58     data.ReadInt32(result->mediaSize_);
59     data.ReadString(result->albumTitle_);
60     data.ReadString(result->albumCoverUri_);
61     data.ReadString(result->lyricContent_);
62     data.ReadString(result->lyricUri_);
63     data.ReadString(result->artist_);
64     data.ReadString(result->mediaUri_);
65     result->fdSrc_.ReadFromParcel(data);
66     data.ReadInt32(result->duration_);
67     data.ReadInt32(result->startPosition_);
68     data.ReadInt32(result->creditsPosition_);
69     data.ReadString(result->appName_);
70     data.ReadString(result->launchClientData_);
71     result->icon_ = std::shared_ptr<AVSessionPixelMap>(data.ReadParcelable<AVSessionPixelMap>());
72     if (result->icon_ == nullptr) {
73         SLOGD("read AVMediaDescription - icon null");
74     }
75     result->extras_ = std::shared_ptr<AAFwk::WantParams>(data.ReadParcelable<AAFwk::WantParams>());
76     if (result->extras_ == nullptr) {
77         SLOGD("read AVMediaDescription - extras null");
78     }
79     data.ReadString(result->drmScheme_);
80     result->dataSrc_.ReadFromParcel(data);
81     data.ReadBool(result->pcmSrc_);
82     return result;
83 }
84 
SetMediaId(const std::string & mediaId)85 void AVMediaDescription::SetMediaId(const std::string& mediaId)
86 {
87     mediaId_ = mediaId;
88 }
89 
GetMediaId() const90 std::string AVMediaDescription::GetMediaId() const
91 {
92     return mediaId_;
93 }
94 
SetTitle(const std::string & title)95 void AVMediaDescription::SetTitle(const std::string& title)
96 {
97     title_ = title;
98 }
99 
GetTitle() const100 std::string AVMediaDescription::GetTitle() const
101 {
102     return title_;
103 }
104 
SetSubtitle(const std::string & subtitle)105 void AVMediaDescription::SetSubtitle(const std::string& subtitle)
106 {
107     subtitle_ = subtitle;
108 }
109 
GetSubtitle() const110 std::string AVMediaDescription::GetSubtitle() const
111 {
112     return subtitle_;
113 }
114 
SetDescription(const std::string & description)115 void AVMediaDescription::SetDescription(const std::string& description)
116 {
117     description_ = description;
118 }
119 
GetDescription() const120 std::string AVMediaDescription::GetDescription() const
121 {
122     return description_;
123 }
124 
SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)125 void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon)
126 {
127     icon_ = icon;
128 }
129 
GetIcon() const130 std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const
131 {
132     return icon_;
133 }
134 
SetIconUri(const std::string & iconUri)135 void AVMediaDescription::SetIconUri(const std::string& iconUri)
136 {
137     iconUri_ = iconUri;
138 }
139 
GetIconUri() const140 std::string AVMediaDescription::GetIconUri() const
141 {
142     return iconUri_;
143 }
144 
SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)145 void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras)
146 {
147     extras_ = extras;
148 }
149 
GetExtras() const150 std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const
151 {
152     return extras_;
153 }
154 
SetMediaUri(const std::string & mediaUri)155 void AVMediaDescription::SetMediaUri(const std::string& mediaUri)
156 {
157     mediaUri_ = mediaUri;
158 }
159 
GetMediaUri() const160 std::string AVMediaDescription::GetMediaUri() const
161 {
162     return mediaUri_;
163 }
164 
SetFdSrc(const AVFileDescriptor & fdSrc)165 void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc)
166 {
167     fdSrc_ = fdSrc;
168 }
169 
GetFdSrc() const170 AVFileDescriptor AVMediaDescription::GetFdSrc() const
171 {
172     return fdSrc_;
173 }
SetMediaType(const std::string & mediaType)174 void AVMediaDescription::SetMediaType(const std::string& mediaType)
175 {
176     mediaType_ = mediaType;
177 }
178 
GetMediaType() const179 std::string AVMediaDescription::GetMediaType() const
180 {
181     return mediaType_;
182 }
183 
SetMediaSize(const int32_t mediaSize)184 void AVMediaDescription::SetMediaSize(const int32_t mediaSize)
185 {
186     mediaSize_ = mediaSize;
187 }
188 
GetMediaSize() const189 int32_t AVMediaDescription::GetMediaSize() const
190 {
191     return mediaSize_;
192 }
193 
SetAlbumTitle(const std::string & albumTitle)194 void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle)
195 {
196     albumTitle_ = albumTitle;
197 }
198 
GetAlbumTitle() const199 std::string AVMediaDescription::GetAlbumTitle() const
200 {
201     return albumTitle_;
202 }
203 
SetAlbumCoverUri(const std::string & albumCoverUri)204 void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri)
205 {
206     albumCoverUri_ = albumCoverUri;
207 }
208 
GetAlbumCoverUri() const209 std::string AVMediaDescription::GetAlbumCoverUri() const
210 {
211     return albumCoverUri_;
212 }
213 
SetLyricContent(const std::string & lyricContent)214 void AVMediaDescription::SetLyricContent(const std::string& lyricContent)
215 {
216     lyricContent_ = lyricContent;
217 }
218 
GetLyricContent() const219 std::string AVMediaDescription::GetLyricContent() const
220 {
221     return lyricContent_;
222 }
223 
SetLyricUri(const std::string & lyricUri)224 void AVMediaDescription::SetLyricUri(const std::string& lyricUri)
225 {
226     lyricUri_ = lyricUri;
227 }
228 
GetLyricUri() const229 std::string AVMediaDescription::GetLyricUri() const
230 {
231     return lyricUri_;
232 }
233 
SetArtist(const std::string & artist)234 void AVMediaDescription::SetArtist(const std::string& artist)
235 {
236     artist_ = artist;
237 }
238 
GetArtist() const239 std::string AVMediaDescription::GetArtist() const
240 {
241     return artist_;
242 }
243 
SetDuration(const int32_t duration)244 void AVMediaDescription::SetDuration(const int32_t duration)
245 {
246     duration_ = duration;
247 }
248 
GetDuration() const249 int32_t AVMediaDescription::GetDuration() const
250 {
251     return duration_;
252 }
253 
SetStartPosition(const int32_t startPosition)254 void AVMediaDescription::SetStartPosition(const int32_t startPosition)
255 {
256     startPosition_ = startPosition;
257 }
258 
GetStartPosition() const259 int32_t AVMediaDescription::GetStartPosition() const
260 {
261     return startPosition_;
262 }
263 
SetCreditsPosition(const int32_t creditsPosition)264 void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition)
265 {
266     creditsPosition_ = creditsPosition;
267 }
268 
GetCreditsPosition() const269 int32_t AVMediaDescription::GetCreditsPosition() const
270 {
271     return creditsPosition_;
272 }
273 
SetAppName(const std::string & appName)274 void AVMediaDescription::SetAppName(const std::string& appName)
275 {
276     appName_ = appName;
277 }
278 
GetAppName() const279 std::string AVMediaDescription::GetAppName() const
280 {
281     return appName_;
282 }
283 
SetLaunchClientData(const std::string & launchClientData)284 void AVMediaDescription::SetLaunchClientData(const std::string& launchClientData)
285 {
286     launchClientData_ = launchClientData;
287 }
288 
GetLaunchClientData() const289 std::string AVMediaDescription::GetLaunchClientData() const
290 {
291     return launchClientData_;
292 }
293 
SetDrmScheme(const std::string & drmScheme)294 void AVMediaDescription::SetDrmScheme(const std::string& drmScheme)
295 {
296     drmScheme_ = drmScheme;
297 }
298 
GetDrmScheme() const299 std::string AVMediaDescription::GetDrmScheme() const
300 {
301     return drmScheme_;
302 }
303 
IsValid() const304 bool AVMediaDescription::IsValid() const
305 {
306     return !(mediaId_.empty());
307 }
308 
SetDataSrc(const AVDataSrcDescriptor & dataSrc)309 void AVMediaDescription::SetDataSrc(const AVDataSrcDescriptor& dataSrc)
310 {
311     dataSrc_ = dataSrc;
312 }
313 
GetDataSrc() const314 AVDataSrcDescriptor AVMediaDescription::GetDataSrc() const
315 {
316     return dataSrc_;
317 }
318 
SetPcmSrc(const bool pcmSrc)319 void AVMediaDescription::SetPcmSrc(const bool pcmSrc)
320 {
321     pcmSrc_ = pcmSrc;
322 }
323 
GetPcmSrc() const324 bool AVMediaDescription::GetPcmSrc() const
325 {
326     return pcmSrc_;
327 }
328 
329 // below not involved in Marshalling
SetCastInfo(const std::shared_ptr<AVCastInfo> & castInfo)330 void AVMediaDescription::SetCastInfo(const std::shared_ptr<AVCastInfo>& castInfo)
331 {
332     castInfo_ = castInfo;
333 }
334 
GetCastInfo() const335 std::shared_ptr<AVCastInfo> AVMediaDescription::GetCastInfo() const
336 {
337     return castInfo_;
338 }
339 
Reset()340 void AVMediaDescription::Reset()
341 {
342     mediaId_ = "";
343     title_ = "";
344     subtitle_ = "";
345     description_ = "";
346     icon_ = nullptr;
347     iconUri_ = "";
348     extras_ = nullptr;
349     mediaType_ = "";
350     mediaSize_ = 0;
351     albumTitle_ = "";
352     albumCoverUri_ = "";
353     lyricContent_ = "";
354     lyricUri_ = "";
355     artist_ = "";
356     mediaUri_ = "";
357     AVFileDescriptor fdSrc;
358     fdSrc_ = fdSrc;
359     duration_ = 0;
360     startPosition_ = 0;
361     creditsPosition_ = 0;
362     appName_ = "";
363     launchClientData_ = "";
364     drmScheme_ = "";
365     AVDataSrcDescriptor dataSrc;
366     dataSrc_ = dataSrc;
367     pcmSrc_ = false;
368     castInfo_ = nullptr;
369 }
370 } // namespace OHOS::AVSession
371