CN105740070B - 一种快按钮识别方法及终端 - Google Patents

一种快按钮识别方法及终端 Download PDF

Info

Publication number
CN105740070B
CN105740070B CN201610070558.6A CN201610070558A CN105740070B CN 105740070 B CN105740070 B CN 105740070B CN 201610070558 A CN201610070558 A CN 201610070558A CN 105740070 B CN105740070 B CN 105740070B
Authority
CN
China
Prior art keywords
terminal
fast
fast button
hardware interrupts
setting value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610070558.6A
Other languages
English (en)
Other versions
CN105740070A (zh
Inventor
费翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201610070558.6A priority Critical patent/CN105740070B/zh
Publication of CN105740070A publication Critical patent/CN105740070A/zh
Application granted granted Critical
Publication of CN105740070B publication Critical patent/CN105740070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Telephone Function (AREA)

Abstract

本发明实施例公开了一种快按钮识别方法及终端。其中的方法包括:当物体插入终端时,产生外部中断;并在产生所述外部中断后的设定时间内判断是否产生硬件中断;若判断的结果为否,识别所述物体为快按钮。还公开了相应的终端。通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。

Description

一种快按钮识别方法及终端
技术领域
本发明涉及智能终端技术领域,尤其涉及一种快按钮识别方法及终端。
背景技术
目前的智能终端例如手机如果你想要使用一个功能,你需要先唤醒手机,给手机解锁并找到相应的应用,然后去点击打开寻找到你需要的功能。整个流程繁杂而不直接,效率低下,已经不能满足人们使用手机的速度需求。快按钮也正是基于这样的考虑,赋予手机一个物理智能按键,从根本上的完成人机交互方式的优化,简单直接,快捷智能。但由于快按钮硬件结构的原因,一些终端不能支持快按钮的功能。
发明内容
本发明实施例提供一种快按钮识别方法及终端,以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
一方面,提供了一种快按钮识别方法,所述方法包括:
当物体插入终端时,产生外部中断;
在产生所述外部中断后的设定时间内判断是否产生硬件中断;
若判断的结果为否,识别所述物体为快按钮。
优选地,所述方法还包括:
若判断的结果为是,识别所述物体为耳机。
优选地,所述在产生所述外部中断后的设定时间内判断是否产生硬件中断,包括:
启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值,其中,所述全局变量预设为所述第一设定值;
若所述设定时间内所述全局变量仍为所述第一设定值,确定未产生硬件中断。
优选地,所述方法还包括:
若所述全局变量变为第二设定值,确定产生硬件中断;
所述方法还包括:
将所述全局变量改为所述第一设定值。
优选地,所述方法还包括:
在第一次释放所述快按钮时,上报释放事件,并在所述释放事件中将所述快按钮作为4段式耳机上报。
另一方面,提供了一种终端,所述终端包括:
中断模块,用于当物体插入终端时,产生外部中断;
判断模块,用于在产生所述外部中断后的设定时间内判断是否产生硬件中断;
识别模块,用于若判断的结果为否,识别所述物体为快按钮。
优选地,所述识别模块还用于:
若判断的结果为是,识别所述物体为耳机。
优选地,所述判断模块包括:
检测单元,用于启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值,其中,所述全局变量预设为所述第一设定值;
确定单元,用于若所述设定时间内所述全局变量仍为所述第一设定值,确定未产生硬件中断。
优选地,所述确定单元还用于:
若所述全局变量变为第二设定值,确定产生硬件中断;
所述终端还包括:
修改模块,用于将所述全局变量改为所述第一设定值。
优选地,所述终端还包括:
上报模块,用于在第一次按下后释放所述快按钮时,上报释放事件,并在所述释放事件中将所述快按钮作为4段式耳机上报。
实施本发明实施例提供的一种快按钮识别方法及终端,具有如下有益效果:
通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种快按钮识别方法的流程示意图;
图2为对图1所示的本发明实施例提供的一种快按钮识别方法进一步细化的流程示意图;
图3为本发明实施例提供的一种终端的结构示意图;
图4为对图3所示的本发明实施例提供的一种终端进一步细化的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种快按钮识别方法的流程示意图,该方法包括以下步骤:
S101,当物体插入终端时,产生外部中断。
现在大部分的android设备一般只有电源和音量接口是物理接口,本实施例是通过音量接口插入第三方配件,当物体插入终端时,会首先产生一个外部中断,终端的耳机检测模块会检测到该中断。
S102,在产生所述外部中断后的设定时间内判断是否产生硬件中断。
为了区分插入终端的物体是耳机或快按钮,需要在产生外部中断后的设定时间内判断是否产生硬件中断。例如,该硬件中断可以是accdet中断。
产生硬件中断的条件是硬件插入时引起终端内部电压的变化。
S103,若判断的结果为否,识别所述物体为快按钮。
如果在产生外部中断后的设定时间内未产生硬件中断,则可识别该物体为快按钮。由于快按钮硬件结构的原因,当插入快按钮时,未达到引起终端内部电压变化的条件,不会产生硬件中断。
根据本发明实施例提供的一种快按钮识别方法,通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
图2为对图1所示的本发明实施例提供的一种快按钮识别方法进一步细化的流程示意图,该方法包括以下步骤:
S201,当物体插入终端时,产生外部中断。
本实施例是通过音量接口插入第三方配件,当物体插入终端时,会产生一个外部中断,终端的耳机检测模块会检测到该中断。
S202,启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值,若是,进行至步骤S203;否则,进行到步骤S205。
其中,所述全局变量预设为所述第一设定值。
S203,确定未产生硬件中断。
S204,识别所述物体为快按钮。
S205,若所述全局变量改变为第二设定值,确定产生硬件中断。
S206,识别所述物体为耳机。
需在设定时间内判断是否产生硬件中断,具体地,预先定义一个耳机检测模块中的全局变量quick_button_flag=false。在外部中断中启动一个定时器,一段时间(例如100ms)后去检测quick_button_flag是否等于true,当quick_button_flag的值等于true,则确定产生硬件中断,认为这是耳机插入;当quick_button_flag的值等于false,则确定未产生硬件中断,识别该物体为快按钮。在该具体示例中,第一设定值为false,第二设定值为true。
S207,将所述全局变量改为所述第一设定值。
在确定quick_button_flag的值等于true时,在定时器函数中改变这个变量的值,而且只在耳机第一次插入时改变为true。
S208,在第一次释放快按钮时,上报释放事件,并在所述释放事件中将所述快按钮作为4段式耳机上报。
由于快按钮是靠耳机hook事件来驱动,而android系统中只有4段式耳机才支持耳机hook事件,所以只有将快按钮当做4段式耳机上报。
第一次按下后释放快按钮,在这个过程中会触发accdet中断,并检测快按钮的类型,按下与释放按钮都会产生accdet中断,我们在释放按钮时检测出来的状态中将快按钮作为4段式耳机上报。
当第一次操作快按钮(即按下并释放快按钮)将快按钮作为4段式耳机类型上报后,后面再去操作快按钮按键就会当做耳机hook事件上报。操作系统根据耳机hook事件来控制应用程序的打开与关闭。
根据本发明实施例提供的一种快按钮识别方法,通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
图3为本发明实施例提供的一种终端的结构示意图,该终端1000包括:
中断模块11,用于当物体插入终端时,产生外部中断。
现在大部分的android设备一般只有电源和音量接口是物理接口,本实施例是通过音量接口插入第三方配件,当物体插入终端时,会首先产生一个外部中断,终端的耳机检测模块中的中断模块11会检测到该中断。
判断模块12,用于在产生所述外部中断后的设定时间内判断是否产生硬件中断。
为了区分插入终端的物体是耳机或快按钮,需要在产生外部中断后的设定时间内判断是否产生硬件中断。例如,该硬件中断可以是accdet中断。产生硬件中断的条件是硬件插入时引起终端内部电压的变化。
识别模块13,用于若判断的结果为否,识别所述物体为快按钮。
如果在产生外部中断后的设定时间内未产生硬件中断,则可识别该物体为快按钮。由于快按钮硬件结构的原因,当插入快按钮时,未达到引起终端内部电压变化的条件,不会产生硬件中断。
根据本发明实施例提供的一种终端,通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
图4为对图3所示的本发明实施例提供的一种终端进一步细化的流程示意图,该终端2000包括:
中断模块21,用于当物体插入终端时,产生外部中断。
本实施例是通过音量接口插入第三方配件,当物体插入终端时,会产生一个外部中断,终端的耳机检测模块中的中断模块21会检测到该中断。
判断模块22,在产生所述外部中断后的设定时间内判断是否产生硬件中断。
本实施例中,该判断模块22包括检测单元221和确定单元222。
检测单元221,用于启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值。
其中,所述全局变量预设为所述第一设定值。
确定单元222,用于若所述设定时间内所述全局变量仍为所述第一设定值,确定未产生硬件中断。
所述确定单元222还用于若所述全局变量变为第二设定值,确定产生硬件中断。
识别模块23,用于若确定未产生硬件中断,识别所述物体为快按钮。
所述识别模块23还用于若确定产生硬件中断,识别所述物体为耳机。
需在设定时间内判断是否产生硬件中断,具体地,预先定义一个耳机检测模块中的全局变量quick_button_flag=false。在外部中断中启动一个定时器,一段时间(例如100ms)后去检测quick_button_flag是否等于true,当quick_button_flag的值等于true,则确定产生硬件中断,认为这是耳机插入;当quick_button_flag的值等于false,则确定未产生硬件中断,识别该物体为快按钮。在该具体示例中,第一设定值为false,第二设定值为true。
修改模块24,用于将所述全局变量改为所述第一设定值。
在确定quick_button_flag的值等于true时,在定时器函数中改变这个变量的值,而且只在耳机第一次插入时改变为true。
上报模块25,用于在第一次按下后释放快按钮时,上报释放事件,并在所述释放事件中将所述快按钮作为4段式耳机上报。
由于快按钮是靠耳机hook事件来驱动,而android系统中只有4段式耳机才支持耳机hook事件,所以只有将快按钮当做4段式耳机上报。
第一次按下后释放快按钮,在这个过程中会触发accdet中断,并检测快按钮的类型,按下与释放按钮都会产生accdet中断,我们在释放按钮时检测出来的状态中将快按钮作为4段式耳机上报。
当第一次操作快按钮(即按下并释放快按钮)将快按钮作为4段式耳机类型上报后,后面再去操作快按钮按键就会当做耳机hook事件上报。操作系统根据耳机hook事件来控制应用程序的打开与关闭。
根据本发明实施例提供的一种终端,通过对插入终端的物体产生的中断进行判断,判断是否先产生外部中断,而后设定时间内不再产生硬件中断,可以识别该物体为快按钮,从而可以使终端能快速识别快按钮,支持快按钮控制应用程序的打开与关闭。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(Digital Subscriber Line,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种快按钮识别方法,其特征在于,所述方法包括:
当物体插入终端时,产生外部中断;
在产生所述外部中断后的设定时间内判断是否产生硬件中断;在所述物体插入时所述终端内部电压有变化,则产生了硬件中断,否则未产生硬件中断;
若判断的结果为否,识别所述物体为快按钮,启动快按钮控制应用程序;
在所述快按钮第一次被按下和释放时产生accdet中断,其中在按下后检测状态,在释放时使用accdet中断上报释放事件,且将所述快按钮作为4段式耳机上报;
在将所述快按钮作为4段式耳机上报后,若所述快按钮的被按压产生耳机hook事件,通过所述hook事件控制应用程序打开或关闭。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若判断的结果为是,识别所述物体为耳机。
3.如权利要求2所述的方法,其特征在于,所述在产生所述外部中断后的设定时间内判断是否产生硬件中断,包括:
启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值,其中,所述全局变量预设为所述第一设定值;
若所述设定时间内所述全局变量仍为所述第一设定值,确定未产生硬件中断。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述全局变量变为第二设定值,确定产生硬件中断;
所述方法还包括:
将所述全局变量改为所述第一设定值。
5.一种终端,其特征在于,所述终端包括:
中断模块,用于当物体插入终端时,产生外部中断;
判断模块,用于在产生所述外部中断后的设定时间内判断是否产生硬件中断;在所述物体插入时所述终端内部电压有变化,则产生了硬件中断,否则未产生硬件中断;
识别模块,用于若判断的结果为否,识别所述物体为快按钮;
还包括:启动快按钮控制应用程序的模块;
上报模块,用于在所述快按钮第一次被按下和释放时产生accdet中断,其中在按下后检测状态,在释放时使用accdet中断上报释放事件,且在检测的状态中将所述快按钮作为4段式耳机上报;
还包括:在将所述快按钮作为4段式耳机上报后,若所述快按钮的被按压产生耳机hook事件,通过所述hook事件控制应用程序打开或关闭的模块。
6.如权利要求5所述的终端,其特征在于,所述识别模块还用于:
若判断的结果为是,识别所述物体为耳机。
7.如权利要求6所述的终端,其特征在于,所述判断模块包括:
检测单元,用于启动计时器,在所述计时器计时的设定时间内检测耳机检测模块中的全局变量是否为第一设定值,其中,所述全局变量预设为所述第一设定值;
确定单元,用于若所述设定时间内所述全局变量仍为所述第一设定值,确定未产生硬件中断。
8.如权利要求7所述的终端,其特征在于,所述确定单元还用于:
若所述全局变量变为第二设定值,确定产生硬件中断;
所述终端还包括:
修改模块,用于将所述全局变量改为所述第一设定值。
CN201610070558.6A 2016-01-29 2016-01-29 一种快按钮识别方法及终端 Active CN105740070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610070558.6A CN105740070B (zh) 2016-01-29 2016-01-29 一种快按钮识别方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610070558.6A CN105740070B (zh) 2016-01-29 2016-01-29 一种快按钮识别方法及终端

Publications (2)

Publication Number Publication Date
CN105740070A CN105740070A (zh) 2016-07-06
CN105740070B true CN105740070B (zh) 2019-07-02

Family

ID=56241964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610070558.6A Active CN105740070B (zh) 2016-01-29 2016-01-29 一种快按钮识别方法及终端

Country Status (1)

Country Link
CN (1) CN105740070B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101626412A (zh) * 2009-08-10 2010-01-13 上海闻泰电子科技有限公司 一种具有多功能耳机插座的移动终端电路及其实现方法
CN102158779A (zh) * 2011-03-31 2011-08-17 惠州Tcl移动通信有限公司 一种耳机插座及其实现方法
CN203896410U (zh) * 2013-08-06 2014-10-22 保科特姆公司 耦接至智能手机的端口的选择装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103779123A (zh) * 2014-01-22 2014-05-07 哈尔滨艺佳化工有限公司 一种手机快按钮

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101626412A (zh) * 2009-08-10 2010-01-13 上海闻泰电子科技有限公司 一种具有多功能耳机插座的移动终端电路及其实现方法
CN102158779A (zh) * 2011-03-31 2011-08-17 惠州Tcl移动通信有限公司 一种耳机插座及其实现方法
CN203896410U (zh) * 2013-08-06 2014-10-22 保科特姆公司 耦接至智能手机的端口的选择装置

Also Published As

Publication number Publication date
CN105740070A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN103077341B (zh) 一种应用程序解锁方法及装置
CN105100445A (zh) 信息提醒方法、装置及终端
US11445285B2 (en) Interactive control method and device of an earphone case, earphone case and storage medium
CN105262904A (zh) 一种信息提醒方法及用户终端
CN105404161A (zh) 智能语音交互方法和装置
CN113411794A (zh) 一种连接方法、蓝牙耳机、终端及计算机存储介质
CN104639745A (zh) 语音提示方法及装置
CN106782498B (zh) 语音信息播放方法、装置及终端
CN104967719A (zh) 一种联系人信息提示方法及终端
CN105451223A (zh) 信息的监控方法、装置和移动终端
CN105653007A (zh) 一种节省电量的方法、装置及电子设备
CN105929941B (zh) 信息处理方法、装置和终端设备
CN104615931A (zh) 提示框显示控制方法及装置
CN105740070B (zh) 一种快按钮识别方法及终端
CN110310636A (zh) 交互控制方法、装置、设备及音频设备
CN106686747B (zh) 控制微信语音播报的方法、装置及可穿戴设备
CN110868347A (zh) 消息提示方法、装置和系统
CN105402987A (zh) 一种冰箱及其控制方法
CN105846223B (zh) Usb接口塞、控制方法及装置
CN106161768B (zh) 一种通话设备选取方法及装置
CN106156022B (zh) 一种信息处理方法及电子设备
CN108966140B (zh) 网络控制方法、系统、移动终端及存储介质
CN108536512A (zh) 界面切换方法、装置及终端设备
CN106708243B (zh) 终端设备控制方法及装置
CN104503736A (zh) 一种信息提示方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.