16 #ifndef AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H    17 #define AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H    22 #include "AACE/Core/PlatformInterface.h"    23 #include "AACE/Audio/AudioOutput.h"    25 #include "AlexaEngineInterfaces.h"    34     using DiscoveredPlayerInfo = ExternalMediaAdapterEngineInterface::DiscoveredPlayerInfo;
    40     enum class PlayControlType {
   111     enum class SupportedPlaybackOperation {
   185     enum class Favorites {
   203     enum class MediaType {
   233     enum class Navigation {
   409         std::string playerId;
   413     ExternalMediaAdapter() = 
default;
   416     virtual ~ExternalMediaAdapter();
   435         const std::string& localPlayerId,
   436         const std::string& accessToken,
   437         const std::string& userName,
   439         std::chrono::milliseconds tokenRefreshInterval) = 0;
   449     virtual bool logout(
const std::string& localPlayerId) = 0;
   470         const std::string& localPlayerId,
   471         const std::string& playContextToken,
   473         std::chrono::milliseconds offset,
   475         Navigation navigation) = 0;
   481         const std::string& localPlayerId,
   482         const std::string& playContextToken,
   484         std::chrono::milliseconds offset,
   486         Navigation navigation,
   487         const std::string& playbackSessionId,
   488         const std::string& skillToken);
   502     virtual bool playControl(
const std::string& localPlayerId, PlayControlType controlType) = 0;
   514     virtual bool seek(
const std::string& localPlayerId, std::chrono::milliseconds offset) = 0;
   526     virtual bool adjustSeek(
const std::string& localPlayerId, std::chrono::milliseconds deltaOffset) = 0;
   542     virtual bool authorize(
const std::vector<AuthorizedPlayerInfo>& authorizedPlayers) = 0;
   549     virtual std::chrono::milliseconds getOffset(
const std::string& localPlayerId);
   571     virtual bool volumeChanged(
float volume) = 0;
   582     virtual bool mutedStateChanged(
MutedState state) = 0;
   591     void reportDiscoveredPlayers(
const std::vector<DiscoveredPlayerInfo>& discoveredPlayers);
   598     void requestToken(
const std::string& localPlayerId);
   605     void loginComplete(
const std::string& localPlayerId);
   612     void logoutComplete(
const std::string& localPlayerId);
   621     void playerEvent(
const std::string& localPlayerId, 
const std::string& eventName);
   637         const std::string& localPlayerId,
   638         const std::string& errorName,
   640         const std::string& description,
   648     void setFocus(
const std::string& localPlayerId);
   650     void removeDiscoveredPlayer(
const std::string& localPlayerId);
   658     void setEngineInterface(
   659         std::shared_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> externalMediaAdapterEngineInterface);
   662     std::weak_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> m_externalMediaAdapterEngineInterface;
   665 inline std::ostream& operator<<(std::ostream& stream, 
const ExternalMediaAdapter::PlayControlType& requestType) {
   666     switch (requestType) {
   667         case ExternalMediaAdapter::PlayControlType::RESUME:
   670         case ExternalMediaAdapter::PlayControlType::PAUSE:
   673         case ExternalMediaAdapter::PlayControlType::STOP:
   676         case ExternalMediaAdapter::PlayControlType::NEXT:
   679         case ExternalMediaAdapter::PlayControlType::PREVIOUS:
   680             stream << 
"PREVIOUS";
   682         case ExternalMediaAdapter::PlayControlType::START_OVER:
   683             stream << 
"START_OVER";
   685         case ExternalMediaAdapter::PlayControlType::FAST_FORWARD:
   686             stream << 
"FAST_FORWARD";
   688         case ExternalMediaAdapter::PlayControlType::REWIND:
   691         case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT_ONE:
   692             stream << 
"ENABLE_REPEAT_ONE";
   694         case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT:
   695             stream << 
"ENABLE_REPEAT";
   697         case ExternalMediaAdapter::PlayControlType::DISABLE_REPEAT:
   698             stream << 
"DISABLE_REPEAT";
   700         case ExternalMediaAdapter::PlayControlType::ENABLE_SHUFFLE:
   701             stream << 
"ENABLE_SHUFFLE";
   703         case ExternalMediaAdapter::PlayControlType::DISABLE_SHUFFLE:
   704             stream << 
"DISABLE_SHUFFLE";
   706         case ExternalMediaAdapter::PlayControlType::FAVORITE:
   707             stream << 
"FAVORITE";
   709         case ExternalMediaAdapter::PlayControlType::UNFAVORITE:
   710             stream << 
"UNFAVORITE";
   713         case ExternalMediaAdapter::PlayControlType::PAUSE_RESUME_TOGGLE:
   714             stream << 
"PAUSE_RESUME_TOGGLE";
   720 inline std::ostream& operator<<(
   721     std::ostream& stream,
   722     const ExternalMediaAdapter::SupportedPlaybackOperation& supportedPlaybackOperation) {
   723     switch (supportedPlaybackOperation) {
   724         case ExternalMediaAdapter::SupportedPlaybackOperation::PLAY:
   727         case ExternalMediaAdapter::SupportedPlaybackOperation::PAUSE:
   730         case ExternalMediaAdapter::SupportedPlaybackOperation::STOP:
   733         case ExternalMediaAdapter::SupportedPlaybackOperation::NEXT:
   736         case ExternalMediaAdapter::SupportedPlaybackOperation::PREVIOUS:
   737             stream << 
"PREVIOUS";
   739         case ExternalMediaAdapter::SupportedPlaybackOperation::START_OVER:
   740             stream << 
"START_OVER";
   742         case ExternalMediaAdapter::SupportedPlaybackOperation::FAST_FORWARD:
   743             stream << 
"FAST_FORWARD";
   745         case ExternalMediaAdapter::SupportedPlaybackOperation::REWIND:
   748         case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT:
   749             stream << 
"ENABLE_REPEAT";
   751         case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT_ONE:
   752             stream << 
"ENABLE_REPEAT_ONE";
   754         case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_REPEAT:
   755             stream << 
"DISABLE_REPEAT";
   757         case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_SHUFFLE:
   758             stream << 
"ENABLE_SHUFFLE";
   760         case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_SHUFFLE:
   761             stream << 
"DISABLE_SHUFFLE";
   763         case ExternalMediaAdapter::SupportedPlaybackOperation::FAVORITE:
   764             stream << 
"FAVORITE";
   766         case ExternalMediaAdapter::SupportedPlaybackOperation::UNFAVORITE:
   767             stream << 
"UNFAVORITE";
   769         case ExternalMediaAdapter::SupportedPlaybackOperation::SEEK:
   772         case ExternalMediaAdapter::SupportedPlaybackOperation::ADJUST_SEEK:
   773             stream << 
"ADJUST_SEEK";
   779 inline std::ostream& operator<<(std::ostream& stream, 
const ExternalMediaAdapter::Favorites& favorites) {
   781         case ExternalMediaAdapter::Favorites::FAVORITED:
   782             stream << 
"FAVORITED";
   784         case ExternalMediaAdapter::Favorites::UNFAVORITED:
   785             stream << 
"UNFAVORITED";
   787         case ExternalMediaAdapter::Favorites::NOT_RATED:
   788             stream << 
"NOT_RATED";
   794 inline std::ostream& operator<<(std::ostream& stream, 
const ExternalMediaAdapter::MediaType& mediaType) {
   796         case ExternalMediaAdapter::MediaType::TRACK:
   799         case ExternalMediaAdapter::MediaType::PODCAST:
   802         case ExternalMediaAdapter::MediaType::STATION:
   805         case ExternalMediaAdapter::MediaType::AD:
   808         case ExternalMediaAdapter::MediaType::SAMPLE:
   811         case ExternalMediaAdapter::MediaType::OTHER:
   818 inline std::ostream& operator<<(std::ostream& stream, 
const ExternalMediaAdapter::Navigation& navigation) {
   819     switch (navigation) {
   820         case ExternalMediaAdapter::Navigation::DEFAULT:
   823         case ExternalMediaAdapter::Navigation::NONE:
   826         case ExternalMediaAdapter::Navigation::FOREGROUND:
   827             stream << 
"FOREGROUND";
   836 #endif  // AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H MutedState
Definition: AudioOutput.h:69
Definition: AddressBook.h:26