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 } 43 Unmarshalling(Parcel & data)44AVMediaDescription *AVMediaDescription::Unmarshalling(Parcel& data) 45 { 46 auto *result = new (std::nothrow) AVMediaDescription(); 47 CHECK_AND_RETURN_RET_LOG(result != nullptr, nullptr, "new AVMediaDescription failed"); 48 data.ReadString(result->mediaId_); 49 data.ReadString(result->title_); 50 data.ReadString(result->subtitle_); 51 data.ReadString(result->description_); 52 data.ReadString(result->iconUri_); 53 data.ReadString(result->mediaType_); 54 data.ReadInt32(result->mediaSize_); 55 data.ReadString(result->albumTitle_); 56 data.ReadString(result->albumCoverUri_); 57 data.ReadString(result->lyricContent_); 58 data.ReadString(result->lyricUri_); 59 data.ReadString(result->artist_); 60 data.ReadString(result->mediaUri_); 61 result->fdSrc_.ReadFromParcel(data); 62 data.ReadInt32(result->duration_); 63 data.ReadInt32(result->startPosition_); 64 data.ReadInt32(result->creditsPosition_); 65 data.ReadString(result->appName_); 66 result->icon_ = std::shared_ptr<AVSessionPixelMap>(data.ReadParcelable<AVSessionPixelMap>()); 67 if (result->icon_ == nullptr) { 68 SLOGD("read AVMediaDescription - icon null"); 69 } 70 result->extras_ = std::shared_ptr<AAFwk::WantParams>(data.ReadParcelable<AAFwk::WantParams>()); 71 if (result->extras_ == nullptr) { 72 SLOGD("read AVMediaDescription - extras null"); 73 } 74 return result; 75 } 76 SetMediaId(const std::string & mediaId)77void AVMediaDescription::SetMediaId(const std::string& mediaId) 78 { 79 mediaId_ = mediaId; 80 } 81 GetMediaId() const82std::string AVMediaDescription::GetMediaId() const 83 { 84 return mediaId_; 85 } 86 SetTitle(const std::string & title)87void AVMediaDescription::SetTitle(const std::string& title) 88 { 89 title_ = title; 90 } 91 GetTitle() const92std::string AVMediaDescription::GetTitle() const 93 { 94 return title_; 95 } 96 SetSubtitle(const std::string & subtitle)97void AVMediaDescription::SetSubtitle(const std::string& subtitle) 98 { 99 subtitle_ = subtitle; 100 } 101 GetSubtitle() const102std::string AVMediaDescription::GetSubtitle() const 103 { 104 return subtitle_; 105 } 106 SetDescription(const std::string & description)107void AVMediaDescription::SetDescription(const std::string& description) 108 { 109 description_ = description; 110 } 111 GetDescription() const112std::string AVMediaDescription::GetDescription() const 113 { 114 return description_; 115 } 116 SetIcon(const std::shared_ptr<AVSessionPixelMap> & icon)117void AVMediaDescription::SetIcon(const std::shared_ptr<AVSessionPixelMap>& icon) 118 { 119 icon_ = icon; 120 } 121 GetIcon() const122std::shared_ptr<AVSessionPixelMap> AVMediaDescription::GetIcon() const 123 { 124 return icon_; 125 } 126 SetIconUri(const std::string & iconUri)127void AVMediaDescription::SetIconUri(const std::string& iconUri) 128 { 129 iconUri_ = iconUri; 130 } 131 GetIconUri() const132std::string AVMediaDescription::GetIconUri() const 133 { 134 return iconUri_; 135 } 136 SetExtras(const std::shared_ptr<AAFwk::WantParams> & extras)137void AVMediaDescription::SetExtras(const std::shared_ptr<AAFwk::WantParams>& extras) 138 { 139 extras_ = extras; 140 } 141 GetExtras() const142std::shared_ptr<AAFwk::WantParams> AVMediaDescription::GetExtras() const 143 { 144 return extras_; 145 } 146 SetMediaUri(const std::string & mediaUri)147void AVMediaDescription::SetMediaUri(const std::string& mediaUri) 148 { 149 mediaUri_ = mediaUri; 150 } 151 GetMediaUri() const152std::string AVMediaDescription::GetMediaUri() const 153 { 154 return mediaUri_; 155 } 156 SetFdSrc(const AVFileDescriptor & fdSrc)157void AVMediaDescription::SetFdSrc(const AVFileDescriptor& fdSrc) 158 { 159 fdSrc_ = fdSrc; 160 } 161 GetFdSrc() const162AVFileDescriptor AVMediaDescription::GetFdSrc() const 163 { 164 return fdSrc_; 165 } SetMediaType(const std::string & mediaType)166void AVMediaDescription::SetMediaType(const std::string& mediaType) 167 { 168 mediaType_ = mediaType; 169 } 170 GetMediaType() const171std::string AVMediaDescription::GetMediaType() const 172 { 173 return mediaType_; 174 } 175 SetMediaSize(const int32_t mediaSize)176void AVMediaDescription::SetMediaSize(const int32_t mediaSize) 177 { 178 mediaSize_ = mediaSize; 179 } 180 GetMediaSize() const181int32_t AVMediaDescription::GetMediaSize() const 182 { 183 return mediaSize_; 184 } 185 SetAlbumTitle(const std::string & albumTitle)186void AVMediaDescription::SetAlbumTitle(const std::string& albumTitle) 187 { 188 albumTitle_ = albumTitle; 189 } 190 GetAlbumTitle() const191std::string AVMediaDescription::GetAlbumTitle() const 192 { 193 return albumTitle_; 194 } 195 SetAlbumCoverUri(const std::string & albumCoverUri)196void AVMediaDescription::SetAlbumCoverUri(const std::string& albumCoverUri) 197 { 198 albumCoverUri_ = albumCoverUri; 199 } 200 GetAlbumCoverUri() const201std::string AVMediaDescription::GetAlbumCoverUri() const 202 { 203 return albumCoverUri_; 204 } 205 SetLyricContent(const std::string & lyricContent)206void AVMediaDescription::SetLyricContent(const std::string& lyricContent) 207 { 208 lyricContent_ = lyricContent; 209 } 210 GetLyricContent() const211std::string AVMediaDescription::GetLyricContent() const 212 { 213 return lyricContent_; 214 } 215 SetLyricUri(const std::string & lyricUri)216void AVMediaDescription::SetLyricUri(const std::string& lyricUri) 217 { 218 lyricUri_ = lyricUri; 219 } 220 GetLyricUri() const221std::string AVMediaDescription::GetLyricUri() const 222 { 223 return lyricUri_; 224 } 225 SetArtist(const std::string & artist)226void AVMediaDescription::SetArtist(const std::string& artist) 227 { 228 artist_ = artist; 229 } 230 GetArtist() const231std::string AVMediaDescription::GetArtist() const 232 { 233 return artist_; 234 } 235 SetDuration(const int32_t duration)236void AVMediaDescription::SetDuration(const int32_t duration) 237 { 238 duration_ = duration; 239 } 240 GetDuration() const241int32_t AVMediaDescription::GetDuration() const 242 { 243 return duration_; 244 } 245 SetStartPosition(const int32_t startPosition)246void AVMediaDescription::SetStartPosition(const int32_t startPosition) 247 { 248 startPosition_ = startPosition; 249 } 250 GetStartPosition() const251int32_t AVMediaDescription::GetStartPosition() const 252 { 253 return startPosition_; 254 } 255 SetCreditsPosition(const int32_t creditsPosition)256void AVMediaDescription::SetCreditsPosition(const int32_t creditsPosition) 257 { 258 creditsPosition_ = creditsPosition; 259 } 260 GetCreditsPosition() const261int32_t AVMediaDescription::GetCreditsPosition() const 262 { 263 return creditsPosition_; 264 } 265 SetAppName(const std::string & appName)266void AVMediaDescription::SetAppName(const std::string& appName) 267 { 268 appName_ = appName; 269 } 270 GetAppName() const271std::string AVMediaDescription::GetAppName() const 272 { 273 return appName_; 274 } 275 IsValid() const276bool AVMediaDescription::IsValid() const 277 { 278 return !(mediaId_.empty()); 279 } 280 Reset()281void AVMediaDescription::Reset() 282 { 283 mediaId_ = ""; 284 title_ = ""; 285 subtitle_ = ""; 286 description_ = ""; 287 icon_ = nullptr; 288 iconUri_ = ""; 289 extras_ = nullptr; 290 mediaType_ = ""; 291 mediaSize_ = 0; 292 albumTitle_ = ""; 293 albumCoverUri_ = ""; 294 lyricContent_ = ""; 295 lyricUri_ = ""; 296 artist_ = ""; 297 mediaUri_ = ""; 298 AVFileDescriptor fdSrc; 299 fdSrc_ = fdSrc; 300 duration_ = 0; 301 startPosition_ = 0; 302 creditsPosition_ = 0; 303 appName_ = ""; 304 } 305 } // namespace OHOS::AVSession 306