示例#1
0
        /// <summary>
        /// Gets the value whether <see cref="MediaControlPlaybackCommand"/> is supported or not.
        /// </summary>
        /// <returns>
        /// the set of <see cref="MediaControlPlaybackCommand"/> and <see cref="MediaControlCapabilitySupport"/>.
        /// </returns>
        /// <exception cref="InvalidOperationException">
        ///     The server has already been stopped.<br/>
        ///     -or-<br/>
        ///     An internal error occurs.
        /// </exception>
        /// <exception cref="ObjectDisposedException">The <see cref="MediaControllerManager"/> has already been disposed.</exception>
        /// <since_tizen> 5 </since_tizen>
        public Dictionary <MediaControlPlaybackCommand, MediaControlCapabilitySupport> GetPlaybackCapabilities()
        {
            ThrowIfStopped();

            IntPtr playbackCapaHandle = IntPtr.Zero;

            var playbackCapabilities = new Dictionary <MediaControlPlaybackCommand, MediaControlCapabilitySupport>();

            try
            {
                Native.GetPlaybackCapabilityHandle(Manager.Handle, ServerAppId, out playbackCapaHandle).
                ThrowIfError("Failed to get playback capability handle.");

                foreach (MediaControllerNativePlaybackAction action in Enum.GetValues(typeof(MediaControllerNativePlaybackAction)))
                {
                    Native.GetPlaybackCapability(playbackCapaHandle, action, out MediaControlCapabilitySupport support);
                    playbackCapabilities.Add(action.ToPublic(), support);
                }

                return(playbackCapabilities);
            }
            finally
            {
                if (playbackCapaHandle != IntPtr.Zero)
                {
                    Native.DestroyCapability(playbackCapaHandle);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Gets the value whether <paramref name="action"/> is supported or not.
        /// </summary>
        /// <param name="action">A playback command.</param>
        /// <returns>A <see cref="MediaControlCapabilitySupport"/>.</returns>
        /// <exception cref="ArgumentException"><paramref name="action"/> is not valid.</exception>
        /// <exception cref="InvalidOperationException">
        ///     The server has already been stopped.<br/>
        ///     -or-<br/>
        ///     An internal error occurs.
        /// </exception>
        /// <exception cref="ObjectDisposedException">The <see cref="MediaControllerManager"/> has already been disposed.</exception>
        /// <since_tizen> 5 </since_tizen>
        public MediaControlCapabilitySupport GetPlaybackCapability(MediaControlPlaybackCommand action)
        {
            ThrowIfStopped();

            ValidationUtil.ValidateEnum(typeof(MediaControlPlaybackCommand), action, nameof(action));

            IntPtr playbackCapaHandle = IntPtr.Zero;

            try
            {
                Native.GetPlaybackCapabilityHandle(Manager.Handle, ServerAppId, out playbackCapaHandle).
                ThrowIfError("Failed to get playback capability handle.");

                Native.GetPlaybackCapability(playbackCapaHandle, action.ToNative(), out MediaControlCapabilitySupport support);

                return(support);
            }
            finally
            {
                if (playbackCapaHandle != IntPtr.Zero)
                {
                    Native.DestroyCapability(playbackCapaHandle);
                }
            }
        }
示例#3
0
        /// <summary>
        /// Gets the value whether the repeat mode is supported or not.
        /// </summary>
        /// <returns>A <see cref="MediaControlCapabilitySupport"/>.</returns>
        /// <exception cref="InvalidOperationException">
        ///     The server has already been stopped.<br/>
        ///     -or-<br/>
        ///     An internal error occurs.
        /// </exception>
        /// <exception cref="ObjectDisposedException">The <see cref="MediaControllerManager"/> has already been disposed of.</exception>
        /// <since_tizen> 5 </since_tizen>
        public MediaControlCapabilitySupport GetRepeatModeCapability()
        {
            ThrowIfStopped();

            IntPtr playbackCapaHandle = IntPtr.Zero;

            try
            {
                Native.GetPlaybackCapabilityHandle(Manager.Handle, ServerAppId, out playbackCapaHandle).
                ThrowIfError("Failed to get playback capability handle.");

                Native.GetRepeatCapability(Manager.Handle, ServerAppId, out MediaControlCapabilitySupport support);

                return(support);
            }
            finally
            {
                if (playbackCapaHandle != IntPtr.Zero)
                {
                    Native.DestroyCapability(playbackCapaHandle);
                }
            }
        }