qtmobility/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    42 #include "s60mediametadataprovider.h"
    42 #include "s60mediametadataprovider.h"
    43 #include "s60mediaplayersession.h"
    43 #include "s60mediaplayersession.h"
    44 #include <QtCore/qdebug.h>
    44 #include <QtCore/qdebug.h>
    45 
    45 
    46 S60MediaMetaDataProvider::S60MediaMetaDataProvider(MS60MediaPlayerResolver& mediaPlayerResolver, QObject *parent)
    46 S60MediaMetaDataProvider::S60MediaMetaDataProvider(MS60MediaPlayerResolver& mediaPlayerResolver, QObject *parent)
    47     : QMetaDataControl(parent)
    47     : QMetaDataReaderControl(parent)
    48     , m_mediaPlayerResolver(mediaPlayerResolver)
    48     , m_mediaPlayerResolver(mediaPlayerResolver)
    49     , m_session(NULL)
    49     , m_session(NULL)
    50 {
    50 {
    51 }
    51 }
    52 
    52 
    65 bool S60MediaMetaDataProvider::isWritable() const
    65 bool S60MediaMetaDataProvider::isWritable() const
    66 {
    66 {
    67     return false;
    67     return false;
    68 }
    68 }
    69 
    69 
    70 QVariant S60MediaMetaDataProvider::metaData(QtMediaServices::MetaData key) const
    70 QVariant S60MediaMetaDataProvider::metaData(QtMultimedia::MetaData key) const
    71 {
    71 {
    72     m_session = m_mediaPlayerResolver.PlayerSession();
    72     m_session = m_mediaPlayerResolver.PlayerSession();
    73     if (m_session && m_session->isMetadataAvailable())
    73     if (m_session && m_session->isMetadataAvailable())
    74         return m_session->metaData(metaDataKeyAsString(key));
    74         return m_session->metaData(metaDataKeyAsString(key));
    75     return QVariant();
    75     return QVariant();
    76 }
    76 }
    77 
    77 
    78 void S60MediaMetaDataProvider::setMetaData(QtMediaServices::MetaData key, QVariant const &value)
    78 QList<QtMultimedia::MetaData> S60MediaMetaDataProvider::availableMetaData() const
    79 {
       
    80     Q_UNUSED(key);
       
    81     Q_UNUSED(value);
       
    82 }
       
    83 QList<QtMediaServices::MetaData> S60MediaMetaDataProvider::availableMetaData() const
       
    84 {
    79 {
    85     m_session = m_mediaPlayerResolver.PlayerSession();
    80     m_session = m_mediaPlayerResolver.PlayerSession();
    86     QList<QtMediaServices::MetaData> metaDataTags;
    81     QList<QtMultimedia::MetaData> metaDataTags;
    87     if (m_session && m_session->isMetadataAvailable()) {
    82     if (m_session && m_session->isMetadataAvailable()) {
    88         for (int i = QtMediaServices::Title; i <= QtMediaServices::DeviceSettingDescription; i++) {
    83         for (int i = QtMultimedia::Title; i <= QtMultimedia::DeviceSettingDescription; i++) {
    89             QString metaData = metaDataKeyAsString((QtMediaServices::MetaData)i);
    84             QString metaData = metaDataKeyAsString((QtMultimedia::MetaData)i);
    90             if (!metaData.isEmpty()) {
    85             if (!metaData.isEmpty()) {
    91                 if (!m_session->metaData(metaData).toString().isEmpty()) {
    86                 if (!m_session->metaData(metaData).toString().isEmpty()) {
    92                     metaDataTags.append((QtMediaServices::MetaData)i);               
    87                     metaDataTags.append((QtMultimedia::MetaData)i);
    93                 }
    88                 }
    94             }
    89             }
    95         }
    90         }
    96     }
    91     }
    97     return metaDataTags;
    92     return metaDataTags;
   103     if (m_session && m_session->isMetadataAvailable())
    98     if (m_session && m_session->isMetadataAvailable())
   104         return m_session->metaData(key);
    99         return m_session->metaData(key);
   105     return QVariant();
   100     return QVariant();
   106 }
   101 }
   107 
   102 
   108 void S60MediaMetaDataProvider::setExtendedMetaData(const QString &key, QVariant const &value)
       
   109 {
       
   110     Q_UNUSED(key);
       
   111     Q_UNUSED(value);
       
   112 }
       
   113 
       
   114 QStringList S60MediaMetaDataProvider::availableExtendedMetaData() const
   103 QStringList S60MediaMetaDataProvider::availableExtendedMetaData() const
   115 {
   104 {
   116     m_session = m_mediaPlayerResolver.PlayerSession();
   105     m_session = m_mediaPlayerResolver.PlayerSession();
   117     if (m_session && m_session->isMetadataAvailable())
   106     if (m_session && m_session->isMetadataAvailable())
   118         return m_session->availableMetaData().keys();
   107         return m_session->availableMetaData().keys();
   119     return QStringList();
   108     return QStringList();
   120 }
   109 }
   121 
   110 
   122 QString S60MediaMetaDataProvider::metaDataKeyAsString(QtMediaServices::MetaData key) const
   111 QString S60MediaMetaDataProvider::metaDataKeyAsString(QtMultimedia::MetaData key) const
   123 {
   112 {
   124     switch(key) {
   113     switch(key) {
   125         case QtMediaServices::Title: return "title";
   114         case QtMultimedia::Title: return "title";
   126         case QtMediaServices::AlbumArtist: return "artist";
   115         case QtMultimedia::AlbumArtist: return "artist";
   127         case QtMediaServices::Comment: return "comment";
   116         case QtMultimedia::Comment: return "comment";
   128         case QtMediaServices::Genre: return "genre";
   117         case QtMultimedia::Genre: return "genre";
   129         case QtMediaServices::Year: return "year";
   118         case QtMultimedia::Year: return "year";
   130         case QtMediaServices::Copyright: return "copyright";
   119         case QtMultimedia::Copyright: return "copyright";
   131         case QtMediaServices::AlbumTitle: return "album";
   120         case QtMultimedia::AlbumTitle: return "album";
   132         case QtMediaServices::Composer: return "composer";
   121         case QtMultimedia::Composer: return "composer";
   133         case QtMediaServices::TrackNumber: return "albumtrack";
   122         case QtMultimedia::TrackNumber: return "albumtrack";
   134         case QtMediaServices::AudioBitRate: return "audiobitrate";
   123         case QtMultimedia::AudioBitRate: return "audiobitrate";
   135         case QtMediaServices::VideoBitRate: return "videobitrate";
   124         case QtMultimedia::VideoBitRate: return "videobitrate";
   136         case QtMediaServices::Duration: return "duration";
   125         case QtMultimedia::Duration: return "duration";
   137         case QtMediaServices::MediaType: return "contenttype";
   126         case QtMultimedia::MediaType: return "contenttype";
   138         case QtMediaServices::SubTitle: // TODO: Find the matching metadata keys
   127         case QtMultimedia::CoverArtImage: return "attachedpicture";
   139         case QtMediaServices::Description:
   128         case QtMultimedia::SubTitle: // TODO: Find the matching metadata keys
   140         case QtMediaServices::Category:
   129         case QtMultimedia::Description:
   141         case QtMediaServices::Date:
   130         case QtMultimedia::Category:
   142         case QtMediaServices::UserRating:
   131         case QtMultimedia::Date:
   143         case QtMediaServices::Keywords:
   132         case QtMultimedia::UserRating:
   144         case QtMediaServices::Language:
   133         case QtMultimedia::Keywords:
   145         case QtMediaServices::Publisher:
   134         case QtMultimedia::Language:
   146         case QtMediaServices::ParentalRating:
   135         case QtMultimedia::Publisher:
   147         case QtMediaServices::RatingOrganisation:
   136         case QtMultimedia::ParentalRating:
   148         case QtMediaServices::Size:
   137         case QtMultimedia::RatingOrganisation:
   149         case QtMediaServices::AudioCodec:
   138         case QtMultimedia::Size:
   150         case QtMediaServices::AverageLevel:
   139         case QtMultimedia::AudioCodec:
   151         case QtMediaServices::ChannelCount:
   140         case QtMultimedia::AverageLevel:
   152         case QtMediaServices::PeakValue:
   141         case QtMultimedia::ChannelCount:
   153         case QtMediaServices::SampleRate:
   142         case QtMultimedia::PeakValue:
   154         case QtMediaServices::Author:
   143         case QtMultimedia::SampleRate:
   155         case QtMediaServices::ContributingArtist:
   144         case QtMultimedia::Author:
   156         case QtMediaServices::Conductor:
   145         case QtMultimedia::ContributingArtist:
   157         case QtMediaServices::Lyrics:
   146         case QtMultimedia::Conductor:
   158         case QtMediaServices::Mood:
   147         case QtMultimedia::Lyrics:
   159         case QtMediaServices::TrackCount:
   148         case QtMultimedia::Mood:
   160         case QtMediaServices::CoverArtUrlSmall:
   149         case QtMultimedia::TrackCount:
   161         case QtMediaServices::CoverArtUrlLarge:
   150         case QtMultimedia::CoverArtUrlSmall:
   162         case QtMediaServices::Resolution:
   151         case QtMultimedia::CoverArtUrlLarge:
   163         case QtMediaServices::PixelAspectRatio:
   152         case QtMultimedia::Resolution:
   164         case QtMediaServices::VideoFrameRate:
   153         case QtMultimedia::PixelAspectRatio:
   165         case QtMediaServices::VideoCodec:
   154         case QtMultimedia::VideoFrameRate:
   166         case QtMediaServices::PosterUrl:
   155         case QtMultimedia::VideoCodec:
   167         case QtMediaServices::ChapterNumber:
   156         case QtMultimedia::PosterUrl:
   168         case QtMediaServices::Director:
   157         case QtMultimedia::ChapterNumber:
   169         case QtMediaServices::LeadPerformer:
   158         case QtMultimedia::Director:
   170         case QtMediaServices::Writer:
   159         case QtMultimedia::LeadPerformer:
   171         case QtMediaServices::CameraManufacturer:
   160         case QtMultimedia::Writer:
   172         case QtMediaServices::CameraModel:
   161         case QtMultimedia::CameraManufacturer:
   173         case QtMediaServices::Event:
   162         case QtMultimedia::CameraModel:
   174         case QtMediaServices::Subject:
   163         case QtMultimedia::Event:
       
   164         case QtMultimedia::Subject:
   175         default:
   165         default:
   176             break;
   166             break;
   177     }
   167     }
   178 
   168 
   179     return QString();
   169     return QString();