/// <summary>
/// Sets or gets the style of the Item.
/// </summary>
- public string Style
+ public virtual string Style
{
get
{
/// <summary>
/// Sets or gets an item style.
/// </summary>
- public string Style
+ public override string Style
{
get
{
* limitations under the License.
*/
-namespace Tizen.Multimedia
+internal static partial class Interop
{
- internal static partial class Interop
+ internal static partial class Libraries
{
- internal static partial class Libraries
- {
- public const string Radio = "libcapi-media-radio.so.0";
- }
+ public const string Radio = "libcapi-media-radio.so.0";
}
}
using System;
using System.Runtime.InteropServices;
+using Tizen.Multimedia;
-namespace Tizen.Multimedia
+internal static partial class Interop
{
- internal static partial class Interop
+ internal static class Radio
{
- internal static class Radio
- {
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void SeekCompletedCallback(int frequency, IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SeekCompletedCallback(int frequency, IntPtr userData);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ScanUpdatedCallback(int frequency, IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ScanUpdatedCallback(int frequency, IntPtr userData);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ScanStoppedCallback(IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ScanStoppedCallback(IntPtr userData);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ScanCompletedCallback(IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ScanCompletedCallback(IntPtr userData);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void InterruptedCallback(RadioInterruptedReason reason, IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void InterruptedCallback(RadioInterruptedReason reason, IntPtr userData);
- [DllImport(Libraries.Radio, EntryPoint = "radio_create")]
- internal static extern RadioError Create(out RadioHandle radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_create")]
+ internal static extern RadioError Create(out RadioHandle radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_destroy")]
- internal static extern RadioError Destroy(IntPtr radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_destroy")]
+ internal static extern RadioError Destroy(IntPtr radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_state")]
- internal static extern RadioError GetState(RadioHandle radio, out RadioState state);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_state")]
+ internal static extern RadioError GetState(RadioHandle radio, out RadioState state);
- [DllImport(Libraries.Radio, EntryPoint = "radio_start")]
- internal static extern RadioError Start(RadioHandle radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_start")]
+ internal static extern RadioError Start(RadioHandle radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_stop")]
- internal static extern RadioError Stop(RadioHandle radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_stop")]
+ internal static extern RadioError Stop(RadioHandle radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_seek_up")]
- internal static extern RadioError SeekUp(RadioHandle radio, SeekCompletedCallback callback,
- IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_seek_up")]
+ internal static extern RadioError SeekUp(RadioHandle radio, SeekCompletedCallback callback,
+ IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_seek_down")]
- internal static extern RadioError SeekDown(RadioHandle radio, SeekCompletedCallback callback,
- IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_seek_down")]
+ internal static extern RadioError SeekDown(RadioHandle radio, SeekCompletedCallback callback,
+ IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_set_frequency")]
- internal static extern RadioError SetFrequency(RadioHandle radio, int frequency);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_set_frequency")]
+ internal static extern RadioError SetFrequency(RadioHandle radio, int frequency);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_frequency")]
- internal static extern RadioError GetFrequency(RadioHandle radio, out int frequency);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_frequency")]
+ internal static extern RadioError GetFrequency(RadioHandle radio, out int frequency);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_signal_strength")]
- internal static extern RadioError GetSignalStrength(RadioHandle radio, out int strength);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_signal_strength")]
+ internal static extern RadioError GetSignalStrength(RadioHandle radio, out int strength);
- [DllImport(Libraries.Radio, EntryPoint = "radio_scan_start")]
- internal static extern RadioError ScanStart(RadioHandle radio, ScanUpdatedCallback callback,
- IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_scan_start")]
+ internal static extern RadioError ScanStart(RadioHandle radio, ScanUpdatedCallback callback,
+ IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_scan_stop")]
- internal static extern RadioError ScanStop(RadioHandle radio, ScanStoppedCallback callback,
- IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_scan_stop")]
+ internal static extern RadioError ScanStop(RadioHandle radio, ScanStoppedCallback callback,
+ IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_set_mute")]
- internal static extern RadioError SetMute(RadioHandle radio, bool muted);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_set_mute")]
+ internal static extern RadioError SetMute(RadioHandle radio, bool muted);
- [DllImport(Libraries.Radio, EntryPoint = "radio_is_muted")]
- internal static extern RadioError GetMuted(RadioHandle radio, out bool muted);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_is_muted")]
+ internal static extern RadioError GetMuted(RadioHandle radio, out bool muted);
- [DllImport(Libraries.Radio, EntryPoint = "radio_set_scan_completed_cb")]
- internal static extern RadioError SetScanCompletedCb(RadioHandle radio,
- ScanCompletedCallback callback, IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_set_scan_completed_cb")]
+ internal static extern RadioError SetScanCompletedCb(RadioHandle radio,
+ ScanCompletedCallback callback, IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_unset_scan_completed_cb")]
- internal static extern RadioError UnsetScanCompletedCb(RadioHandle radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_unset_scan_completed_cb")]
+ internal static extern RadioError UnsetScanCompletedCb(RadioHandle radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_set_interrupted_cb")]
- internal static extern RadioError SetInterruptedCb(RadioHandle radio,
- InterruptedCallback callback, IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Radio, EntryPoint = "radio_set_interrupted_cb")]
+ internal static extern RadioError SetInterruptedCb(RadioHandle radio,
+ InterruptedCallback callback, IntPtr userData = default(IntPtr));
- [DllImport(Libraries.Radio, EntryPoint = "radio_unset_interrupted_cb")]
- internal static extern RadioError UnsetInterruptedCb(RadioHandle radio);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_unset_interrupted_cb")]
+ internal static extern RadioError UnsetInterruptedCb(RadioHandle radio);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_frequency_range")]
- internal static extern RadioError GetFrequencyRange(RadioHandle radio, out int minFreq, out int maxFreq);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_frequency_range")]
+ internal static extern RadioError GetFrequencyRange(RadioHandle radio, out int minFreq, out int maxFreq);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_channel_spacing")]
- internal static extern RadioError GetChannelSpacing(RadioHandle radio, out int channelSpacing);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_channel_spacing")]
+ internal static extern RadioError GetChannelSpacing(RadioHandle radio, out int channelSpacing);
- [DllImport(Libraries.Radio, EntryPoint = "radio_set_volume")]
- internal static extern RadioError SetVolume(RadioHandle radio, float volume);
+ [DllImport(Libraries.Radio, EntryPoint = "radio_set_volume")]
+ internal static extern RadioError SetVolume(RadioHandle radio, float volume);
- [DllImport(Libraries.Radio, EntryPoint = "radio_get_volume")]
- internal static extern RadioError GetVolume(RadioHandle radio, out float volume);
- }
+ [DllImport(Libraries.Radio, EntryPoint = "radio_get_volume")]
+ internal static extern RadioError GetVolume(RadioHandle radio, out float volume);
+ }
- internal class RadioHandle : SafeHandle
+ internal class RadioHandle : SafeHandle
+ {
+ protected RadioHandle() : base(IntPtr.Zero, true)
{
- protected RadioHandle() : base(IntPtr.Zero, true)
- {
- }
+ }
- public override bool IsInvalid => handle == IntPtr.Zero;
+ public override bool IsInvalid => handle == IntPtr.Zero;
- protected override bool ReleaseHandle()
+ protected override bool ReleaseHandle()
+ {
+ var ret = Radio.Destroy(handle);
+ if (ret != RadioError.None)
{
- var ret = Radio.Destroy(handle);
- if (ret != RadioError.None)
- {
- Log.Debug(GetType().FullName, $"Failed to release native handle.");
- return false;
- }
-
- return true;
+ Tizen.Log.Debug(GetType().FullName, $"Failed to release native handle.");
+ return false;
}
+
+ return true;
}
}
}
using System;
using System.Linq;
-using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Tizen.System;
-using static Tizen.Multimedia.Interop.Radio;
+using Native = Interop.Radio;
+using static Interop;
namespace Tizen.Multimedia
{
/// </summary>
public class Radio : IDisposable
{
- private Interop.RadioHandle _handle;
+ private RadioHandle _handle;
private const string FeatureFmRadio = "http://tizen.org/feature/fmradio";
/// <exception cref="NotSupportedException">The radio feature is not supported.</exception>
public Radio()
{
+ CompatibilitySupport.DisableSessionBackwardCompatibility();
+
ValidateFeatureSupported(FeatureFmRadio);
- Create(out _handle);
+ Native.Create(out _handle);
try
{
- _scanCompletedCallback = _ => ScanCompleted?.Invoke(this, EventArgs.Empty);
- _interruptedCallback = (reason, _) => Interrupted?.Invoke(this, new RadioInterruptedEventArgs(reason));
- _scanUpdatedCallback = (frequency, _) => ScanUpdated?.Invoke(this, new ScanUpdatedEventArgs(frequency));
- _scanStoppedCallback = _ => ScanStopped?.Invoke(this, EventArgs.Empty);
+ InitCallbacks();
- SetScanCompletedCb(_handle, _scanCompletedCallback).ThrowIfFailed("Failed to initialize radio");
- SetInterruptedCb(_handle, _interruptedCallback).ThrowIfFailed("Failed to initialize radio");
+ Native.SetScanCompletedCb(_handle, _scanCompletedCallback).
+ ThrowIfFailed("Failed to initialize radio");
+ Native.SetInterruptedCb(_handle, _interruptedCallback).
+ ThrowIfFailed("Failed to initialize radio");
}
catch (Exception)
{
}
}
- private Interop.RadioHandle Handle
+ private void InitCallbacks()
+ {
+ _scanCompletedCallback = _ => ScanCompleted?.Invoke(this, EventArgs.Empty);
+
+ _interruptedCallback =
+ (reason, _) => Interrupted?.Invoke(this, new RadioInterruptedEventArgs(reason));
+
+ _scanUpdatedCallback =
+ (frequency, _) => ScanUpdated?.Invoke(this, new ScanUpdatedEventArgs(frequency));
+
+ _scanStoppedCallback = _ => ScanStopped?.Invoke(this, EventArgs.Empty);
+ }
+
+ private RadioHandle Handle
{
get
{
}
}
- private ScanUpdatedCallback _scanUpdatedCallback;
+ private Native.ScanUpdatedCallback _scanUpdatedCallback;
- private ScanStoppedCallback _scanStoppedCallback;
+ private Native.ScanStoppedCallback _scanStoppedCallback;
- private ScanCompletedCallback _scanCompletedCallback;
+ private Native.ScanCompletedCallback _scanCompletedCallback;
- private InterruptedCallback _interruptedCallback;
+ private Native.InterruptedCallback _interruptedCallback;
/// <summary>
/// Occurs when the radio scanning information is updated.
{
get
{
- RadioState state;
- GetState(Handle, out state);
+ Native.GetState(Handle, out var state).ThrowIfFailed("Failed to get state");
return state;
}
}
{
get
{
- int value = 0;
- GetFrequency(Handle, out value).ThrowIfFailed("Failed to get frequency");
+ Native.GetFrequency(Handle, out var value).ThrowIfFailed("Failed to get frequency");
return value;
}
set
{
if (value < FrequencyRange.Min || value > FrequencyRange.Max)
{
- throw new ArgumentOutOfRangeException(nameof(Frequency), value, "Frequency must be within FrequencyRange.");
+ throw new ArgumentOutOfRangeException(nameof(Frequency), value,
+ "Frequency must be within FrequencyRange.");
}
- SetFrequency(Handle, value).ThrowIfFailed("Failed to set frequency");
+ Native.SetFrequency(Handle, value).ThrowIfFailed("Failed to set frequency");
}
}
get
{
int value = 0;
- GetSignalStrength(Handle, out value).ThrowIfFailed("Failed to get signal strength");
+ Native.GetSignalStrength(Handle, out value).ThrowIfFailed("Failed to get signal strength");
return value;
}
}
{
get
{
- bool value;
- GetMuted(Handle, out value).ThrowIfFailed("Failed to get the mute state");
+ Native.GetMuted(Handle, out var value).ThrowIfFailed("Failed to get the mute state");
return value;
}
set
{
- SetMute(Handle, value).ThrowIfFailed("Failed to set the mute state");
+ Native.SetMute(Handle, value).ThrowIfFailed("Failed to set the mute state");
}
}
{
get
{
- int value;
- GetChannelSpacing(Handle, out value).ThrowIfFailed("Failed to get channel spacing");
+ Native.GetChannelSpacing(Handle, out var value).
+ ThrowIfFailed("Failed to get channel spacing");
return value;
}
}
{
get
{
- float value;
- GetVolume(Handle, out value).ThrowIfFailed("Failed to get volume level.");
+ Native.GetVolume(Handle, out var value).ThrowIfFailed("Failed to get volume level.");
return value;
}
set
$"Valid volume range is 0 <= value <= 1.0, but got { value }.");
}
- SetVolume(Handle, value).ThrowIfFailed("Failed to set volume level");
+ Native.SetVolume(Handle, value).ThrowIfFailed("Failed to set volume level");
}
}
{
get
{
- int min, max;
-
- GetFrequencyRange(Handle, out min, out max).ThrowIfFailed("Failed to get frequency range");
+ Native.GetFrequencyRange(Handle, out var min, out var max).
+ ThrowIfFailed("Failed to get frequency range");
return new Range(min, max);
}
{
ValidateRadioState(RadioState.Ready);
- Interop.Radio.Start(Handle).ThrowIfFailed("Failed to start radio");
+ Native.Start(Handle).ThrowIfFailed("Failed to start radio");
}
/// <summary>
{
ValidateRadioState(RadioState.Playing);
- Interop.Radio.Stop(Handle).ThrowIfFailed("Failed to stop radio");
+ Native.Stop(Handle).ThrowIfFailed("Failed to stop radio");
}
/// <summary>
{
ValidateRadioState(RadioState.Ready, RadioState.Playing);
- ScanStart(Handle, _scanUpdatedCallback).ThrowIfFailed("Failed to start scanning");
+ Native.ScanStart(Handle, _scanUpdatedCallback).ThrowIfFailed("Failed to start scanning");
}
/// <summary>
{
ValidateRadioState(RadioState.Scanning);
- ScanStop(Handle, _scanStoppedCallback).ThrowIfFailed("Failed to stop scanning");
+ Native.ScanStop(Handle, _scanStoppedCallback).ThrowIfFailed("Failed to stop scanning");
}
/// <summary>
/// </exception>
public Task<int> SeekUpAsync()
{
- return SeekAsync(SeekUp);
+ return SeekAsync(Native.SeekUp);
}
/// <summary>
/// </exception>
public Task<int> SeekDownAsync()
{
- return SeekAsync(SeekDown);
+ return SeekAsync(Native.SeekDown);
}
- private async Task<int> SeekAsync(Func<Interop.RadioHandle, SeekCompletedCallback, IntPtr, RadioError> func)
+ private async Task<int> SeekAsync(
+ Func<RadioHandle, Native.SeekCompletedCallback, IntPtr, RadioError> func)
{
ValidateRadioState(RadioState.Playing);
var tcs = new TaskCompletionSource<int>();
- SeekCompletedCallback callback = (currentFrequency, _) => tcs.TrySetResult(currentFrequency);
+ Native.SeekCompletedCallback callback =
+ (currentFrequency, _) => tcs.TrySetResult(currentFrequency);
- GCHandle gcHandle;
- try
+ using (ObjectKeeper.Get(callback))
{
- gcHandle = GCHandle.Alloc(callback);
-
func(Handle, callback, IntPtr.Zero).ThrowIfFailed("Failed to seek");
return await tcs.Task;
}
- finally
- {
- gcHandle.Free();
- }
}
private void ValidateFeatureSupported(string featurePath)
{
throw new NotSupportedException($"The feature({featurePath}) is not supported.");
}
-
}
private void ValidateRadioState(params RadioState[] required)
{
var tcs = new TaskCompletionSource<bool>();
- IntPtr outBuffer = IntPtr.Zero;
- Unmanaged.SetOutputBuffer(Handle, out outBuffer).ThrowIfFailed("Failed to initialize encoder");
-
Task.Run(() =>
{
+ IntPtr outBuffer = IntPtr.Zero;
+
try
{
+ Unmanaged.SetOutputBuffer(Handle, out outBuffer).ThrowIfFailed("Failed to initialize encoder");
+
ulong size = 0;
Unmanaged.Run(Handle, out size).ThrowIfFailed("Failed to encode given image");
internal abstract void Configure(TransformHandle handle);
- internal virtual Task<MediaPacket> ApplyAsync(MediaPacket source)
+ internal virtual async Task<MediaPacket> ApplyAsync(MediaPacket source)
{
using (TransformHandle handle = CreateHandle())
{
Configure(handle);
- return RunAsync(handle, source);
+ return await RunAsync(handle, source);
}
}
}
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace Tizen.Multimedia
+{
+ internal static class CompatibilitySupport
+ {
+ internal static void DisableSessionBackwardCompatibility()
+ {
+ var result = Interop.SoundManager.DisableSessionBackwardCompatibility();
+ if (result != AudioManagerError.None)
+ {
+ Log.Warn(nameof(Multimedia),
+ $"Failed to disable session backward compatibility({result}).");
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace Tizen.Multimedia
+{
+ internal static partial class Interop
+ {
+ internal static class SoundManager
+ {
+ [DllImport(Libraries.SoundManager, EntryPoint = "sound_manager_disable_session_backward_compatibility")]
+ internal static extern AudioManagerError DisableSessionBackwardCompatibility();
+ }
+ }
+}
var surface = new CircleSurface(conformant);
- DateTimeSelector datetime = new CircleDateTimeSelector(conformant, surface)
+ var datetime = new CircleDateTimeSelector(conformant, surface)
{
MinimumDateTime = new DateTime(2015, 1, 1),
MaximumDateTime = DateTime.Now,
DateTime = DateTime.Now
};
+ ((IRotaryActionWidget)datetime).Activate();
layout.SetContent(datetime);
var surface = new CircleSurface(conformant);
- DateTimeSelector datetime = new CircleDateTimeSelector(conformant, surface)
+ var datetime = new CircleDateTimeSelector(conformant, surface)
{
DateTime = DateTime.Now,
Style = "timepicker/circle"
};
-
+ ((IRotaryActionWidget)datetime).Activate();
layout.SetContent(datetime);
Button btn = new Button(layout)
var surface = new CircleSurface(conformant);
- DateTimeSelector datetime = new CircleDateTimeSelector(conformant, surface)
+ var datetime = new CircleDateTimeSelector(conformant, surface)
{
DateTime = DateTime.Now,
Style = "timepicker/circle",
IsEnabled = false
};
-
+ ((IRotaryActionWidget)datetime).Activate();
layout.SetContent(datetime);
Button btn = new Button(layout)
Conformant conformant = new Conformant(window);
conformant.Show();
- Layout layout = new Layout(window);
+ var naviframe = new Naviframe(window);
+ conformant.SetContent(naviframe);
+ Layout layout = new Layout(naviframe);
layout.SetTheme("layout", "circle", "datetime");
- conformant.SetContent(layout);
-
var surface = new CircleSurface(conformant);
- DateTimeSelector datetime = new CircleDateTimeSelector(conformant, surface)
+ DateTimeSelector datetime = new CircleDateTimeSelector(naviframe, surface)
{
DateTime = DateTime.Now,
Style = "timepicker/circle",
MarkerColor = Color.Pink,
MarkerRadius = 100,
};
-
+ ((IRotaryActionWidget)datetime).Activate();
layout.SetContent(datetime);
Button btn = new Button(layout)
layout.SetPartText("elm.text", "Set time");
+ naviframe.Push(layout, null, "empty");
+
datetime.DateTimeChanged += (object sender, DateChangedEventArgs e) =>
{
Log.Debug(TestName, "Old DateTime={0}", e.OldDate.ToString());
VerticalScrollBackgroundColor = Color.Pink,
VerticalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Visible,
};
-
+ ((IRotaryActionWidget)list).Activate();
conformant.SetContent(list);
GenItemClass defaultClass = new GenItemClass("default")
VerticalScrollBarLineWidth = 30,
};
list.Show();
-
+ ((IRotaryActionWidget)list).Activate();
list.Move(0, 0);
list.Resize(360, 360);
list.Lower();
conformant.SetContent(naviframe);
- var surface = new CircleSurface(naviframe);
+ var surface = new CircleSurface(conformant);
var list = new CircleGenList(naviframe, surface)
{
VerticalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Auto,
IsEnabled = false,
};
-
+ ((IRotaryActionWidget)list).Activate();
var item = naviframe.Push(list);
item.Style = "empty";
VerticalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Invisible,
};
list.Show();
-
+ ((IRotaryActionWidget)list).Activate();
list.Move(0, 0);
list.Resize(360, 360);
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+using ElmSharp.Wearable;
+
+namespace ElmSharp.Test.TC
+{
+ public class CircleProgressBarTest5 : TestCaseBase
+ {
+ public override string TestName => "CircleProgressBarTest5";
+ public override string TestDescription => "To test Disabled property of CircleProgressBar";
+
+ public override void Run(Window window)
+ {
+ Log.Debug(TestName, "CircleProgressBar run");
+ Conformant conformant = new Conformant(window);
+ conformant.Show();
+
+ Naviframe naviframe = new Naviframe(window);
+ naviframe.Show();
+ conformant.SetContent(naviframe);
+
+ var surface = new CircleSurface(conformant);
+ CircleProgressBar pb1 = new CircleProgressBar(naviframe, surface)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1,
+ Value = 0,
+ Maximum = 100,
+ Minimum = 0,
+ };
+ pb1.Show();
+ naviframe.Push(pb1, null, "empty");
+
+ Label lb1 = new Label(window)
+ {
+ Text = string.Format("S {0} %", pb1.Value),
+ };
+
+ lb1.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
+ lb1.Move(160, window.ScreenSize.Height / 2 - 40);
+ lb1.Show();
+
+ EcoreMainloop.AddTimer(0.05, () =>
+ {
+ if (pb1.Value == pb1.Maximum/2)
+ {
+ // Test purpose : set disable
+ pb1.IsEnabled = false;
+ }
+
+ if (pb1.Value == pb1.Maximum)
+ {
+ EcoreMainloop.RemoveTimer(pb1);
+ }
+
+ pb1.Value += 1;
+ lb1.Text = string.Format("S {0} %", pb1.Value);
+
+ return true;
+ });
+ }
+ }
+}
VerticalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Auto,
HorizontalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Invisible,
};
+ ((IRotaryActionWidget)circleScroller).Activate();
circleScroller.Show();
conformant.SetContent(circleScroller);
Box box = new Box(window)
VerticalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Invisible,
HorizontalScrollBarVisiblePolicy = ScrollBarVisiblePolicy.Auto,
};
+ ((IRotaryActionWidget)circleScroller).Activate();
circleScroller.Show();
circleScroller.Move(0, 0);
circleScroller.Resize(360, 360);
Conformant conformant = new Conformant(window);
conformant.Show();
- Naviframe naviframe = new Naviframe(conformant);
+ Naviframe naviframe = new Naviframe(window);
+ naviframe.Show();
+ conformant.SetContent(naviframe);
- var surface = new CircleSurface(naviframe);
+ var surface = new CircleSurface(conformant);
CircleScroller circleScroller = new CircleScroller(naviframe, surface)
{
AlignmentX = -1,
HorizontalScrollBarLineWidth = 15,
HorizontalScrollBackgroundLineWidth = 15,
};
+ ((IRotaryActionWidget)circleScroller).Activate();
circleScroller.Show();
- naviframe.Push(circleScroller);
- naviframe.Show();
- conformant.SetContent(naviframe);
+ naviframe.Push(circleScroller, null , "empty");
+
Box box = new Box(window)
{
VerticalScrollBarRadius = 170,
VerticalScrollBackgroundRadius = 170,
};
+ ((IRotaryActionWidget)circleScroller).Activate();
circleScroller.Show();
circleScroller.Move(0, 0);
circleScroller.Resize(360, 360);
Value = 25,
Step = 5,
};
+ ((IRotaryActionWidget)circleSlider).Activate();
circleSlider.Show();
conformant.SetContent(circleSlider);
Value = 3,
Step = 0.5,
};
+ ((IRotaryActionWidget)circleSlider).Activate();
circleSlider.Show();
conformant.SetContent(circleSlider);
Label label1 = new Label(window)
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using ElmSharp.Wearable;
+
+namespace ElmSharp.Test.TC
+{
+ public class CircleSliderTest3 : TestCaseBase
+ {
+ public override string TestName => "CircleSliderTest3";
+ public override string TestDescription => "To test basic operation of CircleSlider";
+
+ public override void Run(Window window)
+ {
+ Conformant conformant = new Conformant(window);
+ conformant.Show();
+
+ Naviframe naviframe = new Naviframe(window);
+ naviframe.Show();
+ conformant.SetContent(naviframe);
+
+ var surface = new CircleSurface(conformant);
+ CircleSlider circleSlider = new CircleSlider(naviframe, surface)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1,
+ Minimum = 0,
+ Maximum = 20,
+ Value = 5,
+ Step = 0.5,
+ };
+ ((IRotaryActionWidget)circleSlider).Activate();
+ circleSlider.Show();
+ naviframe.Push(circleSlider, null, "empty");
+
+ Label label1 = new Label(window)
+ {
+ Text = string.Format("{0:F1}", circleSlider.Value),
+ Color = Color.White,
+ };
+
+ label1.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
+ label1.Move(170, window.ScreenSize.Height / 2 - 20);
+ label1.Show();
+
+ circleSlider.ValueChanged += (s, e) =>
+ {
+ label1.Text = string.Format("{0:F1}", circleSlider.Value);
+ };
+
+ }
+ }
+}
WeightX = 1,
WeightY = 1
};
+ ((IRotaryActionWidget)spn1).Activate();
spn1.AddSpecialValue(50, "50 match !!!!");
layout.SetContent(spn1);
var surface = new CircleSurface(conformant);
CircleSpinner spn1 = new CircleSpinner(conformant, surface)
{
- Text = "Slider Test",
+ Text = "Spinner Test",
LabelFormat = "%d Value",
Style = "circle",
AngleRatio = 3.0,
MarkerColor = Color.Pink,
MarkerRadius = 100,
};
+ ((IRotaryActionWidget)spn1).Activate();
spn1.AddSpecialValue(50, "50 match !!!!");
layout.SetContent(spn1);
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using ElmSharp.Wearable;
+
+namespace ElmSharp.Test.TC
+{
+ class CircleSpinnerTest3 : TestCaseBase
+ {
+ public override string TestName => "CircleSpinnerTest3";
+ public override string TestDescription => "To test basic operation of Circle Spinner";
+
+ public override void Run(Window window)
+ {
+ Log.Debug(TestName, "CircleSpinnerTest run");
+ Conformant conformant = new Conformant(window);
+ conformant.Show();
+
+ Naviframe naviframe = new Naviframe(window);
+ naviframe.Show();
+ conformant.SetContent(naviframe);
+
+ Layout layout = new Layout(naviframe);
+ layout.SetTheme("layout", "circle", "spinner");
+
+ var surface = new CircleSurface(conformant);
+ CircleSpinner spn1 = new CircleSpinner(naviframe, surface)
+ {
+ Text = "Spinner Test",
+ LabelFormat = "%d Value",
+ Style = "circle",
+ AngleRatio = 3.0,
+ Minimum = 0,
+ Maximum = 360,
+ Value = 0,
+ Step = 10,
+ Interval = 0.5,
+ AlignmentX = -1,
+ AlignmentY = 1,
+ WeightX = 1,
+ WeightY = 1
+ };
+ ((IRotaryActionWidget)spn1).Activate();
+ spn1.AddSpecialValue(50, "50 match !!!!");
+ layout.SetContent(spn1);
+
+ Button btn = new Button(layout) {
+ Text = "OK",
+ Style = "bottom",
+ };
+
+ layout.SetPartContent("elm.swallow.btn", btn);
+ layout.SetPartText("elm.text", "Set value");
+
+ naviframe.Push(layout, null, "empty");
+ }
+ }
+}