The present disclosure generally relates to portable electronic devices, and more specifically to portable electronic devices that support customization.
Modern smartphones and tablet computers are equipped with high-resolution displays, as well as integrated digital cameras that capture high quality still pictures and videos. In addition to the camera and video features, smartphones can provide myriad other features. The features can include communication features, such as sending text messages and making voice calls. Additionally, the features can include engaging in social networking activities, internet browsing, navigation and mapping, online shopping, health and fitness, gaming, and more. As modern smartphones are useful for much more than voice calls, people often take their smartphones with them everywhere they go. Accordingly, a smartphone can also serve as an accessory for users in a wide variety of settings and activities. Décor enhances the visual appeal of a room, and can the tone and style of the space, making the space visually pleasing and inviting. Well-chosen decor elements can turn an ordinary room into an extraordinary one. Furthermore, décor allows individuals to express their personality, tastes, and interests. That is, décor provides a way for individuals to showcase their unique style and create a space that reflects their identity.
The description of the illustrative embodiments can be read in conjunction with the accompanying figures. It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the figures presented herein, in which:
According to aspects of the present disclosure, an electronic device, a method, and a computer program product provides techniques for ambience style adaptation of different portions of an adaptive display device. The device includes a flexible electronic display, that is mounted in a flexible enclosure that enables the display to be bent into a configuration for use in a surface support configuration, such as standing on a desk or table. The device further includes a processor communicatively coupled to the electronic display, and which obtains context data from one or more data sources, wherein the context data is associated with one or more of a user and an environment surrounding the electronic device, and determines a device context. Based on the device context, a customization display theme for the electronic device is loaded, and the customization display theme is presented on the display of the electronic device.
Flexible display technology can enable displays that can be bent, curved, rolled, or otherwise flexed without losing their functionality. Flexible displays are made possible through the use of special materials and manufacturing techniques, and they have a wide range of potential applications in various industries. In one or more embodiments, the flexible displays are comprised of materials that can bend or stretch without breaking. Common materials include organic light-emitting diodes (OLEDs). Organic light-emitting diode displays can be used in disclosed embodiments, and provide the advantage of not requiring a separate backlight, allowing them to be made thinner and more flexible compared to traditional LCD displays. One or more embodiments may utilize Active-Matrix Organic Light-Emitting Diode (AMOLED) displays, which are a type of OLED display with an active-matrix control scheme, enabling improved resolution and response time compared to passive matrix OLEDs.
Flexible display technology enables features of the disclosed embodiments that are not possible on a traditional ‘candy bar’ style of smartphone. The ability for electronic devices to have displays that can fold or curve, provides different visible regions or sections along the display, where one viewer can observe one display region/section while another observer can observe a different display region/section of the same electronic device. The present disclosure takes advantage of this curved or foldable quality of the flexible display to create logical display partitions that separate the regions/sections into different displays for presenting different content. As one aspect of the disclosure, the multiple logical display regions enable disclosed embodiments to provide informational content in one logical display region, while providing non-informational content in another logical display region, and where each logical display region is at a different viewing angle with respect to each other.
The informational content can include presentation of data such as a date, time of day, weather information, stock tickers, video playback, conference calls, health and fitness information, and so on. The non-informational content can include designs, images (including images derived from generative artificial intelligence (AI)), and so on. In one or more embodiments, the non-informational content is selected based on an environment surrounding the electronic device, such as colors of walls, objects in the area, and so on. In one or more embodiments, the non-informational content is selected based on apparel being worn by the user. According to one aspect, electronic devices in accordance with disclosed embodiments can enable ambiance style adaptation of different portions of an adaptive display in a surface display configuration. The surface display configuration can include placing the flexible electronic device on a substantially flat surface such as a desk, table, or counter. In one or more configurations, the electronic device renders an image based on an environment surrounding the electronic device. In one or more embodiments, multiple logical display regions are created in the electronic device, where informational content is displayed on at least one logical display region, and non-informational content, such as a decoration, is displayed on at least one other logical display region. The processor segregates the two different display regions into separate logical display regions, each receiving respective inputs from a graphics processing unit (GPU) rendering the content being displayed. Accordingly, disclosed embodiments can combine functionality with a room décor accessory that adapts to environmental conditions such as surroundings and apparel, and/or other factors such as location, local or national holidays, and so on.
One or more embodiments can include an electronic device including: a flexible electronic display mounted in an enclosure that enables the display to be bent into a configuration for use in a surface support configuration, the configuration visually separating the display into a first display region and a second display region. The electronic device includes at least one image capturing device that captures images within a corresponding field of view and acquires image content. The electronic device further includes a processor communicatively coupled to the at least one image capturing device and the display, and which: obtains, from one or more data sources, context data associated with one or more of a user and an environment surrounding the electronic device; determines a device context based on the context data; loads a customization display theme for the electronic device, based on the device context; and presents the customization display theme on at least one of the first and the second display regions of the display of the electronic device. In one or more embodiments, the configuration is a stand configuration, with a first portion of the display abutting a supporting surface and a second remaining portion of the display extending away from the supporting surface and visible. The processor: logically partitions the first and second portions into corresponding first and second display regions of the display and uses only the second display region for presenting viewable content; and renders and presents the customization display theme on only the second display region of the display.
In one or more embodiments, to determine the device context, the processor identifies characteristics of the environment surrounding the electronic device. The processor then renders, on the electronic display, an image corresponding to one or more of the identified characteristics to at least partially correspond to an ambiance of the environment.
In one or more embodiments, the configuration is a tent configuration, with the first display region corresponding to a first side of the tent configuration and the second display region corresponding to a second side of the tent configuration. The processor, in response to determining that the enclosure is bent in the tent configuration: logically partitions the electronic display into the first display region and the second display region; and separately renders and presents selected content on respective ones of the first display region and the second display region of the display, the selected content including at least the customization display theme presented on at least one of the first or the second display region. In one or more embodiments, the processor enables the electronic device to: output informational content associated with the device context in the first display region; and output non-informational content in the second display region. In one or more embodiments, to output non-informational content in the second display region, the processor initiates a generative artificial intelligence (AI) process that creates an image that is rendered in the second display region. In one or more embodiments, to obtain context data, the processor obtains, from a calendar system, a calendar event associated with the electronic device, wherein the customization display theme is selected based on the calendar event. One or more embodiments can include an audio capturing device communicatively coupled to the processor, and where determining a device context based on the context data is further based on received audio content from the audio capturing device.
In one or more embodiments, a communication interface is provided that enables the electronic device to connect to and transmit instructions to a second electronic device. To determine a device context based on the context data, the processor: transmits the context data (e.g., the preview image(s), location data, etc.) to the second electronic device and also transmits an instruction to the second electronic device to cause the second electronic device to provide the customization display theme to the electronic device; and receives the customization display theme from the second electronic device. The second electronic device, which can be a customization server, in one embodiment, is pre-programmed to respond to a communication of the preview images or other context data with a request for context identification from the first electronic device by performing a search for and retrieval of corresponding image(s) to complete the customization request.
One or more embodiments involves implementation of a method that includes: obtaining, by a processor of an electronic device that comprises a flexible electronic display, context data from one or more data sources, wherein the context data is associated with one or more of a user and an environment surrounding the electronic device. The flexible electronic display is mounted in an enclosure that enables the display to be bent into a configuration for use in a surface support configuration, the configuration visually separating the display into a first display region and a second display region. The method includes: determining a device context based on the context data; loading a customization display theme for the electronic device, based on the device context; and presenting the customization display theme on at least one of the first and the second display regions of the electronic device.
One or more embodiments provide a computer program product that includes a non-transitory computer readable medium having program instructions that when executed by a processor of an electronic device that comprises a flexible electronic display, the program instructions configure the electronic device to perform functions including: obtaining, by the processor, context data from one or more data sources, wherein the context data is associated with one or more of a user and an environment surrounding the electronic device; determining a device context based on the context data; loading a customization display theme for the electronic device, based on the device context; and presenting the customization display theme on the display of the electronic device.
The above descriptions contain simplifications, generalizations and omissions of detail and is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features, and advantages of the claimed subject matter will be or will become apparent to one with skill in the art upon examination of the figures and the remaining detailed written description. The above as well as additional objectives, features, and advantages of the present disclosure will become apparent in the following detailed description.
Each of the above and below described features and functions of the various different aspects, which are presented as operations performed by the processor(s) of the communication/electronic devices are also described as features and functions provided by a plurality of corresponding methods and computer program products, within the various different embodiments presented herein. In the embodiments presented as computer program products, the computer program product includes a non-transitory computer readable storage device having program instructions or code stored thereon, which enables the electronic device and/or host electronic device to complete the functionality of a respective one of the above-described processes when the program instructions or code are processed by at least one processor of the corresponding electronic/communication device, such as is described above.
In the following description, specific example embodiments in which the disclosure may be practiced are described in sufficient detail to enable those skilled in the art to practice the disclosed embodiments. For example, specific details such as specific method orders, structures, elements, and connections have been presented herein. However, it is to be understood that the specific details presented need not be utilized to practice embodiments of the present disclosure. It is also to be understood that other embodiments may be utilized and that logical, architectural, programmatic, mechanical, electrical and other changes may be made without departing from the general scope of the disclosure. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and equivalents thereof.
References within the specification to “one embodiment,” “an embodiment,” “embodiments”, or “one or more embodiments” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation (embodiment) of the present disclosure. The appearance of such phrases in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Further, various features are described which may be exhibited by some embodiments and not by others. Similarly, various aspects are described which may be aspects for some embodiments but not for other embodiments.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element (e.g., a person or a device) from another.
It is understood that the use of specific component, device and/or parameter names and/or corresponding acronyms thereof, such as those of the executing utility, logic, and/or firmware described herein, are for example only and not meant to imply any limitations on the described embodiments. The embodiments may thus be described with different nomenclature and/or terminology utilized to describe the components, devices, parameters, methods and/or functions herein, without limitation. References to any specific protocol or proprietary name in describing one or more elements, features or concepts of the embodiments are provided solely as examples of one implementation, and such references do not limit the extension of the claimed embodiments to embodiments in which different element, feature, protocol, or concept names are utilized. Thus, each term utilized herein is to be provided its broadest interpretation given the context in which that term is utilized.
Those of ordinary skill in the art will appreciate that the hardware components and basic configuration depicted in the following figures may vary. For example, the illustrative components within electronic device 100 (
Within the descriptions of the different views of the figures, the use of the same reference numerals and/or symbols in different drawings indicates similar or identical items, and similar elements can be provided similar names and reference numerals throughout the figure(s). The specific identifiers/names and reference numerals assigned to the elements are provided solely to aid in the description and are not meant to imply any limitations (structural or functional or otherwise) on the described embodiments.
Referring now to the figures and beginning with
Electronic device 100 includes processor 102 (typically as a part of a processor integrated circuit (IC) chip), which includes processor resources such as central processing unit (CPU) 103a, communication signal processing resources such as digital signal processor (DSP) 103b, graphics processing unit (GPU) 103c, and hardware acceleration (HA) unit 103d. In some embodiments, the hardware acceleration (HA) unit 103d may establish direct memory access (DMA) sessions to route network traffic to various elements within electronic device 100 without direct involvement from processor 102 and/or operating system 124. Processor 102 can interchangeably be referred to as controller 102.
Controller 102 can, in some embodiments, include image signal processors (ISPs) (not shown) and dedicated artificial intelligence (AI) engines 105. Controller 102 is communicatively coupled to storage device 104, system memory 120, input devices (introduced below), output devices, including integrated flexible display 130, and image capture device (ICD) controller 134. Flexible display 130 is capable of being bent and/or folded to enable a display that can support multiple logical display regions, and where each logical display region has a different viewing angle with respect to other logical display regions on flexible display 130.
According to one or more embodiments, ICD controller 134 performs or supports functions such as, but not limited to, selecting and activating an active camera from among multiple cameras and adjusting the camera settings and characteristics (e.g., shutter speed, f/stop, ISO exposure, zoom control, field of view (FOV) angle, etc.) of the active camera. ICD controller 134 can perform these functions in response to commands received from processor 102 in order to control ICDs 132, 133 to capture video or still images of a local scene within a FOV of the operating/active ICD. Throughout the disclosure, the term image capturing device (ICD) is utilized interchangeably to be synonymous with and/or refer to any one of the cameras 132, 133. Both sets of cameras 132, 133 include image sensors that can capture images that are within the field of view (FOV) of the respective camera 132, 133.
In one or more embodiments, the functionality of ICD controller 134 is incorporated within processor 102, eliminating the need for a separate ICD controller. Thus, for simplicity in describing the features presented herein, the various camera selection, activation, and configuration functions performed by the ICD controller 134 are described as being provided generally by processor 102. Similarly, manipulation of captured images and videos are typically performed by GPU 103c and certain aspects of device communication via wireless networks are performed by DSP 103b, with support from CPU 103a. However, for simplicity in describing the features of the disclosure, the functionality provided by one or more of CPU 103a, DSP 103b, GPU 103c, and ICD controller 134 are collectively described as being performed by processor 102. Collectively, components integrated within processor 102 support computing, classifying, processing, transmitting and receiving of data and information, and presenting of graphical images within a display.
System memory 120 may be a combination of volatile and non-volatile memory, such as random-access memory (RAM) and read-only memory (ROM). System memory 120 can store program code or similar data associated with firmware 122, an operating system 124, and/or applications 126. During device operation, processor 102 processes program code of the various applications, modules, OS, and firmware, that are stored in system memory 120.
In accordance with one or more embodiments, applications 126 include, without limitation, flexible display module (FDM) 152, other applications, indicated as 154, 156 and 157, and communication module 158. Each module and/or application provides program instructions/code that are processed by processor 102 to cause processor 102 and/or other components of electronic device 100 to perform specific operations, as described herein. Descriptive names assigned to these modules add no functionality and are provided solely to identify the underlying features performed by processing the different modules. For example, flexible display module 152 includes program instructions for facilitating ambiance style adaptation of different portions of an adaptive display device in a surface support configuration.
In one or more embodiments, electronic device 100 includes removable storage device (RSD) 136, which is inserted into RSD interface 138 that is communicatively coupled via system interlink to processor 102. In one or more embodiments, RSD 136 is a non-transitory computer program product or computer readable storage device encoded with program code and corresponding data, and RSD 136 can be interchangeably referred to as a non-transitory computer program product. RSD 136 may have a version of one or more of the applications (e.g., 152, 154, 156, 158) and specifically flexible display module 152 stored thereon. Processor 102 can access RSD 136 to provision electronic device 100 with program code that, when executed/processed by processor 102, the program code causes or configures processor 102 and/or generally electronic device 100, to provide the various ambiance style adaptation functions described herein.
Electronic device 100 includes an integrated display 130 which incorporates a tactile, touch screen interface 131 that can receive user tactile/touch input. As a touch screen device, integrated display 130 allows a user to provide input to or to control electronic device 100 by touching features within the user interface presented on display 130. Tactile, touch screen interface 131 can be utilized as an input device. The touch screen interface 131 can include one or more virtual buttons, indicated generally as 115. In one or more embodiments, when a user applies a finger on the touch screen interface 131 in the region demarked by the virtual button 115, the touch of the region causes the processor 102 to execute code to implement a function associated with the virtual button. In some implementations, integrated display 130 is integrated into a front surface of electronic device 100 along with front ICDs, while the higher quality ICDs are located on a rear surface. In one or more embodiments, the flexible display 130 can include materials that can bend or stretch without breaking. These materials can include, but are not limited to, organic light-emitting diodes (OLEDs). Organic light-emitting diode displays can be used in disclosed embodiments. One or more embodiments may utilize Active-Matrix Organic Light-Emitting Diode (AMOLED) displays, which are a type of OLED display with an active-matrix control scheme, enabling improved resolution and response time compared to passive matrix OLEDs. The electronic device 100 may further include a flexible and deformable enclosure, that enables the electronic device 100 to be shaped into a variety of positions for use on a flat surface such as a table, or worn as a wearable electronic device.
Electronic device 100 can further include microphone 108, one or more output devices such as speakers 144, and one or more input buttons, indicated as 107a and 107b. While two buttons are shown in
Electronic device 100 further includes haptic touch controls 145, vibration device 146, fingerprint/biometric sensor 147, global positioning system (GPS) module 160, and motion sensor(s) 162. Vibration device 146 can cause electronic device 100 to vibrate or shake when activated. Vibration device 146 can be activated during an incoming call or message in order to provide an alert or notification to a user of electronic device 100. According to one aspect of the disclosure, integrated display 130, speakers 144, and vibration device 146 can generally and collectively be referred to as output devices.
Biometric sensor 147 can be used to read/receive biometric data, such as fingerprints, to identify or authenticate a user. In some embodiments, the biometric sensor 147 can supplement an ICD (camera) for user detection/identification. Electronic device 100 can further include on-body sensor 149, which may include a capacitive sensor, electrodermal sensor, or other suitable sensor type to determine when the electronic device 100 is being used as a wearable device
GPS module 160 can provide time data and location data about the physical location of electronic device 100 using geospatial input received from GPS satellites. Motion sensor(s) 162 can include one or more accelerometers 163 and gyroscope 164. Motion sensor(s) 162 can detect movement of electronic device 100 and provide motion data to processor 102 indicating the spatial orientation and movement of electronic device 100. Accelerometers 163 measure linear acceleration of movement of electronic device 100 in multiple axes (X, Y and Z). Gyroscope 164 measures rotation or angular rotational velocity of electronic device 100. Electronic device 100 further includes a housing 137 (generally represented by the thick exterior rectangle) that contains/protects the components internal to electronic device 100.
Electronic device 100 also includes a physical interface 165. Physical interface 165 of electronic device 100 can serve as a data port and can be coupled to charging circuitry 135 and device battery 143 to enable recharging of device battery 143.
Electronic device 100 further includes wireless communication subsystem (WCS) 142, which can represent one or more front end devices (not shown) that are each coupled to one or more antennas 148. In one or more embodiments, WCS 142 can include a communication module with one or more baseband processors or digital signal processors, one or more modems, and a radio frequency (RF) front end having one or more transmitters and one or more receivers. Example communication module 158 within system memory 120 enables electronic device 100 to communicate with wireless communication network 176 and with other devices, such as calendar system 117, which can store events such as national and regional holidays, as well as personal events such as birthdays and anniversaries, as well as server 175 and other connected devices, via one or more of data, audio, text, and video communications. Communication module 158 can support various communication sessions by electronic device 100, such as audio communication sessions, video communication sessions, text communication sessions, exchange of data, and/or a combined audio/text/video/data communication session. In one or more embodiments, server 175 is configured to receive preview image(s) of the field of view of the ICDs 132, 133 of electronic device 100, and to perform analysis and/or computations to provide images corresponding to a customization display theme to the electronic device 100.
WCS 142 and antennas 148 allow electronic device 100 to communicate wirelessly with wireless communication network 176 via transmissions of communication signals to and from network communication devices, such as base stations or cellular nodes, of wireless communication network 176. Wireless communication network 176 further allows electronic device 100 to wirelessly communicate with calendar system 117, server 175, and other communication devices, which can be similarly connected to wireless communication network 176. In one or more embodiments, various functions that are being performed on communications device 100 can be supported using or completed via/on server 175.
Electronic device 100 can also wirelessly communicate, via wireless interface(s) 178, with wireless communication network 176 via communication signals transmitted by short range communication device(s) to and from an external WiFi router (or wireless transceiver device) 180, which is communicatively connected to wireless communication network 176. Wireless interface(s) 178 can be a short-range wireless communication component providing Bluetooth, near field communication (NFC), and/or wireless fidelity (Wi-Fi) connections. In one embodiment, electronic device 100 can receive Internet or Wi-Fi based calls, text messages, multimedia messages, and other notifications via wireless interface(s) 178. In one or more embodiments, electronic device 100 can communicate wirelessly with external wireless device 166, such as a WiFi router or BT transceiver, via wireless interface(s) 178. In an embodiment, WCS 142 with antenna(s) 148 and wireless interface(s) 178 collectively provide wireless communication interface(s) of electronic device 100. The device 100 of
Device 200 may include one or more image capturing devices, indicated at 204, 206, and 208. While three image capturing devices are shown on device 200, other embodiments may include more or fewer image capturing devices. Furthermore, while device 200 includes two image capturing devices (204 and 206) near first end 211 and one image capturing device 208 near second end 213, other embodiments may include a different arrangement of image capturing devices. With the integrated image capturing devices, one or more embodiments of the disclosure can include capturing preview images (by the image capturing devices 204, 206, 208) and transmitting received preview image(s) to a second electronic device to cause the second electronic device to provide the customization display theme to the electronic device; and receiving images corresponding to the customization display theme from the second electronic device
In combination, the auxiliary computing device 320 and the flexible electronic device 310 can perform the functions of a conventional electronic device, such as a smartphone. Moreover, the system 300 can work to perform the equivalent functions of any number of other devices as well, including tablet computers, gaming devices, multimedia players, and so on. In one or more embodiments, the auxiliary computing device 320 can be configured as a “puck” or box that can be conveniently carried in a pocket, purse, backpack, and the like. In one or more embodiments, the auxiliary computing device 320 includes a device housing but has no primary display. In these embodiments, the flexible electronic device 310 functions as the primary display for the system 300. Accordingly, disclosed embodiments that utilize an auxiliary computing device enable flexible electronic device 310 to be lighter, enabling more comfort when flexible electronic device 310 is being used as a wearable computing device. One or more embodiments can include transmitting the context data to a second electronic device; transmitting an instruction to the second electronic device to cause the second electronic device to provide the customization display theme to the electronic device; and receiving the customization display theme from the second electronic device.
When flexible electronic device 400 is placed in the stand configuration as shown in
In one or more embodiments, a processor within device 400, contributes to the rendering of image 418 and/or the selection process for determining which image is to be rendered on display 402. The selection process can include performing an assessment of an environment surrounding the electronic device 400. The assessment can include acquiring environmental information including, but not limited to, one or more images via onboard cameras (e.g., 132 and 133 of
Similarly, flexible electronic device 610 can render non-informational content, which is shown at 624, on first logical display partition 614. and the non-informational content can include a design, photograph, video clip, animation, and/or other non-informational content. In one or more embodiments, an integrated camera (e.g., 508 as shown in
Referring now to the flowcharts presented by
One or more embodiments of the method 900 can include: determining that the enclosure is bent into a tent configuration with the first display region corresponding to a first side of the tent configuration and the second display region corresponding to a second side of the tent configuration; logically partitioning the electronic display into the first display region and the second display region; and separately rendering and presenting selected content on respective ones of the first display region and the second display region of the display, the selected content including at least the customization display theme presented on one of the first or the second display region. One or more embodiments of the method 900 can include: outputting informational content associated with the device context in the first display region; and outputting non-informational content in the second display region.
The customization display theme can include images. The images can be photographs, illustrations, animated GIFs, and so on. The images can be included as wallpapers for a background image for a home screen and/or lock screen of an electronic device. The customization display theme can include font information. The font information can include a font type, font color, font size, and/or font style. The customization display theme can include a user interface theme. For example, the menu theme can include style and/or placement of user interface elements such as dropdown menus, radio buttons, checkboxes, and the like. Other customization display theme elements are possible in disclosed embodiments.
As can now be appreciated, disclosed embodiments provide a flexible, deformable, electronic device that can be bent into one or more configurations that enable logical display partitions that face in different directions. One or more embodiments enable the display of non-informational content in one or more logical display partitions while simultaneously providing informational content in at least one other logical display partition. Thus, one or more embodiments provide a décor accessory that can dynamically change based on user context, while also providing functionality via informational content that is presented to a user of the electronic device.
In the above-described methods, one or more of the method processes may be embodied in a computer readable device containing computer readable code such that operations are performed when the computer readable code is executed on a computing device. In some implementations, certain operations of the methods may be combined, performed simultaneously, in a different order, or omitted, without deviating from the scope of the disclosure. Further, additional operations may be performed, including operations described in other methods. Thus, while the method operations are described and illustrated in a particular sequence, use of a specific sequence or operations is not meant to imply any limitations on the disclosure. Changes may be made with regards to the sequence of operations without departing from the spirit or scope of the present disclosure. Use of a particular sequence is therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined only by the appended claims.
Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language, without limitation. These computer program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine that performs the method for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. The methods are implemented when the instructions are executed via the processor of the computer or other programmable data processing apparatus.
As will be further appreciated, the processes in embodiments of the present disclosure may be implemented using any combination of software, firmware, or hardware. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment or an embodiment combining software (including firmware, resident software, micro-code, etc.) and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable storage device(s) having computer readable program code embodied thereon. Any combination of one or more computer readable storage device(s) may be utilized. The computer readable storage device may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage device can include the following: a portable computer diskette, a hard disk, a random-access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage device may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Where utilized herein, the terms “tangible” and “non-transitory” are intended to describe a computer-readable storage medium (or “memory”) excluding propagating electromagnetic signals, but are not intended to otherwise limit the type of physical computer-readable storage device that is encompassed by the phrase “computer-readable medium” or memory. For instance, the terms “non-transitory computer readable medium” or “tangible memory” are intended to encompass types of storage devices that do not necessarily store information permanently, including, for example, RAM. Program instructions and data stored on a tangible computer-accessible storage medium in non-transitory form may afterwards be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via a communication medium such as a network and/or a wireless link.
The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the disclosure. The described embodiments were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
As used herein, the term “or” is inclusive unless otherwise explicitly noted. Thus, the phrase “at least one of A, B, or C” is satisfied by any element from the set {A, B, C} or any combination thereof, including multiples of any element.
While the disclosure has been described with reference to example embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the disclosure. In addition, many modifications may be made to adapt a particular system, device, or component thereof to the teachings of the disclosure without departing from the scope thereof. Therefore, it is intended that the disclosure not be limited to the particular embodiments disclosed for carrying out this disclosure, but that the disclosure will include all embodiments falling within the scope of the appended claims.