// (c) 2006 Seb Ruiz // See COPYING file for licensing information #ifndef AMAROK_PODCASTBUNDLE_H #define AMAROK_PODCASTBUNDLE_H #include "podcastsettings.h" #include #include #include class PodcastChannelBundle { public: PodcastChannelBundle() : m_parentId( -1 ) , m_autoscan( false ) , m_fetchType( -1 ) , m_autotransfer( false ) , m_purge( false ) , m_purgeCount( -1 ) { } PodcastChannelBundle( const KURL &url, const TQString &title, const TQString &author, const KURL &link, const TQString &desc, const TQString ©, PodcastSettings *settings ) { m_url = url; m_title = title; m_author = author; m_link = link; m_description = desc; m_copyright = copy; m_parentId = -1; setSettings( settings ); } void setSettings( PodcastSettings *settings ) { m_saveLocation = settings->saveLocation(); m_autoscan = settings->autoscan(); m_fetchType = settings->fetchType(); m_autotransfer = settings->autoTransfer(); m_purge = settings->hasPurge(); m_purgeCount = settings->purgeCount(); } PodcastSettings * getSettings() { return new PodcastSettings( m_title, m_saveLocation, m_autoscan, m_fetchType, m_autotransfer, m_purge, m_purgeCount ); } /// Return the url of the podcast feed const KURL &url() const; /// The title of the Podcast channel const TQString &title() const; /// The author of the Podcast channel const TQString &author() const; /// A url to the webpage of the podcast const KURL &link() const; /// A url to the image of the podcast const KURL &imageURL() const; const TQString &description() const; const TQString ©right() const; /// The id which the parent folder has in the database int parentId() const; void setURL( const KURL &u ); void setTitle( const TQString &t ); void setAuthor( const TQString &a ); void setLink( const KURL &l ); void setImageURL( const KURL &i ); void setDescription( const TQString &d ); void setCopyright( const TQString &c ); void setParentId( const int p ); void setSaveLocation( const TQString &s ); void setAutoScan( const bool b ); void setFetchType( const int i ); void setAutoTransfer( const bool b ); void setPurge( const bool b ); void setPurgeCount( const int i ); //settings const TQString& saveLocation() const; bool autoscan() const; int fetchType() const; bool autotransfer() const; bool hasPurge() const; int purgeCount() const; private: KURL m_url; TQString m_title; TQString m_author; KURL m_link; KURL m_imageUrl; TQString m_description; TQString m_copyright; int m_parentId; TQString m_saveLocation; bool m_autoscan; int m_fetchType; bool m_autotransfer; bool m_purge; int m_purgeCount; }; inline const KURL &PodcastChannelBundle::url() const { return m_url; } inline const TQString &PodcastChannelBundle::title() const { return m_title; } inline const TQString &PodcastChannelBundle::author() const { return m_author; } inline const KURL &PodcastChannelBundle::link() const { return m_link; } inline const KURL &PodcastChannelBundle::imageURL() const { return m_imageUrl; } inline const TQString &PodcastChannelBundle::description() const { return m_description; } inline const TQString &PodcastChannelBundle::copyright() const { return m_copyright; } inline int PodcastChannelBundle::parentId() const { return m_parentId; } inline void PodcastChannelBundle::setURL ( const KURL &u ) { m_url = u; } inline void PodcastChannelBundle::setTitle ( const TQString &t ) { m_title = t; } inline void PodcastChannelBundle::setAuthor ( const TQString &a ) { m_author = a; } inline void PodcastChannelBundle::setLink ( const KURL &l ) { m_link = l; } inline void PodcastChannelBundle::setImageURL ( const KURL &i ) { m_imageUrl = i; } inline void PodcastChannelBundle::setDescription ( const TQString &d ) { m_description = d; } inline void PodcastChannelBundle::setCopyright ( const TQString &c ) { m_copyright = c; } inline void PodcastChannelBundle::setParentId ( const int p ) { m_parentId = p; } inline void PodcastChannelBundle::setSaveLocation( const TQString &s ) { m_saveLocation = s; } inline void PodcastChannelBundle::setAutoScan( const bool b ) { m_autoscan = b; } inline void PodcastChannelBundle::setFetchType( const int i ) { m_fetchType = i; } inline void PodcastChannelBundle::setAutoTransfer( const bool b ) { m_autotransfer = b; } inline void PodcastChannelBundle::setPurge( const bool b ) { m_purge = b; } inline void PodcastChannelBundle::setPurgeCount( const int i ) { m_purgeCount = i; } inline const TQString &PodcastChannelBundle::saveLocation() const { return m_saveLocation; } inline bool PodcastChannelBundle::autoscan() const { return m_autoscan; } inline int PodcastChannelBundle::fetchType() const { return m_fetchType; } inline bool PodcastChannelBundle::autotransfer() const { return m_autotransfer; } inline bool PodcastChannelBundle::hasPurge() const { return m_purge; } inline int PodcastChannelBundle::purgeCount() const { return m_purgeCount; } class PodcastEpisodeBundle { public: PodcastEpisodeBundle() : m_id( 0 ) , m_duration( 0 ) , m_size( 0 ) , m_isNew( false ) { } PodcastEpisodeBundle( const KURL &url, const KURL &parent, const TQString &title, const TQString &author, const TQString &desc, const TQString &date, const TQString &type, const int duration, const TQString &guid, const bool isNew ) : m_id( 0 ) , m_size( 0 ) { m_url = url; m_parent = parent; m_author = author; m_title = title; m_description = desc; m_type = type; m_date = date; m_duration = duration < 0 ? 0 : duration; m_guid = guid; m_isNew = isNew; if( !date.isEmpty() ) m_dateTime.setTime_t( KRFCDate::parseDate( date ) ); } /// The row id which this podcast episode has in the database int dBId() const; /// The remote url to the podcast episode const KURL &url() const; /// The local url of the podcast episode (if it has been downloaded, an invalid url otherwise) const KURL &localUrl() const; /// The url of the podcast channel const KURL &parent() const; const TQString &author() const; const TQString &title() const; const TQString &subtitle() const; const TQString &description() const; const TQString &date() const; TQDateTime dateTime() const; /// File type of the podcast episode, eg ogg, mp3 etc const TQString &type() const; int duration() const; // duration in seconds uint size() const; // file/stream size in bytes /// unique identifier that should be available in the feed (RSS 2.0: guid ATOM: id) const TQString &guid() const; /// Has this particular podcast episode been listened to? bool isNew() const; void setDBId( const int i ); void setURL( const KURL &u ); void setLocalURL( const KURL &u ); void setParent( const KURL &u ); void setAuthor( const TQString &a ); void setTitle( const TQString &t ); void setSubtitle( const TQString &s ); void setDescription( const TQString &d ); void setDate( const TQString &d ); void setType( const TQString &t ); void setDuration( const int i ); void setSize( const uint i ); void setGuid( const TQString &g ); void setNew( const bool &b ); void detach(); // for being able to apply TQDeepCopy<> private: int m_id; KURL m_url; KURL m_localUrl; KURL m_parent; TQString m_author; TQString m_title; TQString m_subtitle; TQString m_description; TQString m_date; TQDateTime m_dateTime; TQString m_type; int m_duration; uint m_size; TQString m_guid; bool m_isNew; }; inline int PodcastEpisodeBundle::dBId() const { return m_id; } inline const KURL &PodcastEpisodeBundle::url() const { return m_url; } inline const KURL &PodcastEpisodeBundle::localUrl() const { return m_localUrl; } inline const KURL &PodcastEpisodeBundle::parent() const { return m_parent; } inline const TQString &PodcastEpisodeBundle::author() const { return m_author; } inline const TQString &PodcastEpisodeBundle::title() const { return m_title; } inline const TQString &PodcastEpisodeBundle::subtitle() const { return m_subtitle; } inline const TQString &PodcastEpisodeBundle::description() const { return m_description; } inline const TQString &PodcastEpisodeBundle::date() const { return m_date; } inline TQDateTime PodcastEpisodeBundle::dateTime() const { return m_dateTime; } inline const TQString &PodcastEpisodeBundle::type() const { return m_type; } inline int PodcastEpisodeBundle::duration() const { return m_duration; } inline uint PodcastEpisodeBundle::size() const { return m_size; } inline const TQString &PodcastEpisodeBundle::guid() const { return m_guid; } inline bool PodcastEpisodeBundle::isNew() const { return m_isNew; } inline void PodcastEpisodeBundle::setDBId( const int i ) { m_id = i; } inline void PodcastEpisodeBundle::setURL( const KURL &u ) { m_url = u; } inline void PodcastEpisodeBundle::setLocalURL( const KURL &u ) { m_localUrl = u; } inline void PodcastEpisodeBundle::setParent( const KURL &u ) { m_parent = u; } inline void PodcastEpisodeBundle::setAuthor( const TQString &a ) { m_author = a; } inline void PodcastEpisodeBundle::setTitle( const TQString &t ) { m_title = t; } inline void PodcastEpisodeBundle::setSubtitle( const TQString &t ) { m_subtitle = t; } inline void PodcastEpisodeBundle::setDescription( const TQString &d ) { m_description = d; } inline void PodcastEpisodeBundle::setDate( const TQString &d ) { m_date = d; if( !d.isEmpty() ) m_dateTime.setTime_t( KRFCDate::parseDate( d ) );} inline void PodcastEpisodeBundle::setType( const TQString &t ) { m_type = t; } inline void PodcastEpisodeBundle::setDuration( const int i ) { m_duration = i; } inline void PodcastEpisodeBundle::setSize( const uint i ) { m_size = i; } inline void PodcastEpisodeBundle::setGuid( const TQString &g ) { m_guid = g; } inline void PodcastEpisodeBundle::setNew( const bool &b ) { m_isNew = b; } #endif /* AMAROK_PODCASTBUNDLE_H */