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.WriteParcelable(icon_.get()) && 41 parcel.WriteParcelable(extras_.get()) && 42 parcel.WriteString(drmScheme_) && 43 dataSrc_.WriteToParcel(parcel); 44 } 45 Unmarshalling(Parcel & data)46AVMediaDescription *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)81void AVMediaDescription::SetMediaId(const std::string& mediaId) 82 { 83 mediaId_ = mediaId; 84 } 85 GetMediaId() const86std::string AVMediaDescription::GetMediaId() const 87 { 88 return mediaId_; 89 } 90 SetTitle(const std::string & title)91void AVMediaDescription::SetTitle(const std::string& title) 92 { 93 title_ = title; 94 } 95 GetTitle() const96std::string AVMediaDescription::GetTitle() const 97 { 98 return title_; 99 } 100 SetSubtitle(const std::string & subtitle)101void AVMediaDescription::SetSubtitle(const std::string& subtitle) 102 { 103 subtitle_ = subtitle; 104 } 105 GetSubtitle() const106std::string AVMediaDescription::GetSubtitle() const 107 { 108 return subtitle_; 109 } 110 SetDescription(const std::string & description)111void AVMediaDescription::SetDescription(const std::string& description) 112 { 113 description_ = description; 114 } 115 GetDescription() const116std::string AVMediaDescription::GetDescription() const 117 { 118 return description_; 119 } 120 SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)121void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon) 122 { 123 icon_ = icon; 124 } 125 GetIcon() const126std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const 127 { 128 return icon_; 129 } 130 SetIconUri(const std::string & iconUri)131void AVMediaDescription::SetIconUri(const std::string& iconUri) 132 { 133 iconUri_ = iconUri; 134 } 135 GetIconUri() const136std::string AVMediaDescription::GetIconUri() const 137 { 138 return iconUri_; 139 } 140 SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)141void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras) 142 { 143 extras_ = extras; 144 } 145 GetExtras() const146std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const 147 { 148 return extras_; 149 } 150 SetMediaUri(const std::string & mediaUri)151void AVMediaDescription::SetMediaUri(const std::string& mediaUri) 152 { 153 mediaUri_ = mediaUri; 154 } 155 GetMediaUri() const156std::string AVMediaDescription::GetMediaUri() const 157 { 158 return mediaUri_; 159 } 160 SetFdSrc(const AVFileDescriptor & fdSrc)161void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc) 162 { 163 fdSrc_ = fdSrc; 164 } 165 GetFdSrc() const166AVFileDescriptor AVMediaDescription::GetFdSrc() const 167 { 168 return fdSrc_; 169 } SetMediaType(const std::string & mediaType)170void AVMediaDescription::SetMediaType(const std::string& mediaType) 171 { 172 mediaType_ = mediaType; 173 } 174 GetMediaType() const175std::string AVMediaDescription::GetMediaType() const 176 { 177 return mediaType_; 178 } 179 SetMediaSize(const int32_t mediaSize)180void AVMediaDescription::SetMediaSize(const int32_t mediaSize) 181 { 182 mediaSize_ = mediaSize; 183 } 184 GetMediaSize() const185int32_t AVMediaDescription::GetMediaSize() const 186 { 187 return mediaSize_; 188 } 189 SetAlbumTitle(const std::string & albumTitle)190void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle) 191 { 192 albumTitle_ = albumTitle; 193 } 194 GetAlbumTitle() const195std::string AVMediaDescription::GetAlbumTitle() const 196 { 197 return albumTitle_; 198 } 199 SetAlbumCoverUri(const std::string & albumCoverUri)200void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri) 201 { 202 albumCoverUri_ = albumCoverUri; 203 } 204 GetAlbumCoverUri() const205std::string AVMediaDescription::GetAlbumCoverUri() const 206 { 207 return albumCoverUri_; 208 } 209 SetLyricContent(const std::string & lyricContent)210void AVMediaDescription::SetLyricContent(const std::string& lyricContent) 211 { 212 lyricContent_ = lyricContent; 213 } 214 GetLyricContent() const215std::string AVMediaDescription::GetLyricContent() const 216 { 217 return lyricContent_; 218 } 219 SetLyricUri(const std::string & lyricUri)220void AVMediaDescription::SetLyricUri(const std::string& lyricUri) 221 { 222 lyricUri_ = lyricUri; 223 } 224 GetLyricUri() const225std::string AVMediaDescription::GetLyricUri() const 226 { 227 return lyricUri_; 228 } 229 SetArtist(const std::string & artist)230void AVMediaDescription::SetArtist(const std::string& artist) 231 { 232 artist_ = artist; 233 } 234 GetArtist() const235std::string AVMediaDescription::GetArtist() const 236 { 237 return artist_; 238 } 239 SetDuration(const int32_t duration)240void AVMediaDescription::SetDuration(const int32_t duration) 241 { 242 duration_ = duration; 243 } 244 GetDuration() const245int32_t AVMediaDescription::GetDuration() const 246 { 247 return duration_; 248 } 249 SetStartPosition(const int32_t startPosition)250void AVMediaDescription::SetStartPosition(const int32_t startPosition) 251 { 252 startPosition_ = startPosition; 253 } 254 GetStartPosition() const255int32_t AVMediaDescription::GetStartPosition() const 256 { 257 return startPosition_; 258 } 259 SetCreditsPosition(const int32_t creditsPosition)260void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition) 261 { 262 creditsPosition_ = creditsPosition; 263 } 264 GetCreditsPosition() const265int32_t AVMediaDescription::GetCreditsPosition() const 266 { 267 return creditsPosition_; 268 } 269 SetAppName(const std::string & appName)270void AVMediaDescription::SetAppName(const std::string& appName) 271 { 272 appName_ = appName; 273 } 274 GetAppName() const275std::string AVMediaDescription::GetAppName() const 276 { 277 return appName_; 278 } 279 SetDrmScheme(const std::string & drmScheme)280void AVMediaDescription::SetDrmScheme(const std::string& drmScheme) 281 { 282 drmScheme_ = drmScheme; 283 } 284 GetDrmScheme() const285std::string AVMediaDescription::GetDrmScheme() const 286 { 287 return drmScheme_; 288 } 289 IsValid() const290bool AVMediaDescription::IsValid() const 291 { 292 return !(mediaId_.empty()); 293 } 294 SetDataSrc(const AVDataSrcDescriptor & dataSrc)295void AVMediaDescription::SetDataSrc(const AVDataSrcDescriptor& dataSrc) 296 { 297 dataSrc_ = dataSrc; 298 } 299 GetDataSrc() const300AVDataSrcDescriptor AVMediaDescription::GetDataSrc() const 301 { 302 return dataSrc_; 303 } 304 Reset()305void 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