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 } 44 Unmarshalling(Parcel & data)45AVMediaDescription *AVMediaDescription::Unmarshalling(Parcel& data) 46 { 47 auto *result = new (std::nothrow) AVMediaDescription(); 48 CHECK_AND_RETURN_RET_LOG(result != nullptr, nullptr, "new AVMediaDescription failed"); 49 data.ReadString(result->mediaId_); 50 data.ReadString(result->title_); 51 data.ReadString(result->subtitle_); 52 data.ReadString(result->description_); 53 data.ReadString(result->iconUri_); 54 data.ReadString(result->mediaType_); 55 data.ReadInt32(result->mediaSize_); 56 data.ReadString(result->albumTitle_); 57 data.ReadString(result->albumCoverUri_); 58 data.ReadString(result->lyricContent_); 59 data.ReadString(result->lyricUri_); 60 data.ReadString(result->artist_); 61 data.ReadString(result->mediaUri_); 62 result->fdSrc_.ReadFromParcel(data); 63 data.ReadInt32(result->duration_); 64 data.ReadInt32(result->startPosition_); 65 data.ReadInt32(result->creditsPosition_); 66 data.ReadString(result->appName_); 67 result->icon_ = std::shared_ptr<AVSessionPixelMap>(data.ReadParcelable<AVSessionPixelMap>()); 68 if (result->icon_ == nullptr) { 69 SLOGD("read AVMediaDescription - icon null"); 70 } 71 result->extras_ = std::shared_ptr<AAFwk::WantParams>(data.ReadParcelable<AAFwk::WantParams>()); 72 if (result->extras_ == nullptr) { 73 SLOGD("read AVMediaDescription - extras null"); 74 } 75 data.ReadString(result->drmScheme_); 76 return result; 77 } 78 SetMediaId(const std::string & mediaId)79void AVMediaDescription::SetMediaId(const std::string& mediaId) 80 { 81 mediaId_ = mediaId; 82 } 83 GetMediaId() const84std::string AVMediaDescription::GetMediaId() const 85 { 86 return mediaId_; 87 } 88 SetTitle(const std::string & title)89void AVMediaDescription::SetTitle(const std::string& title) 90 { 91 title_ = title; 92 } 93 GetTitle() const94std::string AVMediaDescription::GetTitle() const 95 { 96 return title_; 97 } 98 SetSubtitle(const std::string & subtitle)99void AVMediaDescription::SetSubtitle(const std::string& subtitle) 100 { 101 subtitle_ = subtitle; 102 } 103 GetSubtitle() const104std::string AVMediaDescription::GetSubtitle() const 105 { 106 return subtitle_; 107 } 108 SetDescription(const std::string & description)109void AVMediaDescription::SetDescription(const std::string& description) 110 { 111 description_ = description; 112 } 113 GetDescription() const114std::string AVMediaDescription::GetDescription() const 115 { 116 return description_; 117 } 118 SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)119void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon) 120 { 121 icon_ = icon; 122 } 123 GetIcon() const124std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const 125 { 126 return icon_; 127 } 128 SetIconUri(const std::string & iconUri)129void AVMediaDescription::SetIconUri(const std::string& iconUri) 130 { 131 iconUri_ = iconUri; 132 } 133 GetIconUri() const134std::string AVMediaDescription::GetIconUri() const 135 { 136 return iconUri_; 137 } 138 SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)139void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras) 140 { 141 extras_ = extras; 142 } 143 GetExtras() const144std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const 145 { 146 return extras_; 147 } 148 SetMediaUri(const std::string & mediaUri)149void AVMediaDescription::SetMediaUri(const std::string& mediaUri) 150 { 151 mediaUri_ = mediaUri; 152 } 153 GetMediaUri() const154std::string AVMediaDescription::GetMediaUri() const 155 { 156 return mediaUri_; 157 } 158 SetFdSrc(const AVFileDescriptor & fdSrc)159void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc) 160 { 161 fdSrc_ = fdSrc; 162 } 163 GetFdSrc() const164AVFileDescriptor AVMediaDescription::GetFdSrc() const 165 { 166 return fdSrc_; 167 } SetMediaType(const std::string & mediaType)168void AVMediaDescription::SetMediaType(const std::string& mediaType) 169 { 170 mediaType_ = mediaType; 171 } 172 GetMediaType() const173std::string AVMediaDescription::GetMediaType() const 174 { 175 return mediaType_; 176 } 177 SetMediaSize(const int32_t mediaSize)178void AVMediaDescription::SetMediaSize(const int32_t mediaSize) 179 { 180 mediaSize_ = mediaSize; 181 } 182 GetMediaSize() const183int32_t AVMediaDescription::GetMediaSize() const 184 { 185 return mediaSize_; 186 } 187 SetAlbumTitle(const std::string & albumTitle)188void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle) 189 { 190 albumTitle_ = albumTitle; 191 } 192 GetAlbumTitle() const193std::string AVMediaDescription::GetAlbumTitle() const 194 { 195 return albumTitle_; 196 } 197 SetAlbumCoverUri(const std::string & albumCoverUri)198void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri) 199 { 200 albumCoverUri_ = albumCoverUri; 201 } 202 GetAlbumCoverUri() const203std::string AVMediaDescription::GetAlbumCoverUri() const 204 { 205 return albumCoverUri_; 206 } 207 SetLyricContent(const std::string & lyricContent)208void AVMediaDescription::SetLyricContent(const std::string& lyricContent) 209 { 210 lyricContent_ = lyricContent; 211 } 212 GetLyricContent() const213std::string AVMediaDescription::GetLyricContent() const 214 { 215 return lyricContent_; 216 } 217 SetLyricUri(const std::string & lyricUri)218void AVMediaDescription::SetLyricUri(const std::string& lyricUri) 219 { 220 lyricUri_ = lyricUri; 221 } 222 GetLyricUri() const223std::string AVMediaDescription::GetLyricUri() const 224 { 225 return lyricUri_; 226 } 227 SetArtist(const std::string & artist)228void AVMediaDescription::SetArtist(const std::string& artist) 229 { 230 artist_ = artist; 231 } 232 GetArtist() const233std::string AVMediaDescription::GetArtist() const 234 { 235 return artist_; 236 } 237 SetDuration(const int32_t duration)238void AVMediaDescription::SetDuration(const int32_t duration) 239 { 240 duration_ = duration; 241 } 242 GetDuration() const243int32_t AVMediaDescription::GetDuration() const 244 { 245 return duration_; 246 } 247 SetStartPosition(const int32_t startPosition)248void AVMediaDescription::SetStartPosition(const int32_t startPosition) 249 { 250 startPosition_ = startPosition; 251 } 252 GetStartPosition() const253int32_t AVMediaDescription::GetStartPosition() const 254 { 255 return startPosition_; 256 } 257 SetCreditsPosition(const int32_t creditsPosition)258void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition) 259 { 260 creditsPosition_ = creditsPosition; 261 } 262 GetCreditsPosition() const263int32_t AVMediaDescription::GetCreditsPosition() const 264 { 265 return creditsPosition_; 266 } 267 SetAppName(const std::string & appName)268void AVMediaDescription::SetAppName(const std::string& appName) 269 { 270 appName_ = appName; 271 } 272 GetAppName() const273std::string AVMediaDescription::GetAppName() const 274 { 275 return appName_; 276 } 277 SetDrmScheme(const std::string & drmScheme)278void AVMediaDescription::SetDrmScheme(const std::string& drmScheme) 279 { 280 drmScheme_ = drmScheme; 281 } 282 GetDrmScheme() const283std::string AVMediaDescription::GetDrmScheme() const 284 { 285 return drmScheme_; 286 } 287 IsValid() const288bool AVMediaDescription::IsValid() const 289 { 290 return !(mediaId_.empty()); 291 } 292 Reset()293void AVMediaDescription::Reset() 294 { 295 mediaId_ = ""; 296 title_ = ""; 297 subtitle_ = ""; 298 description_ = ""; 299 icon_ = nullptr; 300 iconUri_ = ""; 301 extras_ = nullptr; 302 mediaType_ = ""; 303 mediaSize_ = 0; 304 albumTitle_ = ""; 305 albumCoverUri_ = ""; 306 lyricContent_ = ""; 307 lyricUri_ = ""; 308 artist_ = ""; 309 mediaUri_ = ""; 310 AVFileDescriptor fdSrc; 311 fdSrc_ = fdSrc; 312 duration_ = 0; 313 startPosition_ = 0; 314 creditsPosition_ = 0; 315 appName_ = ""; 316 drmScheme_ = ""; 317 } 318 } // namespace OHOS::AVSession 319