kodi
MediaObject.h
1 /*****************************************************************
2 |
3 | Platinum - Managed ActionDescription
4 |
5 | Copyright (c) 2004-2010, Plutinosoft, LLC.
6 | All rights reserved.
7 | http://www.plutinosoft.com
8 |
9 | This program is free software; you can redistribute it and/or
10 | modify it under the terms of the GNU General Public License
11 | as published by the Free Software Foundation; either version 2
12 | of the License, or (at your option) any later version.
13 |
14 | OEMs, ISVs, VARs and other distributors that combine and
15 | distribute commercially licensed software with Platinum software
16 | and do not wish to distribute the source code for the commercially
17 | licensed software under version 2, or (at your option) any later
18 | version, of the GNU General Public License (the "GPL") must enter
19 | into a commercial license agreement with Plutinosoft, LLC.
20 |
21 | This program is distributed in the hope that it will be useful,
22 | but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 | GNU General Public License for more details.
25 |
26 | You should have received a copy of the GNU General Public License
27 | along with this program; see the file LICENSE.txt. If not, write to
28 | the Free Software Foundation, Inc.,
29 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
30 | http://www.gnu.org/licenses/gpl-2.0.html
31 |
32 ****************************************************************/
33 #pragma once
34 
35 /*----------------------------------------------------------------------
36 | includes
37 +---------------------------------------------------------------------*/
38 #include "PltMediaItem.h"
39 #include "Http.h"
40 
41 namespace Platinum
42 {
43 
44 /*----------------------------------------------------------------------
45 | ObjectClass
46 +---------------------------------------------------------------------*/
47 public ref class ObjectClass : public ManagedWrapper<PLT_ObjectClass>
48 {
49 public:
50 
51  // properties
52 
53  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Type, type, m_pHandle);
54  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, FriendlyName, friendly_name, m_pHandle);
55 
56 internal:
57 
58  ObjectClass(PLT_ObjectClass& native) :
60  {}
61 
62 public:
63 
64  ObjectClass(String^ type)
65  {
66  Type = type;
67  }
68 
69  ObjectClass(String^ type, String^ friendly_name)
70  {
71  Type = type;
72  FriendlyName = friendly_name;
73  }
74 };
75 
76 }
77 
78 // marshal wrapper
79 PLATINUM_MANAGED_MARSHAL_AS(Platinum::ObjectClass, PLT_ObjectClass);
80 
81 namespace Platinum
82 {
83 
84 /*----------------------------------------------------------------------
85 | PersonRole
86 +---------------------------------------------------------------------*/
87 public ref class PersonRole : public ManagedWrapper<PLT_PersonRole>
88 {
89 public:
90 
91  // properties
92 
93  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Name, name, m_pHandle);
94  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Role, role, m_pHandle);
95 
96 internal:
97 
98  PersonRole(PLT_PersonRole& native) :
100  {}
101 
102 public:
103  PersonRole(String^ name)
104  {
105  Name = name;
106  }
107 
108  PersonRole(String^ name, String^ role)
109  {
110  Name = name;
111  Role = role;
112  }
113 };
114 
115 }
116 
117 // marshal wrapper
118 PLATINUM_MANAGED_MARSHAL_AS(Platinum::PersonRole, PLT_PersonRole);
119 
120 namespace Platinum
121 {
122 
123 /*----------------------------------------------------------------------
124 | PeopleInfo
125 +---------------------------------------------------------------------*/
126 public ref class PeopleInfo : public ManagedWrapper<PLT_PeopleInfo>
127 {
128 public:
129 
130  // properties
131 
132  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Producer, producer, m_pHandle);
133  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Director, director, m_pHandle);
134  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Publisher, publisher, m_pHandle);
135  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Contributor, contributor, m_pHandle);
136 
137  property IEnumerable<PersonRole^>^ Artists
138  {
139  IEnumerable<PersonRole^>^ get();
140  }
141 
142  property IEnumerable<PersonRole^>^ Actors
143  {
144  IEnumerable<PersonRole^>^ get();
145  }
146 
147  property IEnumerable<PersonRole^>^ Authors
148  {
149  IEnumerable<PersonRole^>^ get();
150  }
151 
152 public:
153 
154  void AddArtist(PersonRole^ artist)
155  {
156  ((NPT_List<PLT_PersonRole>&)m_pHandle->artists).Add(artist->Handle);
157  }
158 
159  void AddActor(PersonRole^ actor)
160  {
161  ((NPT_List<PLT_PersonRole>&)m_pHandle->actors).Add(actor->Handle);
162  }
163 
164  void AddAuthors(PersonRole^ author)
165  {
166  ((NPT_List<PLT_PersonRole>&)m_pHandle->authors).Add(author->Handle);
167  }
168 
169 internal:
170 
171  PeopleInfo(PLT_PeopleInfo& native) :
173  {}
174 };
175 
176 }
177 
178 // marshal wrapper
179 PLATINUM_MANAGED_MARSHAL_AS(Platinum::PeopleInfo, PLT_PeopleInfo);
180 
181 
182 namespace Platinum
183 {
184 
185 /*----------------------------------------------------------------------
186 | AffiliationInfo
187 +---------------------------------------------------------------------*/
188 public ref class AffiliationInfo : public ManagedWrapper<PLT_AffiliationInfo>
189 {
190 public:
191 
192  // properties
193 
194  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Album, album, m_pHandle);
195  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Playlist, playlist, m_pHandle);
196 
197  property IEnumerable<String^>^ Genres
198  {
199  IEnumerable<String^>^ get();
200  }
201 
202 public:
203 
204  void AddGenre(String^ genre)
205  {
206  m_pHandle->genres.Add(NPT_String(StringConv(genre)));
207  }
208 
209 internal:
210 
213  {}
214 };
215 
216 }
217 
218 // marshal wrapper
219 PLATINUM_MANAGED_MARSHAL_AS(Platinum::AffiliationInfo, PLT_AffiliationInfo);
220 
221 namespace Platinum
222 {
223 
224 /*----------------------------------------------------------------------
225 | DescriptionInfo
226 +---------------------------------------------------------------------*/
227 public ref class DescriptionInfo : public ManagedWrapper<PLT_Description>
228 {
229 public:
230 
231  // properties
232 
233  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, DescriptionText, description, m_pHandle);
234  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, LongDescriptionText, long_description, m_pHandle);
235  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, IconUri, icon_uri, m_pHandle);
236  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Region, region, m_pHandle);
237  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Rating, rating, m_pHandle);
238  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Date, date, m_pHandle);
239  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Language, language, m_pHandle);
240 
241 internal:
242 
245  {}
246 };
247 
248 }
249 
250 // marshal wrapper
251 PLATINUM_MANAGED_MARSHAL_AS(Platinum::DescriptionInfo, PLT_Description);
252 
253 namespace Platinum
254 {
255 
256 /*----------------------------------------------------------------------
257 | RecordedInfo
258 +---------------------------------------------------------------------*/
259 public ref class RecordedInfo : public ManagedWrapper<PLT_RecordedInfo>
260 {
261 public:
262 
263  // properties
264 
265  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, ProgramTitle, program_title, m_pHandle);
266  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, SeriesTitle, series_title, m_pHandle);
267  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, EpisodeNumber, episode_number, m_pHandle);
268 
269 internal:
270 
271  RecordedInfo(PLT_RecordedInfo& native) :
273  {}
274 };
275 
276 }
277 
278 // marshal wrapper
279 PLATINUM_MANAGED_MARSHAL_AS(Platinum::RecordedInfo, PLT_RecordedInfo);
280 
281 namespace Platinum
282 {
283 
284 /*----------------------------------------------------------------------
285 | AlbumArtInfo
286 +---------------------------------------------------------------------*/
287 public ref class AlbumArtInfo : public ManagedWrapper<PLT_AlbumArtInfo>
288 {
289 public:
290 
291  // properties
292 
293  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Uri, uri, m_pHandle);
294  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, DlnaProfile, dlna_profile, m_pHandle);
295 
296 internal:
297 
298  AlbumArtInfo(PLT_AlbumArtInfo& native) :
300  {}
301 
302 public:
303  AlbumArtInfo(String^ uri)
304  {
305  Uri = uri;
306  }
307 
308  AlbumArtInfo(String^ uri, String^ dlna_profile)
309  {
310  Uri = uri;
311  DlnaProfile = dlna_profile;
312  }
313 };
314 
315 }
316 
317 // marshal wrapper
318 PLATINUM_MANAGED_MARSHAL_AS(Platinum::AlbumArtInfo, PLT_AlbumArtInfo);
319 
320 namespace Platinum
321 {
322 
323 /*----------------------------------------------------------------------
324 | ExtraInfo
325 +---------------------------------------------------------------------*/
326 public ref class ExtraInfo : public ManagedWrapper<PLT_ExtraInfo>
327 {
328 public:
329 
330  // properties
331 
332  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, ArtistDiscographyUri, artist_discography_uri, m_pHandle);
333  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, LyricsUri, lyrics_uri, m_pHandle);
334 
335  property IEnumerable<String^>^ Relations
336  {
337  IEnumerable<String^>^ get();
338  }
339 
340  property IEnumerable<AlbumArtInfo^>^ AlbumArts
341  {
342  IEnumerable<AlbumArtInfo^>^ get();
343  }
344 
345 public:
346 
347  void AddGenre(String^ relation)
348  {
349  m_pHandle->relations.Add(NPT_String(StringConv(relation)));
350  }
351 
352  void AddAlbumArtInfo(AlbumArtInfo^ info)
353  {
354  m_pHandle->album_arts.Add(info->Handle);
355  }
356 
357 
358 internal:
359 
360  ExtraInfo(PLT_ExtraInfo& native) :
362  {}
363 };
364 
365 }
366 
367 // marshal wrapper
368 PLATINUM_MANAGED_MARSHAL_AS(Platinum::ExtraInfo, PLT_ExtraInfo);
369 
370 namespace Platinum
371 {
372 
373 /*----------------------------------------------------------------------
374 | MiscInfo
375 +---------------------------------------------------------------------*/
376 public ref class MiscInfo : public ManagedWrapper<PLT_MiscInfo>
377 {
378 public:
379 
380  // properties
381 
382  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, DvdRegionCode, dvdregioncode, m_pHandle);
383  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, OriginalTrackNumber, original_track_number, m_pHandle);
384  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Toc, toc, m_pHandle);
385  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, UserAnnotation, user_annotation, m_pHandle);
386 
387 internal:
388 
389  MiscInfo(PLT_MiscInfo& native) :
391  {}
392 };
393 
394 }
395 
396 // marshal wrapper
397 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MiscInfo, PLT_MiscInfo);
398 
399 namespace Platinum
400 {
401 
402 /*----------------------------------------------------------------------
403 | ProtocolInfo
404 +---------------------------------------------------------------------*/
405 public ref class ProtocolInfo : public ManagedWrapper<PLT_ProtocolInfo>
406 {
407 public:
408 
409  // properties
410 
411 public:
412  static ProtocolInfo^ GetProtocolInfo(String^ filename)
413  {
414  return GetProtocolInfo(filename, true, nullptr);
415  }
416 
417  static ProtocolInfo^ GetProtocolInfo(String^ filename,
418  bool with_dlna_extension)
419  {
420  return GetProtocolInfo(filename, with_dlna_extension, nullptr);
421  }
422 
423  static ProtocolInfo^ GetProtocolInfo(String^ filename,
424  bool with_dlna_extension,
425  HttpRequestContext^ context);
426 
427  static ProtocolInfo^ GetProtocolInfoFromMimeType(String^ mime_type)
428  {
429  return GetProtocolInfoFromMimeType(mime_type, true, nullptr);
430  }
431 
432  static ProtocolInfo^ GetProtocolInfoFromMimeType(String^ mime_type,
433  bool with_dlna_extension)
434  {
435  return GetProtocolInfoFromMimeType(mime_type, with_dlna_extension, nullptr);
436  }
437 
438  static ProtocolInfo^ GetProtocolInfoFromMimeType(String^ mime_type,
439  bool with_dlna_extension,
440  HttpRequestContext^ context);
441 
442 internal:
443 
444  ProtocolInfo(PLT_ProtocolInfo& native) :
446  {}
447 
448 public:
449 
450  ProtocolInfo(NPT_String& protocol_info) :
452  {
453  *m_pHandle = PLT_ProtocolInfo(protocol_info);
454  }
455 };
456 
457 }
458 
459 // marshal wrapper
460 PLATINUM_MANAGED_MARSHAL_AS(Platinum::ProtocolInfo, PLT_ProtocolInfo);
461 PLATINUM_MANAGED_MARSHAL_AS(Platinum::ProtocolInfo, NPT_String);
462 
463 namespace Platinum
464 {
465 
466 /*----------------------------------------------------------------------
467 | MediaResource
468 +---------------------------------------------------------------------*/
469 public ref class MediaResource : public ManagedWrapper<PLT_MediaItemResource>
470 {
471 public:
472 
473  // properties
474 
475  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, URI, m_Uri, m_pHandle);
476  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(ProtocolInfo^, ProtoInfo, m_ProtocolInfo, m_pHandle);
477  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, Duration, m_Duration, m_pHandle);
478  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt64, Size, m_Size, m_pHandle);
479  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Protection, m_Protection, m_pHandle);
480  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, Bitrate, m_Bitrate, m_pHandle);
481  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, BitsPerSample, m_BitsPerSample, m_pHandle);
482  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, SampleFrequency, m_SampleFrequency, m_pHandle);
483  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, NbAudioChannels, m_NbAudioChannels, m_pHandle);
484  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Resolution, m_Resolution, m_pHandle);
485  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, ColorDepth, m_ColorDepth, m_pHandle);
486 
487 internal:
488 
491  {}
492 
493 public:
494  MediaResource() :
496  {}
497 };
498 
499 }
500 
501 // marshal wrapper
502 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MediaResource, PLT_MediaItemResource);
503 
504 namespace Platinum
505 {
506 ref class MediaItem;
507 ref class MediaContainer;
508 
509 /*----------------------------------------------------------------------
510 | MediaObject
511 +---------------------------------------------------------------------*/
512 public ref class MediaObject
513 {
514 protected:
515 
516  PLT_MediaObjectReference* m_pHandle;
517 
518 public:
519 
520  // properties
521 
522  /* common properties */
523  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(ObjectClass^, Class, m_ObjectClass, (*m_pHandle));
524  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, ObjectID, m_ObjectID, (*m_pHandle));
525  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, ParentID, m_ParentID, (*m_pHandle));
526  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, ReferenceID, m_ReferenceID, (*m_pHandle));
527 
528  /* metadata */
529  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Title, m_Title, (*m_pHandle));
530  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Creator, m_Creator, (*m_pHandle));
531  PLATINUM_MANAGED_IMPLEMENT_STRING_PROPERTY(String^, Date, m_Date, (*m_pHandle));
532  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(PeopleInfo^, People, m_People, (*m_pHandle));
533  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(AffiliationInfo^, Affiliation, m_Affiliation, (*m_pHandle));
534  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(DescriptionInfo^, Description, m_Description, (*m_pHandle));
535  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(RecordedInfo^, Recorded, m_Recorded, (*m_pHandle));
536 
537  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(bool, Restricted, m_Restricted, (*m_pHandle));
538 
539  /* extras */
540  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(ExtraInfo^, Extra, m_ExtraInfo, (*m_pHandle));
541 
542  /* miscellaneous info */
543  PLATINUM_MANAGED_IMPLEMENT_OBJECT_PROPERTY(MiscInfo^, Miscellaneous, m_MiscInfo, (*m_pHandle));
544 
545  property IEnumerable<MediaResource^>^ Resources
546  {
547  IEnumerable<MediaResource^>^ get();
548  }
549 
550 public:
551 
552  void AddResource(MediaResource^ resource)
553  {
554  (*m_pHandle)->m_Resources.Add(resource->Handle);
555  }
556 
557 internal:
558 
559  property PLT_MediaObjectReference& Handle
560  {
562  {
563  return *m_pHandle;
564  }
565  }
566 
567 public:
568 
569  MediaItem^ item();
570  MediaContainer^ container();
571 
572  String^ ToDidl(String^ filter)
573  {
574  NPT_String didl;
575  didl.Reserve(1024);
576 
577  marshal_context c;
578  NPT_String _filter(c.marshal_as<const char*>(filter));
579 
580  (*m_pHandle)->ToDidl(_filter, didl);
581 
582  return marshal_as<String^>(didl.GetChars());
583  }
584 
585 public:
586 
587  virtual Boolean Equals(Object^ obj) override
588  {
589  if (obj == nullptr)
590  return false;
591 
592  if (!this->GetType()->IsInstanceOfType(obj))
593  return false;
594 
595  return (*m_pHandle == *((MediaObject^)obj)->m_pHandle);
596  }
597 
598 internal:
599 
601  {
602  if (media.IsNull())
603  throw gcnew ArgumentNullException("media");
604 
605  m_pHandle = new PLT_MediaObjectReference(media);
606  }
607 
609  {
610  m_pHandle = new PLT_MediaObjectReference(&media);
611  }
612 
613 protected:
614 
616  {
617  if (media == NULL)
618  throw gcnew ArgumentNullException("media");
619 
620  m_pHandle = new PLT_MediaObjectReference(media);
621  }
622 
623 public:
624 
625  ~MediaObject()
626  {
627  // clean-up managed
628 
629  // clean-up unmanaged
630  this->!MediaObject();
631  }
632 
633  !MediaObject()
634  {
635  // clean-up unmanaged
636  if (m_pHandle != 0)
637  {
638  delete m_pHandle;
639 
640  m_pHandle = 0;
641  }
642  }
643 
644 };
645 
646 /*----------------------------------------------------------------------
647 | MediaItem
648 +---------------------------------------------------------------------*/
649 public ref class MediaItem : public MediaObject
650 {
651 internal:
652 
653  MediaItem(PLT_MediaItem& media) : MediaObject(media)
654  {}
655 
656 public:
657 
659  {}
660 
662  {
663  if (media->IsContainer())
664  throw gcnew ArgumentException("object");
665  }
666 
667  MediaItem(MediaObject^ media) : MediaObject(*media->Handle)
668  {
669  if (media->Handle->IsContainer())
670  throw gcnew ArgumentException("object");
671  }
672 
673  ~MediaItem()
674  {
675  this->!MediaItem();
676  }
677 
678  !MediaItem()
679  {}
680 };
681 
682 /*----------------------------------------------------------------------
683 | MediaContainer
684 +---------------------------------------------------------------------*/
685 public ref class MediaContainer : public MediaObject
686 {
687 public:
688 
689  // properties
690  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(bool, Searchable, m_Searchable, ((PLT_MediaContainer*)m_pHandle->AsPointer()));
691  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(Int32, ChildrenCount, m_ChildrenCount, ((PLT_MediaContainer*)m_pHandle->AsPointer()));
692  PLATINUM_MANAGED_IMPLEMENT_PROPERTY(UInt32, ContainerUpdateID, m_ContainerUpdateID, ((PLT_MediaContainer*)m_pHandle->AsPointer()));
693 
694 internal:
695 
697  MediaObject(media)
698  {}
699 
700 public:
701  MediaContainer() :
703  {}
704 
706  MediaObject(media)
707  {
708  if (!media->IsContainer())
709  throw gcnew ArgumentException("object");
710  }
711 
712  MediaContainer(MediaObject^ media) :
713  MediaObject(*media->Handle)
714  {
715  if (!media->Handle->IsContainer())
716  throw gcnew ArgumentException("object");
717  }
718 
719  ~MediaContainer()
720  {
721  this->!MediaContainer();
722  }
723 
724  !MediaContainer()
725  {}
726 };
727 
728 }
729 
730 // marshal wrapper
731 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MediaObject, PLT_MediaObject);
732 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MediaObject, PLT_MediaObjectReference);
733 
734 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MediaItem, PLT_MediaItem);
735 PLATINUM_MANAGED_MARSHAL_AS(Platinum::MediaContainer, PLT_MediaContainer);
Definition: MediaObject.h:405
Definition: MediaObject.h:649
Definition: MediaObject.h:47
The PLT_ProtocolInfo class holds information about the protocol info of a given UPnP Media Item resou...
Definition: PltProtocolInfo.h:68
The PLT_MediaItem class represents a first-level class derived directly from PLT_MediaObject.
Definition: PltMediaItem.h:282
Definition: PltMediaItem.h:99
Definition: MediaObject.h:469
Definition: MediaObject.h:188
Definition: MediaObject.h:227
Definition: PltMediaItem.h:89
UPnP AV Media Object reprensentation.
Definition: PltMediaItem.h:146
Definition: PltMediaItem.h:128
Definition: Http.h:197
Definition: MediaObject.h:512
Definition: MediaObject.h:259
Definition: MediaObject.h:326
Definition: PltMediaItem.h:121
The PLT_MediaContainer class represents a first-level class derived directly from PLT_MediaObject...
Definition: PltMediaItem.h:304
Definition: MediaObject.h:376
Definition: PltMediaItem.h:187
Definition: MediaObject.h:685
Definition: Helpers.h:202
Definition: MediaObject.h:126
The PLT_ObjectClass struct is used to assign a type to a PLT_MediaObject.
Definition: PltMediaItem.h:55
Definition: Helpers.h:274
The PLT_MediaObject class is any data entity that can be returned by a ContentDirectory Service from ...
Definition: PltMediaItem.h:217
Definition: PltMediaItem.h:66
Definition: MediaObject.h:287
Definition: NptReferences.h:45
bool IsNull() const
Returns whether this references a NULL object.
Definition: NptReferences.h:130
Definition: NptStrings.h:57
Definition: PltMediaItem.h:105
Definition: MediaObject.h:87
Definition: PltMediaItem.h:116