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