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) const20bool 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)48AVMediaDescription *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)85void AVMediaDescription::SetMediaId(const std::string& mediaId) 86 { 87 mediaId_ = mediaId; 88 } 89 GetMediaId() const90std::string AVMediaDescription::GetMediaId() const 91 { 92 return mediaId_; 93 } 94 SetTitle(const std::string & title)95void AVMediaDescription::SetTitle(const std::string& title) 96 { 97 title_ = title; 98 } 99 GetTitle() const100std::string AVMediaDescription::GetTitle() const 101 { 102 return title_; 103 } 104 SetSubtitle(const std::string & subtitle)105void AVMediaDescription::SetSubtitle(const std::string& subtitle) 106 { 107 subtitle_ = subtitle; 108 } 109 GetSubtitle() const110std::string AVMediaDescription::GetSubtitle() const 111 { 112 return subtitle_; 113 } 114 SetDescription(const std::string & description)115void AVMediaDescription::SetDescription(const std::string& description) 116 { 117 description_ = description; 118 } 119 GetDescription() const120std::string AVMediaDescription::GetDescription() const 121 { 122 return description_; 123 } 124 SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)125void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon) 126 { 127 icon_ = icon; 128 } 129 GetIcon() const130std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const 131 { 132 return icon_; 133 } 134 SetIconUri(const std::string & iconUri)135void AVMediaDescription::SetIconUri(const std::string& iconUri) 136 { 137 iconUri_ = iconUri; 138 } 139 GetIconUri() const140std::string AVMediaDescription::GetIconUri() const 141 { 142 return iconUri_; 143 } 144 SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)145void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras) 146 { 147 extras_ = extras; 148 } 149 GetExtras() const150std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const 151 { 152 return extras_; 153 } 154 SetMediaUri(const std::string & mediaUri)155void AVMediaDescription::SetMediaUri(const std::string& mediaUri) 156 { 157 mediaUri_ = mediaUri; 158 } 159 GetMediaUri() const160std::string AVMediaDescription::GetMediaUri() const 161 { 162 return mediaUri_; 163 } 164 SetFdSrc(const AVFileDescriptor & fdSrc)165void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc) 166 { 167 fdSrc_ = fdSrc; 168 } 169 GetFdSrc() const170AVFileDescriptor AVMediaDescription::GetFdSrc() const 171 { 172 return fdSrc_; 173 } SetMediaType(const std::string & mediaType)174void AVMediaDescription::SetMediaType(const std::string& mediaType) 175 { 176 mediaType_ = mediaType; 177 } 178 GetMediaType() const179std::string AVMediaDescription::GetMediaType() const 180 { 181 return mediaType_; 182 } 183 SetMediaSize(const int32_t mediaSize)184void AVMediaDescription::SetMediaSize(const int32_t mediaSize) 185 { 186 mediaSize_ = mediaSize; 187 } 188 GetMediaSize() const189int32_t AVMediaDescription::GetMediaSize() const 190 { 191 return mediaSize_; 192 } 193 SetAlbumTitle(const std::string & albumTitle)194void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle) 195 { 196 albumTitle_ = albumTitle; 197 } 198 GetAlbumTitle() const199std::string AVMediaDescription::GetAlbumTitle() const 200 { 201 return albumTitle_; 202 } 203 SetAlbumCoverUri(const std::string & albumCoverUri)204void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri) 205 { 206 albumCoverUri_ = albumCoverUri; 207 } 208 GetAlbumCoverUri() const209std::string AVMediaDescription::GetAlbumCoverUri() const 210 { 211 return albumCoverUri_; 212 } 213 SetLyricContent(const std::string & lyricContent)214void AVMediaDescription::SetLyricContent(const std::string& lyricContent) 215 { 216 lyricContent_ = lyricContent; 217 } 218 GetLyricContent() const219std::string AVMediaDescription::GetLyricContent() const 220 { 221 return lyricContent_; 222 } 223 SetLyricUri(const std::string & lyricUri)224void AVMediaDescription::SetLyricUri(const std::string& lyricUri) 225 { 226 lyricUri_ = lyricUri; 227 } 228 GetLyricUri() const229std::string AVMediaDescription::GetLyricUri() const 230 { 231 return lyricUri_; 232 } 233 SetArtist(const std::string & artist)234void AVMediaDescription::SetArtist(const std::string& artist) 235 { 236 artist_ = artist; 237 } 238 GetArtist() const239std::string AVMediaDescription::GetArtist() const 240 { 241 return artist_; 242 } 243 SetDuration(const int32_t duration)244void AVMediaDescription::SetDuration(const int32_t duration) 245 { 246 duration_ = duration; 247 } 248 GetDuration() const249int32_t AVMediaDescription::GetDuration() const 250 { 251 return duration_; 252 } 253 SetStartPosition(const int32_t startPosition)254void AVMediaDescription::SetStartPosition(const int32_t startPosition) 255 { 256 startPosition_ = startPosition; 257 } 258 GetStartPosition() const259int32_t AVMediaDescription::GetStartPosition() const 260 { 261 return startPosition_; 262 } 263 SetCreditsPosition(const int32_t creditsPosition)264void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition) 265 { 266 creditsPosition_ = creditsPosition; 267 } 268 GetCreditsPosition() const269int32_t AVMediaDescription::GetCreditsPosition() const 270 { 271 return creditsPosition_; 272 } 273 SetAppName(const std::string & appName)274void AVMediaDescription::SetAppName(const std::string& appName) 275 { 276 appName_ = appName; 277 } 278 GetAppName() const279std::string AVMediaDescription::GetAppName() const 280 { 281 return appName_; 282 } 283 SetLaunchClientData(const std::string & launchClientData)284void AVMediaDescription::SetLaunchClientData(const std::string& launchClientData) 285 { 286 launchClientData_ = launchClientData; 287 } 288 GetLaunchClientData() const289std::string AVMediaDescription::GetLaunchClientData() const 290 { 291 return launchClientData_; 292 } 293 SetDrmScheme(const std::string & drmScheme)294void AVMediaDescription::SetDrmScheme(const std::string& drmScheme) 295 { 296 drmScheme_ = drmScheme; 297 } 298 GetDrmScheme() const299std::string AVMediaDescription::GetDrmScheme() const 300 { 301 return drmScheme_; 302 } 303 IsValid() const304bool AVMediaDescription::IsValid() const 305 { 306 return !(mediaId_.empty()); 307 } 308 SetDataSrc(const AVDataSrcDescriptor & dataSrc)309void AVMediaDescription::SetDataSrc(const AVDataSrcDescriptor& dataSrc) 310 { 311 dataSrc_ = dataSrc; 312 } 313 GetDataSrc() const314AVDataSrcDescriptor AVMediaDescription::GetDataSrc() const 315 { 316 return dataSrc_; 317 } 318 SetPcmSrc(const bool pcmSrc)319void AVMediaDescription::SetPcmSrc(const bool pcmSrc) 320 { 321 pcmSrc_ = pcmSrc; 322 } 323 GetPcmSrc() const324bool AVMediaDescription::GetPcmSrc() const 325 { 326 return pcmSrc_; 327 } 328 329 // below not involved in Marshalling SetCastInfo(const std::shared_ptr<AVCastInfo> & castInfo)330void AVMediaDescription::SetCastInfo(const std::shared_ptr<AVCastInfo>& castInfo) 331 { 332 castInfo_ = castInfo; 333 } 334 GetCastInfo() const335std::shared_ptr<AVCastInfo> AVMediaDescription::GetCastInfo() const 336 { 337 return castInfo_; 338 } 339 Reset()340void 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