示例#1
0
        /// <summary>
        /// Stops to play the feedback.
        /// </summary>
        /// <remarks>
        /// To stop vibration, the application should have http://tizen.org/privilege/haptic privilege.
        /// </remarks>
        /// <since_tizen> 3 </since_tizen>
        /// <feature>
        /// http://tizen.org/feature/feedback.vibration
        /// </feature>
        /// <exception cref="Exception">Thrown when failed because the feedback is not initialized.</exception>
        /// <exception cref="ArgumentException">Thrown when failed because of an invalid arguament</exception>
        /// <exception cref="NotSupportedException">Thrown when failed because the device (haptic, sound) or a specific pattern is not supported.</exception>
        /// <exception cref="UnauthorizedAccessException">Thrown when failed because the access is not granted (No privilege).</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback Feedback1 = new Feedback();
        /// Feedback1.Stop();
        /// </code>
        /// </example>
        public void Stop()
        {
            Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Stop();

            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to stop feedback. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotInitialized:
                    throw new Exception("Not initialized");

                case Interop.Feedback.FeedbackError.InvalidParameter:
                    throw new ArgumentException("Invalid Arguments");

                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Not supported");

                case Interop.Feedback.FeedbackError.PermissionDenied:
                    throw new UnauthorizedAccessException("Access is not granted");

                case Interop.Feedback.FeedbackError.OperationFailed:
                default:
                    throw new InvalidOperationException("Failed to stop pattern");
                }
            }
        }
示例#2
0
        /// <summary>
        /// Plays a specific feedback pattern.
        /// </summary>
        /// <remarks>
        /// To play Vibration type, app should have http://tizen.org/privilege/haptic privilege.
        /// </remarks>
        /// <since_tizen> 3 </since_tizen>
        /// <param name="type">The feedback type.</param>
        /// <param name="pattern">The feedback pattern string.</param>
        /// <exception cref="Exception">Thrown when failed because feedback is not initialized.</exception>
        /// <exception cref="ArgumentException">Thrown when failed because of an invalid arguament.</exception>
        /// <exception cref="NotSupportedException">Thrown when failed because the device (haptic, sound) or a specific pattern is not supported.</exception>
        /// <exception cref="UnauthorizedAccessException">Thrown when failed because the access is not granted(No privilege)</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback feedback = new Feedback();
        /// feedback.Play(FeedbackType.All, "Tap");
        /// </code>
        /// </example>
        public void Play(FeedbackType type, String pattern)
        {
            bool found = false;
            int  i     = 0;

            Interop.Feedback.FeedbackError res;

            for (i = 0; i < Constants.NumberOfPattern; i++)
            {
                if (String.Compare(pattern, Pattern[i].PatternString) == 0)
                {
                    found = true;
                    break;
                }
            }

            if (!found)
            {
                throw new ArgumentException("Invalid Arguments");
            }

            if (type == FeedbackType.All)
            {
                res = (Interop.Feedback.FeedbackError)Interop.Feedback.Play(Pattern[i].PatternNumber);
            }
            else
            {
                res = (Interop.Feedback.FeedbackError)Interop.Feedback.PlayType((Interop.Feedback.FeedbackType)type, Pattern[i].PatternNumber);
            }

            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to play feedback. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotInitialized:
                    throw new Exception("Not initialized");

                case Interop.Feedback.FeedbackError.InvalidParameter:
                    throw new ArgumentException("Invalid Arguments");

                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Not supported");

                case Interop.Feedback.FeedbackError.PermissionDenied:
                    throw new UnauthorizedAccessException("Access is not granted");

                case Interop.Feedback.FeedbackError.OperationFailed:
                default:
                    throw new InvalidOperationException("Failed to play pattern");
                }
            }
        }
示例#3
0
        /// <summary>
        /// Constructor of Feedback class
        /// </summary>
        /// <since_tizen> 3 </since_tizen>
        /// <feature>
        /// http://tizen.org/feature/feedback.vibration for FeedbackType.Vibration
        /// </feature>
        /// <exception cref="NotSupportedException">Thrown when failed because the devices (vibration and sound) are not supported.</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback feedback = new Feedback();
        /// </code>
        /// </example>
        public Feedback()
        {
            Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Initialize();
            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to initialize feedback. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Device is not supported");

                default:
                    throw new InvalidOperationException("Failed to initialize");
                }
            }
        }
