Patent Publication Number: US-11030846-B2

Title: Electronic gaming machines with pressure sensitive inputs for detecting objects

Description:
BACKGROUND 
     Embodiments described herein relate to providing input for gaming devices, and in particular to pressure inputs for gaming devices, and related devices, systems, and methods. 
     Gaming devices, such as electronic gaming machines (gaming devices), may provide input devices for facilitating play of a game by a player at the gaming device, and for providing additional interactive functionality at the gaming device. Many conventional gaming devices employ relatively simple input devices, such as buttons or keypads, which limit the features and functionality that can be offered at the gaming device. 
     BRIEF SUMMARY 
     Some embodiments herein are directed to gaming devices. Such gaming devices include an input device comprising multiple input locations and a pressure sensor to detect, for each input location, an amount of pressure applied to the input device at the input location by a player of the gaming device. A processor circuit and a memory coupled to the processing circuit are included. The memory includes machine-readable instructions that, when executed by the processor circuit, cause the processor circuit to receive, from the input device, multiple pressure parameter values corresponding to an amount of pressure being applied to a portion of the input locations, determine a pressure pattern that corresponds to locations of the first portion of input locations, and based on the pressure parameter values and the pressure pattern, determine an identification of an object that is on the input device. 
     Some embodiments herein are directed to methods that include operations of detecting, by a pressure sensor that includes multiple input locations, an amount of pressure being applied to a portion of the input locations, generating, by the pressure sensor, a pressure parameter value corresponding to the amount of pressure being applied to the portion of the input locations, determining a pressure pattern that corresponds to the portion of the input locations, and, based on the pressure parameter value and the pressure pattern, determining an object type corresponding to an object that is on the pressure sensor. 
     Some embodiments herein are directed to a system that includes a processor circuit and a memory coupled to the processor circuit. The memory includes machine-readable instructions that, when executed by the processor circuit, cause the processor circuit to receive, from a pressure sensor of an input device that includes multiple input locations, a first pressure parameter value corresponding to a first amount of pressure being applied to a first portion of the input locations, receive, from the pressure sensor, a second pressure parameter value corresponding to a second amount of pressure being applied to a second portion of the input locations and, based on the first and second pressure parameter values and the first and second portions of the input locations, identifying first and second objects at the first and second portions of the input locations. 
    
    
     
       BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is a schematic block diagram illustrating a network configuration for a plurality of gaming devices according to some embodiments. 
         FIG. 2A  is a perspective view of a gaming device that can be configured according to some embodiments. 
         FIG. 2B  is a schematic block diagram illustrating an electronic configuration for a gaming device according to some embodiments. 
         FIG. 2C  is a schematic block diagram that illustrates various functional modules of a gaming device according to some embodiments. 
         FIG. 2D  is perspective view of a gaming device that can be configured according to some embodiments. 
         FIG. 2E  is a perspective view of a gaming device according to further embodiments. 
         FIG. 3  is a schematic diagram that illustrates various components of an input device according to some embodiments. 
         FIG. 4  is a flowchart illustrating operations of systems/methods according to some embodiments. 
         FIG. 5A  is a diagram that illustrates a schematic perspective view of a surface of an input device having an object placed thereon in accordance with some embodiments. 
         FIG. 5B  is a diagram that illustrates a schematic perspective view of the surface of input device in  FIG. 5A  with the object removed from view in accordance with some embodiments. 
         FIG. 6A  is a diagram that illustrates a schematic perspective view of a surface of an input device having an object placed thereon in accordance with some embodiments. 
         FIG. 6B  is a diagram that illustrates a schematic perspective view of the surface of input device in  FIG. 6A  with the object removed from view in accordance with some embodiments. 
         FIG. 7A  is a diagram that illustrates a schematic perspective view of a surface of an input device having an object placed thereon in accordance with some embodiments. 
         FIG. 7B  illustrates a schematic perspective view of the surface of input device in  FIG. 7A  with the object removed from view in accordance with some embodiments. 
         FIG. 8A  is a diagram that illustrates a schematic perspective view of a surface of an input device having an object placed thereon in accordance with some embodiments. 
         FIG. 8B  is a diagram that illustrates a schematic perspective view of the surface of input device in  FIG. 8A  with the object removed from view in accordance with some embodiments. 
         FIG. 8C  is a diagram that illustrates a schematic perspective view of a bottom surface of the object of  FIG. 8A  that includes a plurality of contact points according to some embodiments. 
         FIG. 9  is a diagram that illustrates a schematic perspective view of a surface of an input device having an image drawn thereon in accordance with some embodiments. 
         FIG. 10  is a flowchart illustrating operations according to some embodiments. 
         FIG. 11  is a flowchart illustrating operations according to some embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     Referring to  FIG. 1 , a gaming system  10  including a plurality of gaming devices  100  is illustrated. As discussed above, the gaming devices  100  may be one type of a variety of different types of gaming devices, such as electronic gaming machines (EGMs), mobile devices, or other devices, for example. The gaming system  10  may be located, for example, on the premises of a gaming establishment, such as a casino. The gaming devices  100 , which are typically situated on a casino floor, may be in communication with each other and/or at least one central controller  40  through a data communication network  50  that may include a remote communication link. The data communication network  50  may be a private data communication network that is operated, for example, by the gaming facility that operates the gaming devices  100 . Communications over the data communication network  50  may be encrypted for security. The central controller  40  may be any suitable server or computing device which includes at least one processing circuit and at least one memory or storage device. Each gaming device  100  may include a processing circuit that transmits and receives events, messages, commands or any other suitable data or signal between the gaming device  100  and the central controller  40 . The gaming device processing circuit is operable to execute such communicated events, messages or commands in conjunction with the operation of the gaming device  100 . Moreover, the processing circuit of the central controller  40  is configured to transmit and receive events, messages, commands or any other suitable data or signal between the central controller  40  and each of the individual gaming devices  100 . In some embodiments, one or more of the functions of the central controller  40  may be performed by one or more gaming device processing circuits. Moreover, in some embodiments, one or more of the functions of one or more gaming device processing circuits as disclosed herein may be performed by the central controller  40 . 
     A wireless access point  60  provides wireless access to the data communication network  50 . The wireless access point  60  may be connected to the data communication network  50  as illustrated in  FIG. 1 , and/or may be connected directly to the central controller  40  or another server connected to the data communication network  50 . 
     A player tracking server  45  may also be connected through the data communication network  50 . The player tracking server  45  may manage a player tracking account that tracks the player&#39;s gameplay and spending and/or other player preferences and customizations, manages loyalty awards for the player, manages funds deposited or advanced on behalf of the player, and other functions. Player information managed by the player tracking server  45  may be stored in a player information database  47 . 
     As further illustrated in  FIG. 1 , the gaming system  10  may include a ticket server  90  that is configured to print and/or dispense wagering tickets. The ticket server  90  may be in communication with the central controller  40  through the data network  50 . Each ticket server  90  may include a processing circuit that transmits and receives events, messages, commands or any other suitable data or signal between the ticket server  90  and the central controller  40 . The ticket server  90  processing circuit may be operable to execute such communicated events, messages or commands in conjunction with the operation of the ticket server  90 . Moreover, in some embodiments, one or more of the functions of one or more ticket server  90  processing circuits as disclosed herein may be performed by the central controller  40 . 
     The gaming devices  100  communicate with one or more elements of the system  10  to coordinate providing wagering games and other functionality. For example, in some embodiments, the gaming device  100  may communicate directly with the ticket server  90  over a wireless interface  62 , which may be a WiFi link, a Bluetooth link, an NFC link, etc. In other embodiments, the gaming device  100  may communicate with the data communication network  50  (and devices connected thereto, including other gaming devices  100 ) over a wireless interface  64  with the wireless access point  60 . The wireless interface  64  may include a WiFi link, a Bluetooth link, an NFC link, etc. In still further embodiments, the gaming devices  100  may communicate simultaneously with both the ticket server  90  over the wireless interface  66  and the wireless access point  60  over the wireless interface  64 . Some embodiments provide that gaming devices  100  may communicate with other gaming devices over a wireless interface  64 . In these embodiments, wireless interface  62 , wireless interface  64  and wireless interface  66  may use different communication protocols and/or different communication resources, such as different frequencies, time slots, spreading codes, etc. 
     Embodiments herein may include different types of gaming devices. One example of a gaming device includes a gaming device  100  that can use pressure and time sensitive inputs according to various embodiments is illustrated in  FIGS. 2A, 2B, and 2C  in which  FIG. 2A  is a perspective view of a gaming device  100  illustrating various physical features of the device,  FIG. 2B  is a functional block diagram that schematically illustrates an electronic relationship of various elements of the gaming device  100 , and  FIG. 2C  illustrates various functional modules that can be stored in a memory device of the gaming device  100 . The embodiments shown in  FIGS. 2A to 2C  are provided as examples for illustrative purposes only. It will be appreciated that gaming devices may come in many different shapes, sizes, layouts, form factors, and configurations, and with varying numbers and types of input and output devices, and that embodiments of the inventive concepts are not limited to the particular gaming device structures described herein. 
     Gaming devices  100  typically include a number of standard features, many of which are illustrated in  FIGS. 2A and 2B . For example, referring to  FIG. 2A , a gaming device  100  may include a support structure, housing or cabinet  105  which provides support for a plurality of displays, inputs, outputs, controls and other features that enable a player to interact with the gaming device  100 . 
     The gaming device  100  illustrated in  FIG. 2A  includes a number of display devices, including a primary display device  116  located in a central portion of the cabinet  105  and a secondary display device  118  located in an upper portion of the cabinet  105 . A plurality of game components  155  are displayed on a display screen  117  of the primary display device  116 . It will be appreciated that one or more of the display devices  116 ,  118  may be omitted, or that the display devices  116 ,  118  may be combined into a single display device. The gaming device  100  may further include a player tracking display  140 , a credit display  120 , and a bet display  122 . The credit display  120  displays a player&#39;s current number of credits, cash, account balance or the equivalent. The bet display  122  displays a player&#39;s amount wagered. Locations of these displays are merely illustrative as any of these displays may be located anywhere on the gaming device  100 . 
     The player tracking display  140  may be used to display a service window that allows the player to interact with, for example, their player loyalty account to obtain features, bonuses, comps, etc. In other embodiments, additional display screens may be provided beyond those illustrated in  FIG. 2A . In some embodiments, one or more of the player tracking display  140 , the credit display  120  and the bet display  122  may be displayed in one or more portions of one or more other displays that display other game related visual content. For example, one or more of the player tracking display  140 , the credit display  120  and the bet display  122  may be displayed in a picture in a picture on one or more displays. 
     The gaming device  100  may further include a number of pressure sensitive input devices  130  that allow a player to provide various inputs to the gaming device  100 , either before, during or after a game has been played. The gaming device may further include a game play initiation button  132  and a cashout button  134 . The cashout button  134  is utilized to receive a cash payment or any other suitable form of payment corresponding to a quantity of remaining credits of a credit display. 
     In some embodiments, one or more input devices of the gaming device  100  are one or more game play activation devices that are each used to initiate a play of a game on the gaming device  100  or a sequence of events associated with the gaming device  100  following appropriate funding of the gaming device  100 . The example gaming device  100  illustrated in  FIGS. 2A and 2B  includes a game play activation device in the form of a game play initiation button  132 . It should be appreciated that, in other embodiments, the gaming device  100  begins game play automatically upon appropriate funding rather than upon utilization of the game play activation device. 
     In some embodiments, one or more pressure sensitive input device  130  of the gaming device  100  may include wagering or betting functionality. For example, a maximum wagering or betting function may be provided that, when utilized, causes a maximum wager to be placed. Another such wagering or betting function is a repeat the bet device that, when utilized, causes the previously-placed wager to be placed. A further such wagering or betting function is a bet one function. A bet is placed upon utilization of the bet one function. The bet is increased by one credit each time the bet one device is utilized. Upon the utilization of the bet one function, a quantity of credits shown in a credit display (as described below) decreases by one, and a number of credits shown in a bet display (as described below) increases by one. 
     In some embodiments, one or more of the display screens may a touch-sensitive display that includes a digitizer  152  and a touchscreen controller  154  ( FIG. 2B ). The player may interact with the gaming device  100  by touching virtual buttons on one or more of the display devices  116 ,  118 ,  140 . Accordingly, any of the above described input devices, such as the pressure sensitive input device  130 , the game play initiation button  132  and/or the cashout button  134  may be provided as virtual buttons or regions on one or more of the display devices  116 ,  118 ,  140 . 
     Referring briefly to  FIG. 2B , operation of the primary display device  116 , the secondary display device  118  and the player tracking display  140  may be controlled by a video controller  30  that receives video data from a processing circuit  12  or directly from a memory device  14  and displays the video data on the display screen. The credit display  120  and the bet display  122  are typically implemented as simple LCD or LED displays that display a number of credits available for wagering and a number of credits being wagered on a particular game. Accordingly, the credit display  120  and the bet display  122  may be driven directly by the processing circuit  12 . In some embodiments however, the credit display  120  and/or the bet display  122  may be driven by the video controller  30 . 
     Referring again to  FIG. 2A , the display devices  116 ,  118 ,  140  may include, without limitation: a cathode ray tube, a plasma display, a liquid crystal display (LCD), a display based on light emitting diodes (LEDs), a display based on a plurality of organic light-emitting diodes (OLEDs), a display based on polymer light-emitting diodes (PLEDs), a display based on a plurality of surface-conduction electron-emitters (SEDs), a display including a projected and/or reflected image, or any other suitable electronic device or display mechanism. In certain embodiments, as described above, the display devices  116 ,  118 ,  140  may include a touch-screen with an associated touch-screen controller  154  and digitizer  152 . The display devices  116 ,  118 ,  140  may be of any suitable size, shape, and/or configuration. The display devices  116 ,  118 ,  140  may include flat or curved display surfaces. 
     The display devices  116 ,  118 ,  140  and video controller  30  of the gaming device  100  are generally configured to display one or more game and/or non-game images, symbols, and indicia. In certain embodiments, the display devices  116 ,  118 ,  140  of the gaming device  100  are configured to display any suitable visual representation or exhibition of the movement of objects; dynamic lighting; video images; images of people, characters, places, things, and faces of cards; and the like. In certain embodiments, the display devices  116 ,  118 ,  140  of the gaming device  100  are configured to display one or more virtual reels, one or more virtual wheels, and/or one or more virtual dice. In other embodiments, certain of the displayed images, symbols, and indicia are in mechanical form. That is, in these embodiments, the display device  116 ,  118 ,  140  includes any electromechanical device, such as one or more rotatable wheels, one or more reels, and/or one or more dice, configured to display at least one or a plurality of game or other suitable images, symbols, or indicia. 
     The gaming device  100  also includes various features that enable a player to deposit credits in the gaming device  100  and withdraw credits from the gaming device  100 , such as in the form of a payout of winnings, credits, etc. For example, the gaming device  100  may include a ticket dispenser  136 , a bill/ticket acceptor  128 , and a coin acceptor  126  that allows the player to deposit coins into the gaming device  100 . 
     As illustrated in  FIG. 2A , the gaming device  100  may also include a currency dispenser  137  that may include a note dispenser configured to dispense paper currency and/or a coin generator configured to dispense coins or tokens in a coin payout tray. 
     The gaming device  100  may further include one or more speakers  150  controlled by one or more sound cards  28  ( FIG. 2B ). The gaming device  100  illustrated in  FIG. 2A  includes a pair of speakers  150 . In other embodiments, additional speakers, such as surround sound speakers, may be provided within or on the cabinet  105 . Moreover, the gaming device  100  may include built-in seating with integrated headrest speakers. 
     In various embodiments, the gaming device  100  may generate dynamic sounds coupled with attractive multimedia images displayed on one or more of the display devices  116 ,  118 ,  140  to provide an audio-visual representation or to otherwise display full-motion video with sound to attract players to the gaming device  100  and/or to engage the player during gameplay. In certain embodiments, the gaming device  100  may display a sequence of audio and/or visual attraction messages during idle periods to attract potential players to the gaming device  100 . The videos may be customized to provide any appropriate information. 
     The gaming device  100  may further include a card reader  138  that is configured to read magnetic stripe cards, such as player loyalty/tracking cards, chip cards, and the like. In some embodiments, a player may insert an identification card into a card reader of the gaming device. In some embodiments, the identification card is a smart card having a programmed microchip or a magnetic strip coded with a player&#39;s identification, credit totals (or related data) and other relevant information. In other embodiments, a player may carry a portable device, such as a cell phone, a radio frequency identification tag or any other suitable wireless device, which communicates a player&#39;s identification, credit totals (or related data) and other relevant information to the gaming device. In some embodiments, money may be transferred to a gaming device through electronic funds transfer. When a player funds the gaming device, the processing circuit determines the amount of funds entered and displays the corresponding amount on the credit or other suitable display as described above. 
     In some embodiments, the gaming device  100  may include an electronic payout device or module configured to fund an electronically recordable identification card or smart card or a bank or other account via an electronic funds transfer to or from the gaming device  100 . 
       FIG. 2B  is a block diagram that illustrates logical and functional relationships between various components of a gaming device  100 . It should also be understood that components described in  FIG. 2B  may also be used in other computing devices, as desired, such as mobile computing devices for example. As shown in  FIG. 2B , the gaming device  100  may include a processing circuit  12  that controls operations of the gaming device  100 . Although illustrated as a single processing circuit, multiple special purpose and/or general purpose processors and/or processor cores may be provided in the gaming device  100 . For example, the gaming device  100  may include one or more of a video processor, a signal processor, a sound processor and/or a communication controller that performs one or more control functions within the gaming device  100 . The processing circuit  12  may be variously referred to as a “controller,” “microcontroller,” “microprocessor” or simply a “computer.” The processor may further include one or more application-specific integrated circuits (ASICs). 
     Various components of the gaming device  100  are illustrated in  FIG. 2B  as being connected to the processing circuit  12 . It will be appreciated that the components may be connected to the processing circuit  12  through a system bus, a communication bus and controller, such as a USB controller and USB bus, a network interface, or any other suitable type of connection. 
     The gaming device  100  further includes a memory device  14  that stores one or more functional modules  20 . Various functional modules  20  of the gaming device  100  will be described in more detail below in connection with  FIG. 2D . 
     The memory device  14  may store program code and instructions, executable by the processing circuit  12 , to control the gaming device  100 . The memory device  14  may also store other data such as image data, event data, player input data, random or pseudo-random number generators, pay-table data or information and applicable game rules that relate to the play of the gaming device. The memory device  14  may include random access memory (RAM), which can include non-volatile RAM (NVRAM), magnetic RAM (ARAM), ferroelectric RAM (FeRAM) and other forms as commonly understood in the gaming industry. In some embodiments, the memory device  14  may include read only memory (ROM). In some embodiments, the memory device  14  may include flash memory and/or EEPROM (electrically erasable programmable read only memory). Any other suitable magnetic, optical and/or semiconductor memory may operate in conjunction with the gaming device disclosed herein. 
     The gaming device  100  may further include a data storage device  22 , such as a hard disk drive or flash memory. The data storage  22  may store program data, player data, audit trail data or any other type of data. The data storage  22  may include a detachable or removable memory device, including, but not limited to, a suitable cartridge, disk, CD ROM, DVD or USB memory device. 
     The gaming device  100  may include a communication adapter  26  that enables the gaming device  100  to communicate with remote devices over a wired and/or wireless communication network, such as a local area network (LAN), wide area network (WAN), cellular communication network, or other data communication network. The communication adapter  26  may further include circuitry for supporting short range wireless communication protocols, such as Bluetooth and/or near field communications (NFC) that enable the gaming device  100  to communicate, for example, with a mobile communication device operated by a player. 
     The gaming device  100  may include one or more internal or external communication ports that enable the processing circuit  12  to communicate with and to operate with internal or external peripheral devices, such as eye tracking devices, position tracking devices, cameras, accelerometers, arcade sticks, bar code readers, bill validators, biometric input devices, bonus devices, button panels, card readers, coin dispensers, coin hoppers, display screens or other displays or video sources, expansion buses, information panels, keypads, lights, mass storage devices, microphones, motion sensors, motors, printers, reels, SCSI ports, solenoids, speakers, thumb drives, ticket readers, touch screens, trackballs, touchpads, wheels, and wireless communication devices. In some embodiments, internal or external peripheral devices may communicate with the processing circuit through a universal serial bus (USB) hub (not shown) connected to the processing circuit  12 . 
     In some embodiments, the gaming device  100  may include a sensor, such as a camera in communication with the processing circuit  12  (and possibly controlled by the processing circuit  12 ) that is selectively positioned to acquire an image of a player actively using the gaming device  100  and/or the surrounding area of the gaming device  100 . In one embodiment, the camera may be configured to selectively acquire still or moving (e.g., video) images and may be configured to acquire the images in either an analog, digital or other suitable format. The display devices  116 ,  118 ,  140  may be configured to display the image acquired by the camera as well as display the visible manifestation of the game in split screen or picture-in-picture fashion. For example, the camera may acquire an image of the player and the processing circuit  12  may incorporate that image into the primary and/or secondary game as a game image, symbol or indicia. 
     Various functional modules of that may be stored in a memory device  14  of a gaming device  100  are illustrated in  FIG. 2C . Referring to  FIG. 2C , the gaming device  100  may include in the memory device  14  a game module  20 A that includes program instructions and/or data for operating a hybrid wagering game as described herein. The gaming device  100  may further include a player tracking module  20 B, an electronic funds transfer module  20 C, an input device interface  20 D, an audit/reporting module  20 E, a communication module  20 F, an operating system  20 G and a random number generator  20 H. The player tracking module  20 B keeps track of the play of a player. The electronic funds transfer module  20 C communicates with a back-end server or financial institution to transfer funds to and from an account associated with the player. The input device interface  20 D interacts with input devices, such as the pressure sensitive input device  130 , as described in more detail below. The communication module  20 F enables the gaming device  100  to communicate with remote servers and other gaming devices using various secure communication interfaces. The operating system kernel  20 G controls the overall operation of the gaming device  100 , including the loading and operation of other modules. The random number generator  20 H generates random or pseudorandom numbers for use in the operation of the hybrid games described herein. 
     In some embodiments, a gaming device  100  comprises a personal device, such as a desktop computer, a laptop computer, a mobile device, a tablet computer or computing device, a personal digital assistant (PDA), or other portable computing devices. In some embodiments, the gaming device  100  may be operable over a wireless network, such as part of a wireless gaming system. In such embodiments, the gaming machine may be a hand-held device, a mobile device or any other suitable wireless device that enables a player to play any suitable game at a variety of different locations. It should be appreciated that a gaming device or gaming machine as disclosed herein may be a device that has obtained approval from a regulatory gaming commission or a device that has not obtained approval from a regulatory gaming commission. 
     For example, referring to  FIG. 2D , a gaming device  100 ′ may be implemented as a handheld device including a compact housing  105  on which is mounted a touchscreen display device  116  including a digitizer  152 . As described in greater detail with respect to  FIG. 3  below, one or more pressure sensitive input devices  130  may be included for providing functionality of for embodiments described herein. A camera  127  may be provided in a front face of the housing  105 . The housing  105  may include one or more speakers  150 . In the gaming device  100 ′, various input buttons described above, such as the cashout button, gameplay activation button, etc., may be implemented as soft buttons on the touchscreen display device  116  and/or pressure sensitive input device  130 . In this embodiment, the pressure sensitive input device  130  is integrated into the touchscreen display device  116 , but it should be understood that the pressure sensitive input device may also, or alternatively, be separate from the display device  116 . Moreover, the gaming device  100 ′ may omit certain features, such as a bill acceptor, a ticket generator, a coin acceptor or dispenser, a card reader, secondary displays, a bet display, a credit display, etc. Credits can be deposited in or transferred from the gaming device  100 ′ electronically. 
       FIG. 2E  illustrates a standalone gaming device  100 ″ having a different form factor from the gaming device  100  illustrated in  FIG. 2A . In particular, the gaming device  100 ″ is characterized by having a large, high aspect ratio, curved primary display device  116 ′ provided in the housing  105 , with no secondary display device. The primary display device  116 ′ may include a digitizer  152  to allow touchscreen interaction with the primary display device  116 ′. The gaming device  100 ″ may further include a player tracking display  140 , a pressure sensitive input device  130 , a bill/ticket acceptor  128 , a card reader  138 , and a ticket generator  136 . The gaming device  100 ″ may further include one or more cameras  127  to enable facial recognition and/or motion tracking. 
     Although illustrated as certain gaming devices, such as electronic gaming machines (EGMs) and mobile devices, similar functions and/or operations as described herein may include wagering stations that may include electronic game tables, conventional game tables including those involving cards, dice and/or roulette, and/or other wagering stations such as sports book stations, video poker games, skill-based games, virtual casino-style table games, or other casino or non-casino style games. Further, gaming devices according to embodiments herein may be implemented using other computing devices and mobile devices, such as smart phones, tablets, and/or personal computers, among others. 
     Referring now to  FIG. 3 , a schematic diagram of components of a pressure sensitive input device  130  is are illustrated, according to some embodiments. The pressure sensitive input device  130  includes a printed circuit board  302  having a two-dimensional array of sensor locations  304 . A pressure sensitive sensor  306  is located at each sensor location  304  to detect an amount of pressure being applied to the particular sensor location  304 , e.g., by a player applying pressure to the sensor location  304  as part of game play. The pressure sensitive sensor  306  may function in a variety of ways. In this example, the pressure sensitive sensors  306  are coupled to one or more controller circuits  308  via one or more conductive lines  310 . 
     In some embodiments, the conductive lines  310  and controller circuit  308  may also, or alternatively, provide capacitive and/or resistive touch screen and/or touch pad functionality. For example, the controller circuits  308  may determine a sensor location  304  through an increase in capacitance of particular conductive lines  310  that intersect at the particular sensor location  304 , caused by the player applying pressure to the particular sensor location  304 . In another example, the player applying pressure to the particular sensor location  304  may cause the conductive lines that intersect at the particular sensor location  304  to contact each other and conduct a current between the controller circuits  308 . In some examples, one or more individual pressure sensitive sensors  306  may associated with each respective sensor location  304 , with each individual pressure sensitive sensor  306  independently detecting pressure being applied at the particular sensor location  304 . Additional functionality may also include providing feedback, such as audio, visual, and/or haptic feedback, based on an amount of detected pressure at a particular sensor location  304 . 
     It should be understood that a wide variety of pressure sensitive sensors and/or input devices may be used to provide features and functionality described herein. For example, one suitable pressure sensitive input device for many embodiments described herein is the Sensel Morph touch interface, which includes an active area having an array of approximately 20,000 pressure sensors at a density of approximately 6500 sensors per inch. Each sensor is capable of sensing 32,000 levels of pressure in a range between 5 g and 5 kg. The interface can operate at different speeds and latencies, such as a full resolution mode at 125 Hz, which provides greater precision but higher latency (e.g., 8 ms), or a higher speed, lower resolution mode at 500 Hz, which provides lower latency (e.g., 2 ms) but with lower precision. 
     Some embodiments provide that human-machine interactions may be improved by providing a pressure-sensitive multi-touch input at gaming devices  100  to offer users more control and additional functionalities. Some embodiments may be further enhanced by including haptic feedback corresponding to a pressure-sensitive multi-touch input and based on the amount and/or duration of pressure applied thereto. 
     Embodiments herein may address a technical problem of not having a suitable physical interface for a player of a gaming device beyond mere discrete interfaces by providing a pressure sensitive input device  130  that may receive inputs based on physical contact with a player and/or an object placed thereon. For example, embodiments herein may detect objects placed on the input device  130  by measuring the pressure inputs at multiple places thereof. In response to identifying objects using the input device  130 , different actions of the gaming device may be triggered. Some embodiments provide that changes in pressure may be measured overtime to detect changes in the attributes and/or quantity of objects on the input device  130 . For example, the removal of a chip from a stack of chips may be detected. Similarly, the state of a beverage container being empty or nearly empty may be detected by changes in the pressure. 
     In some embodiments, the input device  130  may measure the shape of real coins placed thereon and use the value of the coins to trigger a bonus. For example, a player may be prompted to place objects on the input device  130  that match a specific weight to trigger a bonus or other game event. 
     Similarly, a chip may be detected based on the size and weight thereof. In some embodiments, a stack of chips may be identified by size and weight and the quantity of chips in the stack may be determined by the weight. In some embodiments, the removal of one or more chips from the stack may be detected based on the change in weight of the stack. 
     Other objects, such as consumable objects may be detected using the input device  130 . For example, a package of cigarettes may be detected based on the shape and weight thereof. In some embodiments, the number of cigarettes remaining in the package of cigarettes may be determined by the weight changes as the player consumes the cigarettes. In some embodiments, in response to determining that the package is empty or nearly empty, the gaming device may offer the player to have another package of cigarettes delivered. 
     In some embodiments, the consumable object may include a beverage container. Some embodiments provide that the input device  130  may detecting the beverage weight and reorder and/or offer to reorder when the beverage container is empty. For example, some embodiments provide the input device  130  is used as a cupholder that automatically provides a reorder function when the beverage container is gone or empty. 
     In some embodiments, detecting the weight and the change in weight of a beverage container may also be used to determine a consumption rate of the player to predict when the player will be finished with the beverage. In some embodiments, the consumption rate may be used to provide responsible gaming actions to restrict a gaming device once a player is determined to be too impaired for responsible gaming. 
     In some embodiments, an object may be provided that includes a surface that includes a specific shape. For example, an object may include a surface with a raised pattern that is a specific shape and/or symbol. In some embodiments, the object may include multiple surfaces that each include different shapes to be detected by the input device  130 . For example, a first surface may include a shape and/or symbol that corresponds to a different input to the gaming device. 
     In some embodiments, a player may be given a game piece for a board game that interacts with the gaming device. The bottom and/or other surface of each of the game pieces may have a different shape that may be tracked by the input device  130 . Some embodiments provide players may use the game pieces to modify the game theme and/or features supported by the game. In some embodiments, different game pieces may represent different types of bonus features, such as free games, pick a prize and/or other types of features. 
     In some embodiments, an object may include a surface with multiple different contact points that may be arranged in a specific pattern. For example, the contact points may include pins or bumps that are arranged to be read as a data value and or code. In some embodiments, the arrangement of contact points may correspond to a two dimensional and/or single dimensional array that is populated based on the corresponding code or value. In some embodiments, the arrangement of contact points may include non-linear arrangements of contact points, such as curved and/or partially circular. 
     In some embodiments, objects that appear substantially the same may be given to casino visitors. Such objects, however, may be distinctive in terms of weight and or surface characteristics, such as contact points, among others. In such embodiments, the objects may be configured to be read by the input device  130  and randomly determined to provide bonuses and/or other awards. 
     In some embodiments, a player may have an object with a specific shape and weight that may be associated with a player tracking account in lieu of a player tracking card. For example, the object may be configured to provide some indication of good luck to the player and may be selected by the player. 
     In some embodiments, shapes may be drawn on the input device  130  that correspond to objects. For example, shapes may be drawn with a finger and/or a stylus among others. In some embodiments, three-dimensional objects may be drawn by using a finger to define the x and y axis components and the force input to define the z axis components. In some embodiments, the pressure input  130  may determine the width of a stylus tip and/or the width of lines drawn. 
     In some embodiments, the player may draw a shape on the input device  130  such as a puzzle piece that may fit into a shape of a puzzle that may be defined by the gaming device. 
     In some embodiments, the object may be a mobile device, such as a mobile telephone. In such embodiments, a wireless interface may be activated for the mobile device to communicate with the gaming machine responsive to the input device  130  detecting the mobile device. Other objects that may be detected include coins, bills, keys and/or smart cards, among others. 
     Embodiments described herein may be implemented in various configurations for gaming devices  100 , including but not limited to: (1) a dedicated gaming device, wherein the computerized instructions for controlling any games (which are provided by the gaming device) are provided with the gaming device prior to delivery to a gaming establishment; and (2) a changeable gaming device, where the computerized instructions for controlling any games (which are provided by the gaming device) are downloadable to the gaming device through a data network when the gaming device is in a gaming establishment. In some embodiments, the computerized instructions for controlling any games are executed by at least one central server, central controller or remote host. In such a “thin client” embodiment, the central server remotely controls any games (or other suitable interfaces) and the gaming device is utilized to display such games (or suitable interfaces) and receive one or more inputs or commands from a player. In another embodiment, the computerized instructions for controlling any games are communicated from the central server, central controller or remote host to a gaming device local processor and memory devices. In such a “thick client” embodiment, the gaming device local processor executes the communicated computerized instructions to control any games (or other suitable interfaces) provided to a player. 
     In some embodiments, a gaming device may be operated by a mobile device, such as a mobile telephone, tablet other mobile computing device. For example, a mobile device may be communicatively coupled to a gaming device and may include a user interface that receives user inputs that are received to control the gaming device. The user inputs may be received by the gaming device via the mobile device. 
     In some embodiments, one or more gaming devices in a gaming system may be thin client gaming devices and one or more gaming devices in the gaming system may be thick client gaming devices. In another embodiment, certain functions of the gaming device are implemented in a thin client environment and certain other functions of the gaming device are implemented in a thick client environment. In one such embodiment, computerized instructions for controlling any primary games are communicated from the central server to the gaming device in a thick client configuration and computerized instructions for controlling any secondary games or bonus functions are executed by a central server in a thin client configuration. 
     The present disclosure contemplates a variety of different gaming systems each having one or more of a plurality of different features, attributes, or characteristics. It should be appreciated that a “gaming system” as used herein refers to various configurations of: (a) one or more central servers, central controllers, or remote hosts; (b) one or more gaming devices; and/or (c) one or more personal gaming devices, such as desktop computers, laptop computers, tablet computers or computing devices, personal digital assistants (PDAs), mobile telephones such as smart phones, and other mobile computing devices. 
     In certain such embodiments, computerized instructions for controlling any games (such as any primary or base games and/or any secondary or bonus games) displayed by the gaming device are executed by the central server, central controller, or remote host. In such “thin client” embodiments, the central server, central controller, or remote host remotely controls any games (or other suitable interfaces) displayed by the gaming device, and the gaming device is utilized to display such games (or suitable interfaces) and to receive one or more inputs or commands. In other such embodiments, computerized instructions for controlling any games displayed by the gaming device are communicated from the central server, central controller, or remote host to the gaming device and are stored in at least one memory device of the gaming device. In such “thick client” embodiments, the at least one processor of the gaming device executes the computerized instructions to control any games (or other suitable interfaces) displayed by the gaming device. 
     In some embodiments in which the gaming system includes: (a) a gaming device configured to communicate with a central server, central controller, or remote host through a data network; and/or (b) a plurality of gaming devices configured to communicate with one another through a data network, the data network is an internet or an intranet. In certain such embodiments, an internet browser of the gaming device is usable to access an internet game page from any location where an internet connection is available. In one such embodiment, after the internet game page is accessed, the central server, central controller, or remote host identifies a player prior to enabling that player to place any wagers on any plays of any wagering games. In one example, the central server, central controller, or remote host identifies the player by requiring a player account of the player to be logged into via an input of a unique username and password combination assigned to the player. It should be appreciated, however, that the central server, central controller, or remote host may identify the player in any other suitable manner, such as by validating a player tracking identification number associated with the player; by reading a player tracking card or other smart card inserted into a card reader (as described below); by validating a unique player identification number associated with the player by the central server, central controller, or remote host; or by identifying the gaming device, such as by identifying the MAC address or the IP address of the internet facilitator. In various embodiments, once the central server, central controller, or remote host identifies the player, the central server, central controller, or remote host enables placement of one or more wagers on one or more plays of one or more primary or base games and/or one or more secondary or bonus games, and displays those plays via the internet browser of the gaming device. 
     It should be appreciated that the central server, central controller, or remote host and the gaming device are configured to connect to the data network or remote communications link in any suitable manner. In various embodiments, such a connection is accomplished via: a conventional phone line or other data transmission line, a digital subscriber line (DSL), a T-1 line, a coaxial cable, a fiber optic cable, a wireless or wired routing device, a mobile communications network connection (such as a cellular network or mobile internet network), or any other suitable medium. It should be appreciated that the expansion in the quantity of computing devices and the quantity and speed of internet connections in recent years increases opportunities for players to use a variety of gaming devices to play games from an ever-increasing quantity of remote sites. It should also be appreciated that the enhanced bandwidth of digital wireless communications may render such technology suitable for some or all communications, particularly if such communications are encrypted. Higher data transmission speeds may be useful for enhancing the sophistication and response of the display and interaction with players. 
     By providing pressure sensitive input features, human machine interactions between players and gaming devices may be enhanced by offering players additional control and functionalities. Such functionality may include pushing the input device at a particular sensor location to exceed a defined pressure threshold and generate a response, such as a haptic response for example. This functionality may simulate pressing physical buttons or interaction with other mechanical devices in some examples. 
     In some examples, a detected amount of pressure at a particular sensor location may be combined with other pressure parameter values to determine a player&#39;s emotional state while playing the gaming device. For example, an input device  130  herein includes multiple input locations and a pressure sensor to detect, for each input location, an amount of pressure applied by a player to the input device  130  at the input location of the gaming device. 
     In this regard, reference is now made to  FIG. 4 , which is a flowchart illustrating operations  400  of systems/methods according to some embodiments. The operations  400  may include receiving multiple pressure parameter values corresponding to an amount of pressure being applied to a portion of multiple input locations on the input device (block  400 ). For example, the weight of an object that is placed on the input device  130  may cause the pressure sensors under the object to generate the pressure parameter values based on the weight of the object. Operations include determining a pressure pattern that corresponds to locations of the portion of input locations (block  404 ). The pressure pattern corresponds to the surfaces of the object that are in contact with the input device  130 . Based on the pressure parameter values and the pressure pattern, operations include determining an identification of the object that is on the input device  130  (block  406 ). For example, as discussed in greater detail below, the object may be identified based on the shape and/or configuration of the surface or surfaces contacting the input device  130 . In some embodiments, the weight of the object may also be used to perform the identification. 
     Some embodiments provide that determining the pressure pattern includes identifying a shape of a bottom surface of an object that is on the input device (block  408 ). Some embodiments provide the shape of the bottom surface may correspond to different objects that may reasonably be identified by the shape and/or dimensions thereof. For example, a beverage container may include a similar bottom surface shape as a casino gaming chip but may have different dimensions. 
     In some embodiments, a sum of the pressure parameter values corresponds to an object weight value. Operations for determining the identification of the object may be performed by identifying the object based on the shape and the object weight value (block  410 ). Some embodiments provide that identifying the object based on the shape and the object weight value includes comparing the object weight value to an object weight threshold value (block  412 ). For example, different objects may have the same bottom surface shape and/or dimensions, but different weights. Thus, based on the comparison, if the object weight value is less than the object weight threshold, the object may be identified as a first object. In the alternative, if the object weight value is not less than the object weight threshold, the object may be identified as a second object that has the same bottom surface shape as the first object. In some embodiments, different objects may be interpreted in the game play and thus may cause different game play interactions with the gaming device. 
     In some embodiments, the object may be a game piece that is used in a board game that interacts with the gaming device. Some embodiments provide that multiple objects are tracked as different game pieces based on each of the objects having different shaped bottom surfaces. In some embodiments, the different bottom surfaces may be generated by including raised and/or recessed portions thereof. 
     In some embodiments, operations include modifying a user interface element that is associated with the identification of the object (block  414 ). A user interface element may include any change in the game play and/or the operation of the gaming device or component thereof that may be performed based on the identification of the object on the input device  130 . For example, visual, audio and/or tactile elements of the game may be modified in response to the identification of the object. In some embodiments, bonuses, game inputs and/or awards may be provided in response to the identification of the object. 
       FIG. 5A  illustrates a schematic perspective view of a surface of an input device  130  having an object placed thereon in accordance with some embodiments.  FIG. 5B  illustrates a schematic perspective view of the surface of input device  130  in  FIG. 5A  with the object removed from view in accordance with some embodiments. 
     Referring to  FIGS. 5A and 5B , the input device  130  includes sensor locations  304  that are spaced apart from one another. In response to the object  500  being placed on the input device  130 , a portion of the sensor locations  304 A that are in contact with the bottom surface of the object  500  generate pressure parameter values that may be used to generate a pressure pattern that corresponds to the object. Thus, in this example, the bottom surface of the object  500  is illustrated as being generally rectangular, having specific dimensions and a specific aspect ratio. Such information corresponding to the pressure pattern may be used to identify the object  500 . 
     In some embodiments, a sum of the pressure parameter values corresponding to the portion of sensor locations  304 A may represent an object weight value. In some embodiments, the identification of the object may be based on the object weight value and the pressure pattern. In this manner, objects causing similar pressure patterns may be distinguished from one another based on the object weight value. 
     In some embodiments, the pressure pattern may be substantially the same over time while the object weight value may change. For example, a first object weight value may correspond to first pressure parameter values received at a first time and a second object weight value may correspond to second pressure parameter values received at a second time. In such embodiments, an object weight difference between the first object weight value and the second object weight value may be determined. 
     In some embodiments, the object may be identified as a mobile device, such as a mobile telephone. In such embodiments, the processor circuit may prompt a communication session between the mobile device and the gaming device based on the identification. 
       FIG. 6A  illustrates a schematic perspective view of a surface of an input device  130  having an object placed thereon in accordance with some embodiments.  FIG. 6B  illustrates a schematic perspective view of the surface of input device  130  in  FIG. 6A  with the object removed from view in accordance with some embodiments. 
     Referring to  FIGS. 6A and 6B , the input device  130  includes sensor locations  304  that are spaced apart from one another. In response to the object  500  being placed on the input device  130 , a portion of the sensor locations  304 A that are in contact with the bottom surface of the object  500  generate pressure parameter values that may be used to generate a pressure pattern that corresponds to the object. Thus, in this example, the bottom surface of the object  500  is illustrated as being generally circular, having a specific diameter and contact pattern. Such information corresponding to the pressure pattern may be used to identify the object  500 . 
     In some embodiments, the object is a container that includes contents and the processor circuit may be operable to determine a rate of consumption of contents in the container based on the object weight change as the player consumes the contents. Some embodiments provide that a game characteristic may be modified based on determining that the rate of consumption is greater than a player impairment threshold that defines a level of impairment of the player. For example, if a player consumes excess impairing contents, the game may be slowed down or restricted to promote responsible gaming principles. 
     In some embodiments, the changes in container weight values may cause a prompt for ordering another container to be presented to the player. Some embodiments provide that, based on the consumption rate, the time that the player will want another container may be predicted and an order for a new container may be placed before the player has requested the replacement. 
       FIG. 7A  illustrates a schematic perspective view of a surface of an input device  130  having an object placed thereon in accordance with some embodiments.  FIG. 7B  illustrates a schematic perspective view of the surface of input device  130  in  FIG. 7A  with the object removed from view in accordance with some embodiments. 
     Referring to  FIGS. 7A and 7B , the input device  130  includes sensor locations  304  as discussed above regarding  FIGS. 5A and 6A . In response to the object  500  being placed on the input device  130 , a portion of the sensor locations  304 A that are in contact with the bottom surface of the object  500  generate pressure parameter values that may be used to generate a pressure pattern that corresponds to the object. Thus, in this example, the bottom surface of the object  500  is illustrated as being generally circular, having a specific diameter and contact pattern. Such information corresponding to the pressure pattern may be used to identify the object  500  as a stack of casino chips. 
     In some embodiments, the quantity of casino chips may be determined based on the object weight value. Additionally, if a casino chip is added to or removed from the stack, the corresponding change in weight value of the stack of casino chips. Some embodiments provide that multiple different casino chips, coins or other objects having a determined value may be placed on the input device  130  at locations corresponding to different portions of the sensor locations  304 A and the aggregate value of the contents thereon may be determined based on the shapes and weights thereof. 
       FIG. 8A  illustrates a schematic perspective view of a surface of an input device  130  having an object placed thereon in accordance with some embodiments.  FIG. 8B  illustrates a schematic perspective view of the surface of input device  130  in  FIG. 8A  with the object removed from view in accordance with some embodiments.  FIG. 8C  illustrates a schematic view of a bottom surface of the object of  FIG. 8A  that includes a plurality of contact points according to some embodiments. 
     Referring to  FIGS. 8A and 8B , the input device  130  includes sensor locations  304  as discussed above regarding  FIGS. 5A and 6A . In response to the object  500  being placed on the input device  130 , a portion of the sensor locations  304 A that are in contact with the bottom surface of the object  500  generate pressure parameter values that may be used to generate a pressure pattern that corresponds to the object. As provided in  FIG. 8B , the portion of sensor locations  304 A correspond to multiple contact points that are on the bottom surface  510  of the object  500 . For example, referring to  FIG. 8C , the bottom surface  510  of the object includes multiple contact points that contact the input device  130  when placed thereon. In some embodiments, the positions of the contact points relative to one another corresponds to encoded data that may be decoded by the processor circuit. In some embodiments, the pattern of contact points may define a symbol such as a shape, number and/or letter among others. In other embodiments, the pattern of contact points defines a code, such a two-dimensional code, a linear code and/or a non-linear code. 
     Brief reference is now made to  FIG. 9 , which illustrates a schematic perspective view of a surface of an input device  130  having an image drawn thereon in accordance with some embodiments. The image  900  may be drawn using a finger and/or stylus among others. Some embodiments provide that the portion of input locations corresponds to the locations that a user contacts and the pressure pattern corresponds to a shape that is defined by the portion of input locations. In some embodiments, the shape corresponding to the pressure pattern may be identified as the image  900 . Some embodiments provide that portions of the image may have different characteristic based on the amount of pressure being applied during the contact. For example, some embodiments provide that the width of the pen tip or line stroke may be increased corresponding to an increase in the pressure applied during the contact. 
     Reference is now made to  FIG. 10 , which is a flowchart illustrating operations according to some embodiments. Operations include detecting, by a pressure sensor that includes multiple input locations, an amount of pressure being applied to a portion of the input locations (block  1002 ) and generating, by the pressure sensor, a pressure parameter value corresponding to the amount of pressure being applied to the portion of the input locations (block  1004 ). Operations may further include determining a pressure pattern that corresponds to the portion of the input locations (block  1006 ) and, based on the pressure parameter value and the pressure pattern, determining an object type corresponding to an object that is on the pressure sensor (block  1008 ). 
     Some embodiments include determining a specific object type among multiple object types that have the same pressure pattern (block  1010 ). The specific object type may be determined based on different pressure amounts being applied to the pressure sensor  130 . For example, some object types have the same shape contact surface but may have different object weight values. In some embodiments, a bonus is awarded based on determining the specific object type using the pressure sensor (block  1012 ). 
     Reference is now made to  FIG. 11 , which is a flowchart illustrating operations according to some embodiments. Operations may include receiving, from a pressure sensor of an input device that includes multiple input locations, a first pressure parameter value corresponding to a first amount of pressure being applied to a first portion of the input locations (block  1102 ). Operations include receiving a second pressure parameter value corresponding to a second amount of pressure being applied to a second portion of the input locations (block  1104 ). Based on the first and second pressure parameter values and the first and second portions of input locations, first and second objects at the first and second portions of the input locations are identified (block  1106 ). For example, different items such as coins or chips may be placed on the input device such that the different items have an aggregate value that may be determined by the pressure parameter values. 
     The user interface element(s) may be modified in many different ways, in response to different pressure and time combinations. For example, in response to the first pressure parameter value satisfying a predetermined pressure threshold, the user interface element may be modified to display a modified user interface element at a display device of the gaming device. Similarly, in response to the first pressure parameter value failing to satisfy the predetermined pressure threshold, the user interface element to may be modified to display another modified user interface element at the display device of the gaming device. 
     Alternatively, or in addition, the user interface element may be modified in response to the time value satisfying a predetermined time threshold, to display a modified user interface element at a display device of the gaming device, and/or, in response to the time value failing to satisfy the predetermined time threshold, to display different modified user interface elements at the display device. For example, in response to the first pressure parameter value satisfying a predetermined pressure threshold and the time value satisfying a predetermined time threshold, an audio device volume may be modified (i.e., increased or decreases) at a first predetermined rate, and in response to the first pressure parameter value failing to satisfy the predetermined pressure threshold and the time value satisfying the predetermined time threshold, the audio device volume may be modified at a second, lower, predetermined rate. In response to the first pressure parameter value satisfying the predetermined pressure threshold, the audio device volume may be modified by a particular volume amount if the time value fails to satisfy the predetermined time threshold, and may be modified by a lower volume amount lower than the first predetermined volume amount if the time value satisfies the predetermined time threshold. 
     In the above-description of various embodiments, various aspects may be illustrated and described herein in any of a number of patentable classes or contexts including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, various embodiments described herein may be implemented entirely by hardware, entirely by software (including firmware, resident software, micro-code, etc.) or by combining software and hardware implementation that may all generally be referred to herein as a “circuit,” “module,” “component,” or “system.” Furthermore, various embodiments described herein may take the form of a computer program product comprising one or more computer readable media having computer readable program code embodied thereon. 
     Any combination of one or more computer readable media may be used. The computer readable media may be a computer readable signal medium or a non-transitory computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, 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 medium would 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), an appropriate optical fiber with a repeater, 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 medium may be any tangible non-transitory medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. 
     A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. 
     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 such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS). 
     Various embodiments were described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), devices and computer program products according to various embodiments described herein. 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. These computer program instructions may be provided to a processing circuit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing circuit of the computer or other programmable instruction execution apparatus, create a mechanism for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
     These computer program instructions may also be stored in a non-transitory computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
     The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
     The terminology used herein is for the purpose of describing particular aspects 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, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items and may be designated as “/”. Like reference numbers signify like elements throughout the description of the figures. 
     Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, all embodiments can be combined in any way and/or combination, and the present specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the embodiments described herein, and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.