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] PenWaveCanvas #6577

Closed
wants to merge 37 commits into from
Closed
Changes from all commits
Commits
Show all changes
37 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
23f3975
[NUI] PenWave
JoogabYun Dec 11, 2024
ba0fd63
PenWave CodeClean
JoogabYun Dec 19, 2024
f824d51
[NUI] PenWave Coding rule
JoogabYun Jan 14, 2025
1bfb291
[NUI] PenWave Code Clean
JoogabYun Jan 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion 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+nui22400
%define TIZEN_NET_NUGET_VERSION 13.0.0.99999

%define DOTNET_ASSEMBLY_PATH /usr/share/dotnet.tizen/framework
5 changes: 4 additions & 1 deletion packaging/makerid.py
Original file line number Diff line number Diff line change
@@ -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"]
@@ -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()
2 changes: 1 addition & 1 deletion packaging/version.txt
Original file line number Diff line number Diff line change
@@ -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=nui22400
2 changes: 0 additions & 2 deletions src/Tizen.AIAvatar/Tizen.AIAvatar.csproj
Original file line number Diff line number Diff line change
@@ -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" />
@@ -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>


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