示例#4
0
        /// <summary>
        /// Plays a specific feedback pattern.
        /// </summary>
        /// <remarks>
        /// To play Vibration type, app should have http://tizen.org/privilege/haptic privilege.
        /// </remarks>
        /// <since_tizen> 3 </since_tizen>
        /// <param name="type">The feedback type.</param>
        /// <param name="pattern">The feedback pattern string.</param>
        /// <feature>
        /// http://tizen.org/feature/feedback.vibration for FeedbackType.Vibration
        /// </feature>
        /// <exception cref="Exception">Thrown when failed because feedback is not initialized.</exception>
        /// <exception cref="ArgumentException">Thrown when failed because of an invalid arguament.</exception>
        /// <exception cref="NotSupportedException">Thrown when failed because the device (haptic, sound) or a specific pattern is not supported.</exception>
        /// <exception cref="UnauthorizedAccessException">Thrown when failed because the access is not granted(No privilege)</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback feedback = new Feedback();
        /// feedback.Play(FeedbackType.All, "Tap");
        /// </code>
        /// </example>
        public void Play(FeedbackType type, String pattern)
        {
            int number;

            Interop.Feedback.FeedbackError res;

            if (!Pattern.TryGetValue(pattern, out number))
            {
                throw new ArgumentException($"Not supported pattern string : {pattern}", nameof(pattern));
            }

            if (type == FeedbackType.All)
            {
                res = (Interop.Feedback.FeedbackError)Interop.Feedback.Play(number);
            }
            else
            {
                res = (Interop.Feedback.FeedbackError)Interop.Feedback.PlayType((Interop.Feedback.FeedbackType)type, number);
            }

            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to play feedback. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotInitialized:
                    throw new Exception("Not initialized");

                case Interop.Feedback.FeedbackError.InvalidParameter:
                    throw new ArgumentException("Invalid Arguments");

                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Not supported");

                case Interop.Feedback.FeedbackError.PermissionDenied:
                    throw new UnauthorizedAccessException("Access is not granted");

                case Interop.Feedback.FeedbackError.OperationFailed:
                default:
                    throw new InvalidOperationException("Failed to play pattern");
                }
            }
        }
示例#5
0
        /// <summary>
        /// Gets the supported information about a specific type and pattern.
        /// </summary>
        /// <remarks>
        /// Now, IsSupportedPattern is not working for FeedbackType.All.
        /// This API is working for FeedbackType.Sound and FeedbackType.Vibration only.
        /// If you use FeedbackType.All for type parameter, this API will throw ArgumentException.
        /// To get the supported information for Vibration type, the application should have http://tizen.org/privilege/haptic privilege.
        /// </remarks>
        /// <since_tizen> 3 </since_tizen>
        /// <param name="type">The feedback type.</param>
        /// <param name="pattern">The feedback pattern string.</param>
        /// <feature>
        /// http://tizen.org/feature/feedback.vibration for FeedbackType.Vibration
        /// </feature>
        /// <returns>Information whether a pattern is supported.</returns>
        /// <exception cref="Exception">Thrown when failed because the feedback is not initialized.</exception>
        /// <exception cref="ArgumentException">Thrown when failed because of an invalid arguament.</exception>
        /// <exception cref="NotSupportedException">Thrown when failed becuase the device (haptic, sound) is not supported.</exception>
        /// <exception cref="UnauthorizedAccessException">Thrown when failed because the access is not granted (No privilege).</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback feedback = new Feedback();
        /// bool res = feedback.IsSupportedPattern(FeedbackType.Vibration, "Tap");
        /// </code>
        /// </example>
        public bool IsSupportedPattern(FeedbackType type, String pattern)
        {
            bool supported = false;
            int  number;

            Interop.Feedback.FeedbackError res;

            if (!Pattern.TryGetValue(pattern, out number))
            {
                throw new ArgumentException($"Not supported pattern string : {pattern}", nameof(pattern));
            }

            res = (Interop.Feedback.FeedbackError)Interop.Feedback.IsSupportedPattern((Interop.Feedback.FeedbackType)type, number, out supported);

            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to get supported information. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotInitialized:
                    throw new Exception("Not initialized");

                case Interop.Feedback.FeedbackError.InvalidParameter:
                    throw new ArgumentException("Invalid Arguments");

                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Device is not supported");

                case Interop.Feedback.FeedbackError.PermissionDenied:
                    throw new UnauthorizedAccessException("Access is not granted");

                case Interop.Feedback.FeedbackError.OperationFailed:
                default:
                    throw new InvalidOperationException("Failed to get supported information");
                }
            }
            return(supported);
        }
