Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NUI] Add Internal RequestLayout and OnReqeustLayout virtual method #6588

Open
wants to merge 41 commits into
base: DevelNUI
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
27baefc
[NUI] Support RemoveIdle API for NUIApplication + Use unified idler c…
Dec 18, 2024
ebe0dfa
[NUI] Create ImageVisual synchronously if AlphaMaskURL use generated …
Dec 17, 2024
1f8ff3f
[NUI] Add NUI FLUX friend assembly
dongsug-song Dec 31, 2024
76a9232
[Tizen.Applications] Fix wrong description
upple Dec 19, 2024
bca7e7e
[NUI] BindableObject creates property dictionary on demand
rabbitfor Dec 10, 2024
6db25cd
[NUI] Optimize static field of Color class
rabbitfor Dec 30, 2024
3fb564c
[NUI] Refactoring ControlState to use bitmask
everLEEst Dec 27, 2024
19d0c1b
[NUI.AIAvatar] Refactoring AI Avatar. (#6526)
AnglerLee Jan 6, 2025
936628d
[NUI] Do not re-create visual if we change only transform
Jan 6, 2025
41e193f
[NUI.Devel.Tests] Fix mis-implements for NativeImageSource TCT
Jan 7, 2025
76f9f6f
[NUI] version update (#6552)
lwc0917 Jan 7, 2025
795bb0c
[Tizen.Applications.RPCPort] Add new methods to support new types in …
pjh9216 Jan 1, 2025
168de42
[Build] Modified the RIDs sorted in descending order (#6539)
JongHeonChoi Jan 6, 2025
26739b8
[NUI] Add value type: color, vector2, shadow
rabbitfor Jan 6, 2025
8e706d5
[NUI] Fix exceptional All state case
everLEEst Jan 8, 2025
e414820
[NUI] Remove unnecessary PInvoke calls
Jan 6, 2025
9c6527f
[NUI] fix controlstate contains check null exceptions
everLEEst Jan 9, 2025
11ba430
[NUI] NUI Language version upgrade
everLEEst Jan 9, 2025
a25391b
[NUI] Reduce managed PropertyValue creation for VisualObject
Jan 6, 2025
6477ad3
[NUI] Remove unnecessary PInvoke calls
Jan 8, 2025
f0b7188
[NUI] remove unnecessary PInvoke calls related with axis
Jan 8, 2025
eed52d2
[NUI] Remove unnecessary PInvoke calls related with SlideTransitionDi…
Jan 8, 2025
56a8e6e
[NUI] Remove unused C# bindings anymore
Jan 9, 2025
756a062
[NUI] Fix wrong params order for ParentOrigin position
Jan 9, 2025
d00a0aa
[NUI] Check exception from native when get background color
rabbitfor Jan 9, 2025
f3d8f16
[NUI] add asynchronous tasked animation play
everLEEst Jan 8, 2025
636ca6a
[NUI] Update dp and sp extension methods and sp converting.
everLEEst Jan 6, 2025
3cdf4ea
[NUI] Add markup for some view properties using value type
rabbitfor Jan 8, 2025
f9daacc
[NUI] Preload static values
Jan 13, 2025
9b05a72
[NUI] Add value type: control state
rabbitfor Jan 6, 2025
714441a
[NUI] Rename State to ViewState
rabbitfor Jan 13, 2025
a3cc621
[NUI] Adds version tag or Hides deprecated APIs
bshsqa Jan 2, 2025
5a806be
[NUI] Handles null argument ControlState.Equals
rabbitfor Jan 14, 2025
2905747
[NUI] Version Update (22401)
Jan 14, 2025
60e31bc
[Build] modified the TFM sorted in descending order (#6549)
JongHeonChoi Jan 13, 2025
0b28dce
[NUI.WindowSystem] TizenShell: Enhance API description
juns-kim Oct 11, 2024
632c9f6
[NUI] Add IsAutoRotationEnabled, IsLetterBoxEnabled
JoogabYun Jan 9, 2025
e454853
[NUI] Notify property changed for the property methods using struct
rabbitfor Jan 15, 2025
c0d48f2
[NUI] Move markup methods to Tizen.NUI.Extension
rabbitfor Jan 16, 2025
38b534b
[NUI] Rename struct types
rabbitfor Jan 17, 2025
1a562e4
[NUI] Add internal RequestLayout and OnReqeustLayout virtual method.
everLEEst Jan 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packaging/csapi-tizenfx.spec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Auto-generated from csapi-tizenfx.spec.in by makespec.sh

%define TIZEN_NET_API_VERSION 13
%define TIZEN_NET_RPM_VERSION 13.0.0.999+nui22354
%define TIZEN_NET_RPM_VERSION 13.0.0.999+nui22401
%define TIZEN_NET_NUGET_VERSION 13.0.0.99999

%define DOTNET_ASSEMBLY_PATH /usr/share/dotnet.tizen/framework
Expand All @@ -13,7 +13,7 @@
%define DOTNET_NUGET_SOURCE /nuget

%define TIZEN_NET_RUNTIME_IDENTIFIERS 10.0.0:9.0.0:8.0.0:7.0.0:6.5.0:6.0.0:5.5.0:5.0.0:4.0.0
%define TIZEN_NET_TARGET_FRAMEWORK_MONIKERS net8.0-tizen10.0:net6.0-tizen9.0:net6.0-tizen8.0:net6.0-tizen:net6.0:tizen10.0:tizen90:tizen80:tizen70:tizen60:tizen50:tizen40
%define TIZEN_NET_TARGET_FRAMEWORK_MONIKERS net8.0-tizen10.0:net8.0-tizen:net8.0:net6.0-tizen9.0:net6.0-tizen8.0:net6.0-tizen:net6.0:tizen10.0:tizen90:tizen80:tizen70:tizen60:tizen50:tizen40

%define UPGRADE_SCRIPT_PATH /usr/share/upgrade/scripts

Expand Down
5 changes: 4 additions & 1 deletion packaging/makerid.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
runtime_dir = os.path.join(scrpit_dir, "../pkg/Tizen.NET/runtime.json")
spec_dir = os.path.join(scrpit_dir, "csapi-tizenfx.spec")

def parse_rid_as_int(rid):
return [int(part) for part in rid.split(".")]

with open(runtime_dir) as json_file:
json_data = json.load(json_file)
json_string = json_data["runtimes"]
Expand All @@ -23,7 +26,7 @@
rid_list.append(key)

rid_list = list(set(rid_list))
rid_list.sort(reverse=True)
rid_list = sorted(rid_list, key=parse_rid_as_int, reverse=True)

f = open(spec_dir,'r')
origin_data = f.read()
Expand Down
18 changes: 7 additions & 11 deletions packaging/maketfm.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@

tfm_list1 = [] #tizen90, tizen80, tizen70, tizen60, tizen50, tizen40
tfm_list2 = [] #tizen10.0
tfm_list3 = [] #net6.0-tizen9.0, net6.0-tizen8.0, net6.0-tizen, net6.0
tfm_list3 = [] #net8.0-tizen10.0, net8.0-tizen, net8.0, net6.0-tizen9.0, net6.0-tizen8.0, net6.0-tizen, net6.0

def sort_tfm(tfm):
tfm = list(set(tfm))
return sorted(tfm, reverse=True)

for meta_child in root.iter():
if meta_child.tag == "{http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd}metadata":
for depen_child in meta_child:
Expand All @@ -26,16 +31,7 @@
tfm_list3.append(tfm.strip() + "-tizen")
tfm_list3.append(tfm.strip())


tfm_list1 = list(set(tfm_list1))
tfm_list1.sort(reverse=True)
tfm_list2 = list(set(tfm_list2))
tfm_list2.sort(reverse=True)
tfm_list3 = list(set(tfm_list3))
tfm_list3.sort(key=len)
tfm_list3.sort(key=lambda s: float(re.search(r'(\d+)\.', s).group()[0]))
tfm_list3.reverse()
tfm_list = tfm_list3 + tfm_list2 + tfm_list1
tfm_list = sort_tfm(tfm_list3) + sort_tfm(tfm_list2) + sort_tfm(tfm_list1)

f = open(spec_dir,'r')
origin_data = f.read()
Expand Down
2 changes: 1 addition & 1 deletion packaging/version.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ RPM_VERSION=13.0.0.999
NUGET_VERSION=13.0.0.99999

# RPM Version Suffix
RPM_VERSION_SUFFIX=nui22354
RPM_VERSION_SUFFIX=nui22401
12 changes: 8 additions & 4 deletions pkg/Tizen.NET/Tizen.NET.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,18 @@
<dependency id="Tizen.NET.API12" version="12.0.0.18510" />
<dependency id="Microsoft.NETCore.Platforms" version="6.0.9" />
</group>
<group targetFramework="net8.0-tizen10.0">
<dependency id="Tizen.NET.API13" version="$fxversion$" />
<dependency id="Microsoft.NETCore.Platforms" version="6.0.9" />
</group>
<group targetFramework="net6.0">
<dependency id="Tizen.NET.API12" version="12.0.0.18510" />
<dependency id="Microsoft.NETCore.Platforms" version="6.0.9" />
</group>
<group targetFramework="net8.0-tizen10.0">
<dependency id="Tizen.NET.API13" version="$fxversion$" />
<dependency id="Microsoft.NETCore.Platforms" version="8.0.11" />
</group>
<group targetFramework="net8.0">
<dependency id="Tizen.NET.API13" version="$fxversion$" />
<dependency id="Microsoft.NETCore.Platforms" version="8.0.11" />
</group>
</dependencies>
</metadata>
<files>
Expand Down
2 changes: 0 additions & 2 deletions src/Tizen.AIAvatar/Tizen.AIAvatar.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<ProjectReference Include="..\Tizen\Tizen.csproj" />
<ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
<ProjectReference Include="..\Tizen.Uix.Tts\Tizen.Uix.Tts.csproj" />
Expand All @@ -16,7 +15,6 @@
<ProjectReference Include="..\Tizen.MachineLearning.Inference\Tizen.MachineLearning.Inference.csproj" />
<ProjectReference Include="..\Tizen.Multimedia.AudioIO\Tizen.Multimedia.AudioIO.csproj" />
<ProjectReference Include="..\Tizen.Security\Tizen.Security.csproj" />
<ProjectReference Include="..\Tizen.Security.PrivacyPrivilegeManager\Tizen.Security.PrivacyPrivilegeManager.csproj" />
</ItemGroup>


Expand Down
82 changes: 82 additions & 0 deletions src/Tizen.AIAvatar/src/AIServices/BaseAIService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
* Copyright(c) 2024 Samsung Electronics Co., Ltd.
*
* 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.ComponentModel;

namespace Tizen.AIAvatar
{
/// <summary>
/// Abstract base class for AI services, providing common functionalities.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract class BaseAIService : IAIService, IDisposable
{
/// <summary>
/// Gets the name of the AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract string ServiceName { get; }

/// <summary>
/// Gets the capabilities of the AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract ServiceCapabilities Capabilities { get; }

/// <summary>
/// Gets the service client manager responsible for managing client operations.
/// </summary>
protected ServiceClientManager ClientManager { get; }

/// <summary>
/// Gets the configuration settings for the AI service.
/// </summary>
protected AIServiceConfiguration Configuration { get; }

/// <summary>
/// Initializes a new instance of the <see cref="BaseAIService"/> class with the specified configuration.
/// </summary>
/// <param name="config">The configuration settings for the AI service.</param>
protected BaseAIService(AIServiceConfiguration config)
{
Configuration = config;
ClientManager = new ServiceClientManager(config);
}

/// <summary>
/// Releases all resources used by the AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

/// <summary>
/// Releases all resources used by the AI service.
/// </summary>
protected virtual void Dispose(bool disposing)
{
if (disposing && ClientManager != null)
{
ClientManager.Dispose();
}
}
}
}
185 changes: 185 additions & 0 deletions src/Tizen.AIAvatar/src/AIServices/Core/AIServiceData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
/*
* Copyright(c) 2024 Samsung Electronics Co., Ltd.
*
* 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.Collections.Generic;
using System.ComponentModel;


namespace Tizen.AIAvatar
{
/// <summary>
/// Provides data for LLM response events.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public class llmResponseEventArgs : EventArgs
{
/// <summary>
/// Gets or sets the task ID associated with the LLM response.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public int TaskID { get; set; }

/// <summary>
/// Gets or sets the response text from the LLM.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Text { get; set; }

/// <summary>
/// Gets or sets the error message, if any, from the LLM response.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Error { get; set; }
}

/// <summary>
/// Provides data for TTS streaming events.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public class ttsStreamingEventArgs : EventArgs
{
/// <summary>
/// Gets or sets the audio data of the current chunk.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public byte[] AudioData { get; set; }

/// <summary>
/// Gets or sets the sample rate of the audio data.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public int SampleRate { get; set; }

/// <summary>
/// Gets or sets the text being converted to speech.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Text { get; set; }

/// <summary>
/// Gets or sets the voice used for the TTS conversion.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Voice { get; set; }

/// <summary>
/// Gets or sets the size of the current audio data chunk in bytes.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public int AudioBytes { get; set; }

/// <summary>
/// Gets or sets the total number of bytes for the audio data.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public int TotalBytes { get; set; }

/// <summary>
/// Gets or sets the number of bytes processed so far.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public int ProcessedBytes { get; set; }

/// <summary>
/// Gets or sets the progress percentage of the TTS processing.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public double ProgressPercentage { get; set; }

/// <summary>
/// Gets or sets the error message, if any, during the TTS process.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Error { get; set; }
}

/// <summary>
/// Provides data for STT streaming events.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public class sttStreamingEventArgs : EventArgs
{
/// <summary>
/// Gets or sets a value indicating whether the text is interim.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public bool Interim { get; set; }

/// <summary>
/// Gets or sets the transcribed text from the STT process.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Text { get; set; }

/// <summary>
/// Gets or sets the error message, if any, during the STT process.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Error { get; set; }
}

/// <summary>
/// Represents service endpoints for AI services.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public class ServiceEndpoints
{
/// <summary>
/// Gets or sets the endpoint for the LLM service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string LLMEndpoint { get; set; }

/// <summary>
/// Gets or sets the endpoint for the Text-to-Speech service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string TextToSpeechEndpoint { get; set; }

/// <summary>
/// Gets or sets the endpoint for the Speech-to-Text service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string SpeechToTextEndpoint { get; set; }
}

/// <summary>
/// Represents the configuration for an AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract class AIServiceConfiguration
{
/// <summary>
/// Gets or sets the API key for the AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string ApiKey { get; set; }

/// <summary>
/// Gets or sets the service endpoints.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public ServiceEndpoints Endpoints { get; set; }

/// <summary>
/// Gets or sets additional settings for the AI service.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public Dictionary<string, object> AdditionalSettings { get; set; } = new();
}
}
Loading
Loading