qtmobility/src/multimedia/qaudiocapturesource.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    85     void initControls()
    85     void initControls()
    86     {
    86     {
    87         Q_Q(QAudioCaptureSource);
    87         Q_Q(QAudioCaptureSource);
    88 
    88 
    89         if (service != 0)
    89         if (service != 0)
    90             audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(service->control(QAudioEndpointSelector_iid));
    90             audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(service->requestControl(QAudioEndpointSelector_iid));
    91 
    91 
    92         if (audioEndpointSelector) {
    92         if (audioEndpointSelector) {
    93             q->connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)),
    93             q->connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)),
    94                        SIGNAL(activeAudioInputChanged(const QString&)));
    94                        SIGNAL(activeAudioInputChanged(const QString&)));
    95             q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()),
    95             q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()),
    96                        SIGNAL(availableAudioInputsChanged()));
    96                        SIGNAL(availableAudioInputsChanged()));
    97             q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()),
    97             q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()),
    98                        SLOT(statusChanged()));
    98                        SLOT(statusChanged()));
    99             errorState = QtMediaServices::NoError;
    99             errorState = QtMultimedia::NoError;
   100         }
   100         }
   101     }
   101     }
   102 
   102 
   103     QAudioCaptureSourcePrivate():provider(0), audioEndpointSelector(0), errorState(QtMediaServices::ServiceMissingError) {}
   103     QAudioCaptureSourcePrivate():provider(0), audioEndpointSelector(0), errorState(QtMultimedia::ServiceMissingError) {}
   104     QMediaServiceProvider *provider;
   104     QMediaServiceProvider *provider;
   105     QAudioEndpointSelector   *audioEndpointSelector;
   105     QAudioEndpointSelector   *audioEndpointSelector;
   106     QtMediaServices::AvailabilityError errorState;
   106     QtMultimedia::AvailabilityError errorState;
   107 };
   107 };
   108 
   108 
   109 /*!
   109 /*!
   110     Construct a QAudioCaptureSource using the QMediaService from \a provider, with \a parent.
   110     Construct a QAudioCaptureSource using the QMediaService from \a provider, with \a parent.
   111 */
   111 */
   118     d->provider = provider;
   118     d->provider = provider;
   119     d->initControls();
   119     d->initControls();
   120 }
   120 }
   121 
   121 
   122 /*!
   122 /*!
   123     Construct a QAudioCaptureSource using the QMediaObject \a mediaObject, with \a parent.
   123     Destroys the audiocapturesource object.
   124 */
   124 */
   125 
   125 
   126 QAudioCaptureSource::QAudioCaptureSource(QMediaObject *mediaObject, QObject *parent)
   126 QAudioCaptureSource::~QAudioCaptureSource()
   127     :QMediaObject(*new QAudioCaptureSourcePrivate, parent, mediaObject->service())
       
   128 {
   127 {
   129     Q_D(QAudioCaptureSource);
   128     Q_D(QAudioCaptureSource);
   130 
   129 
   131     d->provider = 0;
   130     if (d->service && d->audioEndpointSelector)
   132     d->initControls();
   131         d->service->releaseControl(d->audioEndpointSelector);
   133 }
       
   134 
       
   135 /*!
       
   136     Destroys the audiocapturesource object.
       
   137 */
       
   138 
       
   139 QAudioCaptureSource::~QAudioCaptureSource()
       
   140 {
       
   141     Q_D(QAudioCaptureSource);
       
   142 
   132 
   143     if (d->provider)
   133     if (d->provider)
   144         d->provider->releaseService(d->service);
   134         d->provider->releaseService(d->service);
   145 }
   135 }
   146 
   136 
   147 /*!
   137 /*!
   148     Returns the error state of the audio capture service.
   138     Returns the error state of the audio capture service.
   149 */
   139 */
   150 
   140 
   151 QtMediaServices::AvailabilityError QAudioCaptureSource::availabilityError() const
   141 QtMultimedia::AvailabilityError QAudioCaptureSource::availabilityError() const
   152 {
   142 {
   153     Q_D(const QAudioCaptureSource);
   143     Q_D(const QAudioCaptureSource);
   154 
   144 
   155     return d->errorState;
   145     return d->errorState;
   156 }
   146 }
   258 {
   248 {
   259     Q_D(QAudioCaptureSource);
   249     Q_D(QAudioCaptureSource);
   260 
   250 
   261     if (d->audioEndpointSelector) {
   251     if (d->audioEndpointSelector) {
   262         if (d->audioEndpointSelector->availableEndpoints().size() > 0) {
   252         if (d->audioEndpointSelector->availableEndpoints().size() > 0) {
   263             d->errorState = QtMediaServices::NoError;
   253             d->errorState = QtMultimedia::NoError;
   264             emit availabilityChanged(true);
   254             emit availabilityChanged(true);
   265         } else {
   255         } else {
   266             d->errorState = QtMediaServices::BusyError;
   256             d->errorState = QtMultimedia::BusyError;
   267             emit availabilityChanged(false);
   257             emit availabilityChanged(false);
   268         }
   258         }
   269     } else {
   259     } else {
   270         d->errorState = QtMediaServices::ServiceMissingError;
   260         d->errorState = QtMultimedia::ServiceMissingError;
   271         emit availabilityChanged(false);
   261         emit availabilityChanged(false);
   272     }
   262     }
   273 }
   263 }
   274 
   264 
   275 #include "moc_qaudiocapturesource.cpp"
   265 #include "moc_qaudiocapturesource.cpp"