示例#6
0
        /// <summary>
        /// Constructor of Feedback class
        /// </summary>
        /// <since_tizen> 3 </since_tizen>
        /// <exception cref="NotSupportedException">Thrown when failed becuase the device (haptic, sound) is not supported.</exception>
        /// <exception cref="InvalidOperationException">Thrown when failed because of a system error.</exception>
        /// <privilege>http://tizen.org/privilege/haptic</privilege>
        /// <example>
        /// <code>
        /// Feedback feedback = new Feedback();
        /// </code>
        /// </example>
        public Feedback()
        {
            Pattern[0].PatternNumber  = 0;
            Pattern[0].PatternString  = "Tap";
            Pattern[1].PatternNumber  = 1;
            Pattern[1].PatternString  = "SoftInputPanel";
            Pattern[2].PatternNumber  = 6;
            Pattern[2].PatternString  = "Key0";
            Pattern[3].PatternNumber  = 7;
            Pattern[3].PatternString  = "Key1";
            Pattern[4].PatternNumber  = 8;
            Pattern[4].PatternString  = "Key2";
            Pattern[5].PatternNumber  = 9;
            Pattern[5].PatternString  = "Key3";
            Pattern[6].PatternNumber  = 10;
            Pattern[6].PatternString  = "Key4";
            Pattern[7].PatternNumber  = 11;
            Pattern[7].PatternString  = "Key5";
            Pattern[8].PatternNumber  = 12;
            Pattern[8].PatternString  = "Key6";
            Pattern[9].PatternNumber  = 13;
            Pattern[9].PatternString  = "Key7";
            Pattern[10].PatternNumber = 14;
            Pattern[10].PatternString = "Key8";
            Pattern[11].PatternNumber = 15;
            Pattern[11].PatternString = "Key9";
            Pattern[12].PatternNumber = 16;
            Pattern[12].PatternString = "KeyStar";
            Pattern[13].PatternNumber = 17;
            Pattern[13].PatternString = "KeySharp";
            Pattern[14].PatternNumber = 18;
            Pattern[14].PatternString = "KeyBack";
            Pattern[15].PatternNumber = 19;
            Pattern[15].PatternString = "Hold";
            Pattern[16].PatternNumber = 21;
            Pattern[16].PatternString = "HardwareKeyPressed";
            Pattern[17].PatternNumber = 22;
            Pattern[17].PatternString = "HardwareKeyHold";
            Pattern[18].PatternNumber = 23;
            Pattern[18].PatternString = "Message";
            Pattern[19].PatternNumber = 25;
            Pattern[19].PatternString = "Email";
            Pattern[20].PatternNumber = 27;
            Pattern[20].PatternString = "WakeUp";
            Pattern[21].PatternNumber = 29;
            Pattern[21].PatternString = "Schedule";
            Pattern[22].PatternNumber = 31;
            Pattern[22].PatternString = "Timer";
            Pattern[23].PatternNumber = 33;
            Pattern[23].PatternString = "General";
            Pattern[24].PatternNumber = 36;
            Pattern[24].PatternString = "PowerOn";
            Pattern[25].PatternNumber = 37;
            Pattern[25].PatternString = "PowerOff";
            Pattern[26].PatternNumber = 38;
            Pattern[26].PatternString = "ChargerConnected";
            Pattern[27].PatternNumber = 40;
            Pattern[27].PatternString = "ChargingError";
            Pattern[28].PatternNumber = 42;
            Pattern[28].PatternString = "FullyCharged";
            Pattern[29].PatternNumber = 44;
            Pattern[29].PatternString = "LowBattery";
            Pattern[30].PatternNumber = 46;
            Pattern[30].PatternString = "Lock";
            Pattern[31].PatternNumber = 47;
            Pattern[31].PatternString = "UnLock";
            Pattern[32].PatternNumber = 55;
            Pattern[32].PatternString = "VibrationModeAbled";
            Pattern[33].PatternNumber = 56;
            Pattern[33].PatternString = "SilentModeDisabled";
            Pattern[34].PatternNumber = 57;
            Pattern[34].PatternString = "BluetoothDeviceConnected";
            Pattern[35].PatternNumber = 58;
            Pattern[35].PatternString = "BluetoothDeviceDisconnected";
            Pattern[36].PatternNumber = 62;
            Pattern[36].PatternString = "ListReorder";
            Pattern[37].PatternNumber = 63;
            Pattern[37].PatternString = "ListSlider";
            Pattern[38].PatternNumber = 64;
            Pattern[38].PatternString = "VolumeKeyPressed";

            Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Initialize();
            if (res != Interop.Feedback.FeedbackError.None)
            {
                Log.Warn(LogTag, string.Format("Failed to initialize feedback. err = {0}", res));
                switch (res)
                {
                case Interop.Feedback.FeedbackError.NotSupported:
                    throw new NotSupportedException("Device is not supported");

                default:
                    throw new InvalidOperationException("Failed to initialize");
                }
            }
        }