A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. Copyright 2011, WMS Gaming, Inc.
Embodiments of the inventive subject matter relate generally to wagering game systems, and more particularly to wagering game systems including display of third party content on a wagering game machine.
Wagering game machines, such as slot machines, video poker machines and the like, have been a cornerstone of the gaming industry for several years. Generally, the popularity of such machines depends on the likelihood (or perceived likelihood) of winning money at the machine and the intrinsic entertainment value of the machine relative to other available gaming options. Where the available gaming options include a number of competing wagering game machines and the expectation of winning at each machine is roughly the same (or believed to be the same), players are likely to be attracted to the most entertaining and exciting machines. Shrewd operators consequently strive to employ the most entertaining and exciting machines, features, and enhancements available because such machines attract frequent play and hence increase profitability to the operator. Therefore, there is a continuing need for wagering game machine manufacturers to continuously develop new games and gaming enhancements that will attract frequent play.
Embodiments of the invention are illustrated in the Figures of the accompanying drawings in which:
This description of the embodiments is divided into six sections. The first section provides an introduction to some example embodiments, while the second section describes an example of selected components of wagering game architecture. The third section describes example operations performed by some embodiments and the fourth section describes another example wagering game architecture. The fifth section describes an example wagering game machine in more detail. The sixth section presents some general comments.
This section provides an introduction to some example embodiments. Some example embodiments monitor and govern the display of unauthorized and/or authorized third party content on a wagering game machine. Some example embodiments preclude or at least hinder the display of unauthorized third party content on a wagering game machine. Some other example embodiments monitor and authenticate authorized third party content to allow such content on displays of a wagering game machine
In some situations, third parties are hijacking one or more displays of a wagering game machine to display their own content. For example, a third party may want to replace an image being displayed on one of the displays with advertising content. Accordingly, the third party may attempt to replace or include their content on one of the displays of the wagering game machine. The displays that are being hijacked may or may not be displaying content that is relevant to actual wagering game play.
For example, third parties may convince operators of wagering game establishments to allow their third party content (e.g., advertising content) to be added to one or more displays of the wagering game machines. The operators of the wagering game establishment may only allow third party content on secondary displays of the machines because such displays typically do not include actual wagering game play. However, in some configurations, secondary displays of the wagering game machine can be displaying bonus content that is relevant to actual wagering game play. Alternatively, these second displays can be displaying data regarding the theme, the jackpot amount, various winning levels and combinations, etc.
In some situations, instead of replacing content, a third party may add their content to an existing image on a display of the wagering game machine. Accordingly, the original display content of the wagering game machine is squeezed, distorted, etc. In exchange for allowing such access, the operators of the wagering game establishments can be compensated by third parties. The operators can therefore allow third parties access to the internal hardware of the wagering game machine. The third parties can insert their own hardware (e.g., video mixer) in the wagering game machine. The third parties can install their hardware at different points between the main processor (that creates the video frames for display) and the display monitors. For example, the third parties can install their hardware between the video card and the display monitor. During operation, this third party hardware intercepts display content and processes (e.g., replaces, alters, etc.) the display content. The third party hardware then forwards these processed display content to the display monitor for display. As noted above, this hardware can replace original display content with their own display content (e.g., advertising), add their own display content by altering or squeezing down the original display content, etc.
Even if the original display content remains after alteration by the third party hardware; the fonts, numbers, graphics, etc. of the original display content may be distorted to a point of being unreadable. This alteration of the original content can be even more problematic for touch screen displays. In particular, the third party hardware can alter the content of the touch screen display to a point where button selection locations on the touch screen are moved too far from their original locations. This is particularly problematic for experienced players who assume that touch screen buttons will be in the same location for a given wagering game machine. In particular, an experienced player can select the wrong button because they are selecting buttons based on where the buttons were originally located on the display monitor. Specifically, an experienced player can be viewing the game play and not the display of button locations (assuming that the button locations will remain constant).
Also of particularly concern is the lack of control over what display content is being displayed by the third party hardware. For example, the third party hardware could alter the content regarding the jackpot amount or various winning combinations for the wagering game machine. Accordingly, the altered content may misrepresent the amount of the jackpot or various winning combinations. For example, the original display content on a secondary display can indicate that the jackpot is $50,000. However, the display content can be altered or distorted to a level that the amount of the jackpot appears to be a much larger amount (e.g., $150,000). Accordingly, the operators can be liable for additional monies when a player wins the jackpot for this wagering game machine because of the distortions of the display content caused by the third party hardware.
Additionally, altering or replacing original content can destroy the look-and-feel of the wagering game machine. Altering or replacing original content can also affect the immersive game play psychology. In particular, game play of a player can be affected by what is shown on the displays of the wagering game machine. For example, a player may not play a wagering game machine if they do not like the third party advertising being displayed thereon. To illustrate, a player may not want to play a wagering game machine having a family friendly theme (e.g., Wizard of Oz) if the third party content is advertising for a hard liquor.
The display or display monitor as defined herein can include a display for images or video, touch screens, mirrors, etc. The display for images or video can include images or video for wagering game play and non-wagering game play. An example of a video or image of non-wagering game play can comprise an image or video that identifies the theme of a wagering game machine. This is in contrast to a display of the wagering game play itself (e.g., the reels for a video slot machine, cards of video poker, etc.). The term “display content” as defined herein can include any image or video being displayed on one of the displays of a wagering game machine.
This section describes an example operating environment and presents structural aspects of some embodiments. This section includes discussion about of a part of a wagering game machine architecture and a display monitor for a wagering game machine.
The main processor 106 also loads the display output module 111 for execution to generate display content (e.g., video, images, etc.) for display on one or more display monitors of the wagering game machine 100. In this example, the wagering game machine 100 includes one display monitor (a display monitor 118). In some applications, the wagering game machine 100 can comprise multiple display monitors. For example, a main display monitor can display the actual wagering game play. A secondary display monitor can display a theme, jackpot amounts, bonus content, progressive jackpot gaming content, etc. A touch screen or display buttons are another type of display monitor, where content can be displayed. The players can select the touch screens or display buttons as inputs as part of the wagering game play. Accordingly, the display output module 111 can generate display content for display to any or all of these types of display monitors.
The wagering game machine 100 also includes a video card 112 that is communicatively coupled to the carrier board 104 through a bus 130. In some example embodiments, the bus 130 comprises a Peripheral Component Interconnection (PCI) bus. The video card 112 includes a video card module 114 for processing of video, images, etc. received from the execution of the display output module 111. The video card module 114 processes the video, images, etc. for display on the display monitor 118. The video card module 114 can be hardware, software, firmware or a combination thereof.
The wagering game machine 100 includes a display monitor 118 having a display 119 and a monitor module 116. The monitor module 116 is communicatively coupled to the video card module 114 through a cable 133. In some example embodiments, the cable 133 comprises a High Definition Multimedia Interface (HDMI) interface or a Digital Visual Interface (DVI) interface. In some other example embodiments, the cable 133 can be a Video Graphics Array (VGA) cable, a coaxial cable, composite video cable, component video cable, Separate Video (S-Video) cable, etc.
In some example embodiments, the cable 133 is an armored cable. Also, the cable 133 can be coupled to the video card 112 and the display monitor 118 using an epoxy or some other type of adhesive. Such a configuration can preclude a third party from easily removing the cable 133 and placing hardware and additional cables there between. For example, a third party may attempt to add new hardware and a T cable configuration for coupling the video card 112 to the new hardware that is then coupled to the display monitor 118. As described herein, this new hardware can replace or alter the display content that is transmitted from the display output module 111 to the monitor module 116 through the video card 112.
The monitor module 116 also processes the video, images, etc. prior to display on the display monitor 118. For example, the monitor module 116 can process the data based on specific manufacturing standards or requirements for the display monitor 118 (e.g., a resolution level, refresh rate, etc.).
In response to detection (using pixel encoding, embedded images and/or challenge-response authentication) that the display content has been changed or altered, the monitor module 116 generates a hijacking notification 134 that is transmitted back to the display output module 111. The display output module 111 can perform a number of different corrective operations in response to the hijacking. For example, the display output module 111 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. Alternatively or in addition, the monitor module 116 can shut down the display monitor 118, without or without communication back to the display output module 111. Pixel encoding, embedded images and/or challenge-response authentication for monitoring changes or alterations in the display content can be performed together or separately.
In some example embodiments, the display output module 111 encrypts the display content that is being transmitted between the carrier board 104 and the display monitor 118. For example, the display content can be encrypted using High Bandwidth Digital Content Protection (HDCP). In another example, the encryption can be based on Public Key Infrastructure (PKI). The encryption can be a public key encryption (e.g., Diffie-Hellman, Rivest, Shamir and Adleman (RSA), etc.). The encryption can also be a private key encryption (e.g., (e.g., Data Encryption Standard (DES), Advanced Encryption Standard (AES)). In some example embodiments, Transport Layer Security (TLS) or Secure Sockets Layer (SSL) protocols are used for transmitting display content to from the carrier board 104 to the display monitor 118. The encryption can also include Pretty Good Privacy (PGP), GNU Privacy Guard (GPG), etc. These different types of encryption can further hinder a man-in-the-middle attack positioned between the different components within the wagering game machine 100. In particular, new hardware added by a third party would be required to decrypt the display content in order to replace or alter the display content. Also, this hardware would be required to re-encrypt the replaced or altered display content in accordance with the original encryption so that the monitor module 116 could decrypt prior to display.
In some example embodiments, the display output module 111 can alter different attributes of the display content 132 for transmission to the display monitor 118. The monitor module 116 would know the alterations so that the attributes of the display content 132 can be readjusted prior to display. For example, the display output module 111 can invert the coordinate system of the display content 132. Upon receipt, the monitor module 116 can reverse the inversion of the coordinate system prior to display. Other examples of attributes of the display content 132 that can be altered include refresh rates, resolutions, etc. For example, non-standard resolutions can be used. These alterations to the different attributes can also hinder third party hardware from altering or replacing the display content. In particular, the third party would be required to know of these alterations in order to properly add in their content. Otherwise, the altered display content can be set to the wrong coordinate system, refresh rate, resolution, etc.
In some example embodiments, the display output module 111 outputs the display content 132 at a refresh rate that is defined as a maximum refresh rate for the display monitor 118. In some example embodiments, the display output module 111 can output the display content 132 at horizontal and/or vertical refresh rates that are defined as maximum horizontal and/or vertical refresh rates for the display monitor 118. These defined maximum refresh rates can vary between different manufacturers and models of the display monitor 118, the rate supported by the video card 112 and the level of resolution used for displaying the display content 132. In some example embodiments, these refresh rates can be defined in ranges that are supported by the display monitor 118 but not supported by the third party hardware. If the third party hardware attempts to process at refresh rates beyond what can be supported, the third party hardware may lockup and cease operations because of its inability to process the frames at too high of a refresh rate.
In some example embodiments, the different secondary displays in the wagering game machine 100 are used as part of the wagering game play or potentially to have an effect on wagering game play. For example, the secondary displays can display different types of bonus play. Alternatively or in addition, the secondary display can display legal statements or disclaimers regarding wagering game play. In such embodiments, the secondary displays are not displaying a static image that does not affect wagering game play. If these secondary displays are only displaying static images that do not affect wagering game play, operators of the wagering game establishments may be more likely to authorize third parties to replace or add their content thereto. However, operators of the wagering game establishments may be more hesitant to allow third parties to replace or add third party display content in these secondary displays if such displays are part of or potentially effecting wagering game play. In particular, these operators may be concerned that game play would be adversely affected if the third party content were allowed.
In some example embodiments, the wagering game machine 100 is designed such that all power supplied to the wagering game machine 100 is used by components therein. Accordingly, if any third party hardware is added such that it is using the power supplied to the wagering game machine 100, the wagering game machine 100 becomes inoperable. Alternatively or in addition, logic (e.g., a circuit) within the wagering game machine 100 can monitor power usage. Such logic is provided with the amount of power to be used by all the components of the wagering game machine 100 (designed power usage). Such logic compares the designed power usage to the actual power usage. If the actual power usage is greater than designed power usage, the logic can perform one or more of the corrective operations (as described above).
In some example embodiments where the display comprises a touch screen, serial communications is used for communications between the touch screen and the carrier board 104. For example, a Universal Serial Bus (USB) can be used for this communication.
In some situations, a third party may attempt to subvert the monitoring of third party content by replacing the display monitor 118 with a different display monitor. In some example embodiments, the display output module 111 can attempt to check for this change of the display monitor. In particular, the display monitor 118 can comprise a nonvolatile memory that is configured to store Enhanced Display Information Data (EDID). The EDID can include the serial number, native resolution, manufacturer, etc. that are specific to the display monitor 118. In some example embodiments, the display output module 111 can retrieve the EDID data. The display output module 111 can then compare this retrieved data to a second set of data in another nonvolatile memory in the wagering game machine (e.g., a Read Only Memory (ROM) on the carrier board 104). The second set of data includes the serial number, native resolution, manufacturer, etc. that are specific to the display monitor 118. If the retrieved data does not match the second set of data, the display output module 111 can perform a corrective operation. In some example embodiments, the display output module 111 can perform this check of the EDID at different times when the wagering game machine 100 is powered on. For example, the display output module 111 can perform this check at boot up, periodic times after boot up, after a jackpot win, after a different monitoring operation indicates that a hijacking is occurring, etc.
The display monitor 118 includes a display 204 that includes a viewable area of display 220 and a nonviewable area of display 222. A bezel 202 covers the nonviewable area of display 222 to prevent this area from being viewed. In this example, the bezel 202 covers all four edges of the display 202. In other examples, the bezel 202 can cover less than all edges (e.g., the top and bottom edges), a part of one or more edges, etc. In this example, the display monitor 118 includes four sensors at the four corners of the display 204 that are hidden behind the bezel 202. The display monitor 118 includes a sensor 206, a sensor 208, a sensor 210, and a sensor 212. In some example embodiments, the sensors 206-212 comprise any one of a Charged-Coupled Device (CCD) sensor, Complimentary Metal-Oxide Semiconductor (CMOS) sensor, etc. In other examples, the display monitor 118 can comprise more or less sensors, sensors in other locations, etc. For example, the display monitor 118 can comprise a single sensor positioned anywhere along the top edge of the display 204. In another example, the display monitor 118 can comprise two sensors positioned anywhere along opposing edges of the display 204. As further described below, the sensors 206-212 capture a part of the display content 132. The monitor module 116 of
In some example embodiments, the display output module 111 can output different images into the part of the display content that is being monitored by the sensors 206-212. These different images can include individual pixel, multiple pixels in a defined area, bar code elements, watermarks, etc.
These example embodiments that incorporate sensors into the display monitor 118 are farther down the chain to where the display content is actually being displayed in comparison to other methods for detecting changes to the display content. Accordingly, these example embodiments that monitor what is actually displayed can make hijacking of the display by third parties more difficult.
This section describes operations associated with some example embodiments. In the discussion below, the flowcharts are described with reference to the block diagrams presented above. However, in some example embodiments, the operations can be performed by logic not described in the block diagrams.
In certain embodiments, the operations can be performed by executing instructions residing on machine-readable storage media (e.g., software), while in other embodiments, the operations can be performed by hardware and/or other logic (e.g., firmware). In some embodiments, the operations can be performed in series, while in other embodiments, one or more of the operations can be performed in parallel. Moreover, some embodiments can perform less than all the operations shown in any flowchart.
This section describes
Monitoring of Unauthorized Third Party Content by Sensors Behind a Bezel of the Display Monitor
At block 402, the display output module 111 receives data for drawing a frame of display content. For example, the display output module 111 may receive data for a result of a bonus event from wagering game play from the wagering game module 110. In another example, the display output module 111 can receive data for displaying a video that is part of the theme of wagering game machine, data for outputting a still image of a legal disclaimer, data for outputting video or still images that is part of the wagering game play, etc. The operations of the flowchart 400 continue at block 404.
At block 404, the display output module 111 creates the frame of display content. The display output module 111 determines the number of pixels and their locations based on the resolution, size, etc. of the frame. The display output module 111 also sets the values for the pixels in the frame. The operations of the flowchart 400 continue at block 406.
At block 406, the display output module 111 determines whether embedded images are to be included in the frame. The display output module 111 can embed one to N number of images into every frame or just selected frames. In some applications, embedded images are added in every frame. In other applications, the embedded images are periodically added to the frame (e.g., every other frame, once per second, etc.) or are randomly added in a frame. Whether to embed images into every frame or just selected frames can be preset or dynamically determined. For example, for a predefined time period after boot-up or powering on of the wagering game machine, the display output module 111 can add to every frame. And, after the expiration of this predefined time period, the display output module 111 can randomly add the images to a frame. If embedded images are to be included in the frame, the operations of the flowchart 400 continue at block 408. Otherwise, operations continue at block 410.
At block 408, the display output module 111 embeds images into locations in the frame where sensors are located beneath the bezel of the display monitor that is to display the frame. Accordingly, the display output module 111 can define one more pixel values to create these images. The display output module 111 can create one to N number of embedded images. The embedded images are located in positions on the frame such that the sensors in the bezel can scan and determine the pixel values that comprise the images. With reference to the example of
At block 410, the display output module 111 transmits the frame of display content to the display monitor 118. With reference to
At block 502, the monitor module 116 receives frame of display content for displaying on the display monitor 118. With reference to
At block 504, the monitor module 116 displays the frame on the display monitor 118. With reference to the example of
At block 506, the monitor module 506 determines whether the frame that is being displayed is supposed to have embedded images. As described above, one to N number of images can be embedded into every frame or just selected frames. In some applications, embedded images are added in every frame. In other applications, the embedded images are periodically added to the frame (e.g., every other frame, once per second, etc.) or are randomly added in a frame. Whether to embed images into every frame or just selected frames can be preset or dynamically determined. If there are supposed to be embedded images in the frame operations of the flowchart 500 continue at block 507. Otherwise, the operations of the flowchart 500 are complete.
At block 508, sensors on a bezel of the display monitor 118 scan for the embedded images. With reference to the example of
At block 510, the display output module 111 determines whether the correct embedded images are in the frame being displayed on the display monitor 118. In particular, the sensors on the bezel are communicatively coupled to the display output module 111. For example, the sensors can communicate the scanned images back to the display output module 111 through the monitor module 116 and back through the buses 133 and 130. Alternatively, the display output module 111 and the sensors can be communicatively coupled together through a separate bus (e.g., USB). The sensors transmit the scanned images to the display output module 111. The display output module 111 can process the scanned images to determine whether the scanned images are equal to the embedded images that were originally placed in the frame by the display output module 111. The display output module 111 can perform a pixel-by-pixel comparison between the scanned images and the original embedded images. For a given image, if each pixel value is equal, the display output module 111 assumes that the correct embedded images are in the frame being displayed on the display monitor 118. If not, the image is considered to have been changed at some point between when the image was created by the display output module 111 and when the image was displayed on the display monitor 118. For example, a third party hardware may have replaced the display content with a third party content. Alternatively, the third party hardware may have added a third party content to the display content, thereby distorting the original display content. Also while described such that the display output module performs this determination, in some other example embodiments the monitor module 116 and/or the video card module 114 can perform this determination (instead of the display output module 111). If the correct images are in the frame, the operations of the flowchart 500 are complete. Otherwise, operations continue at block 512.
At block 512, the display output module 111 performs one or more corrective operations in response to hijacking of the display content for the display monitor 118. For example, the display output module 111 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. The operations of the flowchart 500 are complete.
Monitoring of Unauthorized Third Party Content Using Single Frame Pixel Encoding
Another example embodiment for monitoring third party content on a display of a wagering game machine is now described. In particular,
If there is pixel encoding, the value of the pixel 604 identifies the X coordinate of an (X,Y) position of the encoded pixel. Also, the value of the pixel 606 identifies the Y coordinate of the (X,Y) position of the encoded pixel. Additionally if there is pixel encoding, the value of the pixel 608 is what the value of the encoded pixel should equal. The pixel 624 is the encoded pixel.
For this example, assume that the pixel 602 is at the (0,0) position. Assuming pixel encoding, the RGB value of the pixel 602 is (0, 235, 52). The encoded pixel (the pixel 624) has an (X,Y) position of (4,3). Therefore, the pixel 604 is embedded with a value 4, and the pixel 606 is embedded with a value of 3. Also, both the pixel 608 and the encoded pixel 624 are embedded with a same value. As further described below, if these two values are not equal, the pixel encoding has failed.
At block 702, the display output module 111 receives data for drawing a frame of display content. For example, the display output module 111 may receive data for a result of a bonus event from wagering game play from the wagering game module 110. In another example, the display output module 111 can receive data for displaying a video that is part of the theme of wagering game machine, data for outputting a still image of a legal disclaimer, data for outputting video or still images that is part of the wagering game play, etc. The operations of the flowchart 700 continue at block 704.
At block 704, the display output module 111 creates the frame of display content. The display output module 111 determines the number of pixels and their locations based on the resolution, size, etc. of the frame. The display output module 111 also sets the values for the pixels in the frame. The operations of the flowchart 700 continue at block 706.
At block 706, the display output module 111 determines whether there is pixel encoding in this frame. The display output module 111 can perform pixel encoding into every frame or just selected frames. In some applications, pixel encoding occurs in every frame. In other applications, pixel encoding occurs periodically (e.g., every other frame, once per second, etc.) or randomly. Whether to pixel encode into every frame or just selected frames can be preset or dynamically determined. For example, for a predefined time period after boot-up or powering on of the wagering game machine, the display output module 111 can pixel encode every frame. And, after the expiration of this predefined time period, the display output module 111 can randomly pixel encode. If there is pixel encoding, the operations of the flowchart 700 continue at block 708. Otherwise, operations continue at block 722.
At block 708, the display output module 111 sets the value of the pixel in the frame (that identifies that there is pixel encoding) to a value to indicate pixel encoding. With reference to
At block 710, the display output module 111 sets the value of the pixel in the frame that identifies the X coordinate of the (X,Y) position of the encoded pixel in the frame. The (X,Y) position of the encoded pixel can change or remain constant across different frames. In some example embodiments, the (X,Y) position of the encoded pixel randomly changes across different frames. With reference to
At block 712, the display output module 111 sets the value of the pixel in the frame that identifies the Y coordinate of the (X,Y) position of the encoded pixel in the frame. With reference to
At block 714, the display output module 111 sets the value of the pixel in the frame that identifies the value of the encoded pixel. In other words, a separate pixel in the frame is set to a value that should be equal to the value of the encoded pixel (assuming that the display content of the frame has not been changed by third party hardware). With reference to
At block 716, the display output module 111 sets the value of the encoded pixel in the frame. With reference to
Returning to the “no” decision at block 706 (no pixel encoding in the frame) at block 718, the display output module 111 determines whether the value of the pixel in the frame (that identifies there is pixel encoding) is set to a value to indicate pixel encoding. As described above, a designated pixel having a particular value indicates that pixel encoding is within the frame. Accordingly, the display output module 111 needs to ensure that this designated pixel has not been accidently set to this particular value as part of the creating of the frame (at block 704). If the value of the pixel in the frame (that identifies there is pixel encoding) is set to a value to indicate pixel encoding, operations of the flowchart 700 continue at block 720. Otherwise, operations of the flowchart 700 continue at block 722.
At block 720, the display output module 111 sets the value of the pixel in the frame (that identifies there is pixel encoding) to a value to indicate no pixel encoding. In particular, the display output module 111 can set this value to any value but the particular value that indicates pixel encoding. If this check at block 718 and setting at block 720 is not done, the monitor module 116 at the display monitor 118 may receive a frame that does not include pixel encoding but process such frame as if there is pixel encoding. In particular, if this pixel is accidently set to indicate pixel encoding for a frame that does not include pixel encoding, the monitor module 116 may mark the frame as being changed by third party hardware (hijacking) Operations of the flowchart 700 continue at block 722.
At block 722, the display output module 111 transmits the frame of display content to the display monitor 118. With reference to
At block 802, the monitor module 116 receives a frame of display content for displaying on the display monitor 118. With reference to
At block 804, the monitor module 116 determines whether the value of the pixel in the frame (that identifies there is pixel encoding in the frame) is set to indicate pixel encoding. With reference to
At block 806, the monitor module 116 retrieves the values of the first and second pixels that identify the location of the encoded pixel. With reference to
At block 808, the monitor module 116 retrieves the value of the encoded pixel from its location identified by the first and second pixels that identify the location. With reference to
At block 809, the monitor module 116 retrieves the value of a third pixel whose value is supposed to equal the value of the encoded pixel. In particular, the display output module 111 sets the value of this pixel and the encoded pixel to a same value (as described above). With reference to
At block 810, the monitor module 116 determines whether the value of the third pixel (whose value is supposed to equal the value of the encoded pixel) is equal to the value of the encoded pixel. With reference to
At block 812, the monitor module 116 resets a heartbeat timer. The heartbeat timer is a timer for tracking the amount of time that has expired since a frame with the correct pixel encoding has been received. Specifically, the timer is for tracking the amount of time that has expired since a frame having pixel encoding has been received, wherein the value of the pixel (whose value is supposed to be equal to the value of the encoded pixel) is equal to the value of the encoded pixel (see description of operations at block 810 above). In this situation, the monitor module 116 did receive a frame with correct pixel encoding. Accordingly, the monitor module 116 resets the heartbeat timer. If the heartbeat timer expires, the monitor module 116 performs one or more corrective operations in response to hijacking. This monitoring of the heartbeat timer is discussed in the description of block 816 (see description below). The operations of the flowchart 800 continue at block 813.
At block 813, the monitor module 116 displays the frame on the display monitor 118. The operations of the flowchart 800 are complete along this path.
Returning to the “no” decision at block 810 wherein the values of the two pixels are not equal, at block 814, the monitor module 116 determines whether there have been N number of consecutive pixel encoding failures. N can be set to any value of one or greater. A pixel encoding failure occurs after the monitor module 116 receives a frame with incorrect pixel encoding. Specifically, a pixel encoding failure occurs when a frame with pixel encoding is received, wherein the value of the pixel (whose value is supposed to be equal to the value of the encoded pixel) is equal to the value of the encoded pixel (see description of operations at block 810 above). If there have not been N number of consecutive pixel encoding failures, the operations of the flowchart 800 continue at block 813 (described above). Otherwise, operations continue at block 818 (described below).
The second set of operations of the flowchart 800 is now described. As described above, the second set of operations can commence after the display monitor 118 is powered on or rebooted and can be independent of the first set of operations. The second set of operations begins at block 816.
At block 816, the monitor module 116 determines whether the heartbeat timer has expired for receipt of a frame with correct pixel encoding. The heartbeat timer can be set to any time value (e.g., 1 second, 5 seconds, 90 seconds, etc.). The heartbeat timer can then countdown to zero. The heartbeat timer expires after reaching a value of zero. Also, as noted above at block 812, the heartbeat timer can be reset to its initial value (e.g., 1 second, 5 seconds, 90 seconds, etc.) to restart the countdown if the monitor module 116 receives a frame with the correct pixel encoding. If the heartbeat timer has not expired, the operations remain at block 816 where the monitor module 116 checks for expiration of the heartbeat timer. This check of the expiration can occur periodically (e.g., every 0.5 seconds, every 1 second, etc.). If the heartbeat timer has expired, the operations of the flowchart 800 continue at block 818.
At block 818, the monitor module 116 performs one or more corrective operations in response to hijacking of the display content for the display monitor 118. For example, the monitor module 116 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. With reference to
Monitoring of Unauthorized Third Party Content Using Sequential Multi-Frame Pixel Encoding
Another example embodiment for monitoring third party content on a display of a wagering game machine is now described. In particular,
In some example embodiments, the wagering game module 110 produces pixels based on a coordinate system wherein the top left hand pixel position for (x,y) is (1,1), while the display 119 outputs the pixels based on a coordinate system wherein the top left hand pixel position for (x,y) is (0,0). Accordingly, the monitor module 116 can perform any suitable translation between the two coordinate systems. For example, the monitor module 116 can subtract from the pixel coordinates prior to display (e.g., (x,y)→(x−1, y−1)). As further described below in the description of
At block 1002, the display output module 111 receives data for drawing a frame of display content. For example, the display output module 111 may receive data for a result of a bonus event from wagering game play from the wagering game module 110. In another example, the display output module 111 can receive data for displaying a video that is part of the theme of wagering game machine, data for outputting a still image of a legal disclaimer, data for outputting video or still images that is part of the wagering game play, etc. The operations of the flowchart 1000 continue at block 1004.
At block 1004, the display output module 111 creates the frame of display content. The display output module 111 determines the number of pixels and their locations based on the resolution, size, etc. of the frame. The display output module 111 also sets the values for the pixels in the frame. The operations of the flowchart 1000 continue at block 1006.
At block 1006, the display output module 111 determines whether the current frame is one of four sequential frames that include pixel encoding. As further described below, the first frame in the four sequential frames includes a pixel value that defines whether this frame and the next three frames include pixel encoding. In some example embodiments, the sequential multi-frame pixel encoding occurs periodically (e.g., once per second). Therefore, if this is the first frame of the four sequential frames, the display output module 111 can determine based on whether the next periodic pixel encoding is to occur. If this is frame is one of the other three frames, the display output module 111 can make this determination based on this pixel value in the first frame. If the frame is part of the sequential frame pixel encoding, operations continue at continuation point 1008 (point A), which continues at continuation point 1102 (point A—
At block 1018, the display output module 111 determines whether the value of the pixel in the frame (that identifies there is pixel encoding) is set to a value to indicate pixel encoding. A designated pixel having a particular value indicates that pixel encoding is within the frame. With reference to the example of
At block 1020, the display output module 111 sets the value of the pixel in the frame (that identifies there is pixel encoding) to a value to indicate no pixel encoding. In particular, the display output module 111 can set this value to any value but the particular value that indicates pixel encoding. If this check at block 1018 and setting at block 1020 is not done, the monitor module 116 at the display monitor 118 may receive a frame that does not include pixel encoding but process such frame (and the next three frames) as if there is pixel encoding. In particular, if this pixel is accidently set to indicate pixel encoding for a frame that does not include pixel encoding, the monitor module 116 may mark the frames as being changed by third party hardware (hijacking) Operations of the flowchart 1000 continue at block 1022.
At block 1022, the display output module 111 transmits the frame of display content to the display monitor 118. With reference to
The operations of the flowchart 1000 continue with the operations of the flowchart 1100 of
At block 1104, the display output module 111 determines whether this is the first frame of the sequential frame pixel encoding. In particular, this path of the flowcharts 1000 and 1100 is reached because a determination is made that a frame that is being created is to be one of the frames of a sequential multi-frame pixel encoding (see block 1006 of
At block 1106, the display output module 111 sets the value of a particular pixel in the frame to indicate a start of sequential frame pixel encoding. With reference to
At block 1108, the display output module 111 determines whether this is the second frame of the sequential frame pixel encoding. Because this frame is part of a sequential multi-frame pixel encoding and this frame is not the first frame, the display output module 111 determines whether this frame is the next frame. If this frame is the second frame, the operations of the flowchart 1100 continue at block 1110. Otherwise, the operations of the flowchart 1100 continue at block 1112.
At block 1110, the display output module 111 sets the value of the pixel in the frame to indicate the pixel location of the encoded pixel. With reference to
As shown in this example, the RGB value set in pixel (0,0) has the following format: (255, a, b), wherein the variation of ‘a’ and ‘b’ dictate the location of the encoded pixel. For example, if ‘a’ is 0 and ‘b’ is 85, the location of the encoded pixel is (x,0). In some example embodiments, the display output module 111 randomly selects the RGB value, thereby randomly locating the location of the encoded pixel. The operations of the flowchart 1100 continue at continuation point B 1118, which continues at continuation point B 1021, wherein the frame is transmitted to the display monitor at block 1022 (as described above).
At block 1112, the display output module 111 determines whether this is the third frame of the sequential frame pixel encoding. Because this frame is part of a sequential multi-frame pixel encoding and this frame is not the first frame or second frame, the display output module 111 determines whether this frame is the next frame. If this frame is the third frame, the operations of the flowchart 1100 continue at block 1114. Otherwise, the operations of the flowchart 1100 continue at block 1116.
At block 1114, the display output module 111 sets the value of the pixel in the frame to indicate the pixel value of the encoded pixel. With reference to
At block 1116, the display output module 111 sets the value of the encoded pixel in the frame based on the location and value of the encoded pixel defined in the second and third frames. In particular, because the frame is part of the sequential multi-frame pixel encoding (having four frames) and the frame is not one of the first three frames (see blocks 1104, 1108 and 1112), the display output module 111 assumes that this frame is the fourth frame in the sequential multi-frame pixel encoding. The fourth frame is where the encoded pixel is located (having a location defined by the second frame and a RGB value defined by the third frame, as described above). The operations of the flowchart 1100 continue at continuation point B 1118, which continues at continuation point B 1021, wherein the frame is transmitted to the display monitor at block 1022 (as described above).
The flowcharts 1000 and 1100 described operations for creating frames of a sequential multi-frame pixel encoding by the display output module 111. The operations for processing the frames by the monitor module 116 in the display monitor 118 are now described. In particular,
At block 1202, the monitor module 116 receives a frame of display content for displaying on the display monitor 118. With reference to
At block 1203, the monitor module 116 displays the first frame on the display monitor 118. The operations of the flowchart 1200 continue at block 1204.
At block 1204, the monitor module 116 determines whether this frame is the first frame of a sequential multi-frame frame pixel encoding. With reference to
At block 1206, the monitor module 116 receives the second frame of display content for displaying on the display monitor 118. With reference to
At block 1208, the monitor module 116 displays the second frame on the display monitor 118. The operations of the flowchart 1200 continue at block 1210.
At block 1210, the monitor module 116 maps the location of the encoded pixel within the fourth frame based on a value of the pixel in the second frame. With reference to
At block 1212, the monitor module 116 receives the third frame of display content for displaying on the display monitor 118. With reference to
At block 1214, the monitor module 116 displays the third frame on the display monitor 118. The operations of the flowchart 1200 continue at block 1216.
At block 1216, the monitor module 116 determines the value of the encoded pixel in the fourth frame based on the value of a pixel in the third frame. With reference to
At block 1218, the monitor module 116 receives the fourth frame of display content for displaying on the display monitor 118. With reference to
At block 1220, the monitor module 116 displays the fourth frame on the display monitor 118. The operations of the flowchart 1200 continue at block 1222.
At block 1222, the monitor module 116 determines whether the pixel encoding in the fourth frame is correct based on the location defined in the second frame and the value defined in the third frame. In particular, the monitor module 116 retrieves the RGB value for the pixel at the location defined in the second frame (see description of block 1210 above). The monitor module 116 then compares this RGB value to the RGB value set in the third frame (see description of block 1216 above). If these values are equal the pixel encoding is correct. Otherwise, the pixel encoding has failed. If the pixel encoding is correct, the operations of the flowchart 1200 continue at block 1224. Otherwise, the operations of the flowchart 1200 along this path are complete.
At block 1224, the monitor module 116 resets a heartbeat timer. The heartbeat timer is a timer for tracking the amount of time that has expired since the correct pixel encoding has been received. Specifically, the timer is for tracking the amount of time that has expired since multiple frames having correct pixel encoding has been received. In this situation, the monitor module 116 did receive correct pixel encoding. Accordingly, the monitor module 116 resets the heartbeat timer. If the heartbeat timer expires, the monitor module 116 performs one or more corrective operations in response to hijacking. This monitoring of the heartbeat timer is discussed in the description of block 1228 (see description below). The operations of the flowchart 1200 along this path are complete.
At block 1228, the monitor module 116 determines whether the heartbeat timer has expired for receipt of frames with correct pixel encoding. The heartbeat timer can be set to any time value (e.g., 1 second, 5 seconds, 90 seconds, etc.). The heartbeat timer can then countdown to zero. The heartbeat timer expires after reaching a value of zero. Also, as noted above at block 1224, the heartbeat timer can be reset to its initial value (e.g., 1 second, 5 seconds, 90 seconds, etc.) to restart the countdown if the monitor module 116 receives frames with the correct pixel encoding. If the heartbeat timer has not expired, the operations remain at block 1228 where the monitor module 116 checks for expiration of the heartbeat timer. This check of the expiration can occur periodically (e.g., every 0.5 seconds, every 1 second, etc.). If the heartbeat timer has expired, the operations of the flowchart 1200 continue at block 1230.
At block 1230, the monitor module 116 performs one or more corrective operations in response to hijacking of the display content for the display monitor 118. For example, the monitor module 116 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. With reference to
Monitoring of Unauthorized Third Party Content Using Challenge-Response
Another example embodiment for monitoring of third party content on a display of a wagering game machine is now described. In particular,
At block 1302, the display output module 111 embeds a challenge within the protocol that is used to transmit the frame of display content to the display monitor 118. Alternatively or in addition, the display output module 111 can embed the challenge within the image of the frame. For example, the display output module 111 can embed the challenge into one or more pixels (similar to the pixel encoding operations described above). The challenge can be any type of alphanumeric values, wherein the monitor module 116 of the display monitor 118 provides the proper response thereto. The operations of the flowchart 1300 continue at block 1304.
At block 1304, the display output module 111 transmits the frame of display content to the display monitor 118. With reference to
At block 1306, the display output module 111 determines whether the correct response has been received in response to the challenge that was transmitted. In some example embodiments, there is a single correct response to a given challenge. Upon receipt, the monitor module 116 can transmit back the correct response to the display output module 111. Therefore, this challenged-response authentication can identify the adding of the third party content to the display content in the frame. In particular, the third party hardware can alter or remove the challenge when adding the third party display content. Accordingly, the monitor module 116 may not receive the challenge or may receive the incorrect challenge because of the adding of the third party content. For example, the third part hardware can alter the protocol or display content that includes the challenge. If the correct response is received in response to the challenge, the operations of the flowchart 1300 are complete. Otherwise, the operations continue at block 1308.
At block 1308, the display output module 111 performs one or more corrective operations in response to hijacking of the display content for the display monitor 118. For example, the display output module 111 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. The operations of the flowchart 1300 are complete.
Monitoring of Display of Authorized Third Party Content
Operators of wagering game establishments that use these wagering game machines may want an option to allowed authorized third parties to change the display content. In particular, these operators may want to allow advertising by third parties in order to generate more revenue. Accordingly, some example embodiments do not prevent all changes by third parties. Rather, developers of the wagering game machine can manage access to the display content by authorized third parties. Accordingly, some example embodiments attempt to preclude unauthorized third parties to change the display content, while allowing authorized third parties to do so.
Some or all of a display can be used to display authorized third party content. The authorized third party content can be also provided to the wagering game machine 100 over a network. Alternatively or in addition, the third party content can be provided by a local upload through an input/output port of the wagering game machine. Also, the third party content can be embedded with an authorized watermark. In some example embodiments, the developers of the wagering game machine, the operators of a wagering game establishment that includes the wagering game machine and/or gaming regulators can add the authorized watermark to the third party content. In some example embodiments, the authorized watermarks can be dynamic. In particular, the authorized watermarks can be different across the different frames of display content. Accordingly, for a video, the authorized watermark can change a number of different frames of the video. Also, the location in the frame, the type of watermark, etc. can also change. In reference to
These unique authorized watermarks help ensure that the appropriate content is being displayed for a given type of wagering game machine. For example, for a given wagering game machine, the monitoring ensures that a defined set of third party content is displayed. Such a configuration precludes third party content having an adult theme (e.g., an advertisement for hard liquor) from being displayed on wagering game machine having a family friendly theme.
At block 1402, the monitor module 116 receives frame of display content for displaying on the display monitor 118. With reference to
At block 1404, the monitor module 116 determines whether the frame is to include authorized third party content. This determination can be based on an agreement between the third parties and the developers of the wagering game machine 100 and/or the operators of the wagering game establishment. The agreement can determine which display, the particular authorized third party content, the time of day, etc. For example, the agreement can set forth that a given third party content can be displayed from 7-11 pm on Saturday and Sundays for a six month period. As described above, the display output module 111 can add the third party content. Alternatively or in addition, third party hardware can add the third party content. Regardless of the source of the third party content, the monitor module 116 checks its authorization (as described below). If the frame is not to include authorized third party content, the operations of the flowchart 1400 continue at block 1410. Otherwise, the operations continue at block 1406.
At block 1406, the monitor module 116 determines whether the display content includes a watermark that authorizes the incorporation of third party content. The monitor module 116 can determine if the particular watermark is at a given location in the frame that is to be displayed. For example, the monitor module 116 can determine if a unique watermark associated with an authorized third party content for a particular third party is located at a given location within the frame of display content. If the display content does not include the authorized watermark, the operations continue at block 1408. Otherwise, the operations continue at block 1410.
At block 1408, the monitor module 116 performs one or more corrective operations in response to hijacking of the display content for the display monitor 118. In particular, it is assumed that if the authorized watermark is not located in the third party content some unauthorized third party content has been added to the display content. In some example embodiments, some or all techniques for the monitoring of unauthorized third party content as described herein is performed prior to performing this corrective operation. For example, pixel encoding, embedded images, or challenge-response authentication is performed. If these techniques indicate hijacking by third party content, the monitor module 116 then performs the corrective operation. For example, the display output module 111 can shut down the wagering game machine 100, log the error in nonvolatile memory, generate an error that is transmitted over a network to a backend server, shut down the display monitor 118, etc. The operations of the flowchart 1400 are complete.
At block 1410, the monitor module 116 displays the frame on the display monitor 118. In some example embodiments, some or all techniques for the monitoring of unauthorized third party content as described herein is performed prior to displaying the frame. For example, pixel encoding, embedded images, or challenge-response authentication is performed prior to displaying the frame. The operations of the flowchart 1400 are then complete.
Multiple third parties can be authorized to change the display content on a given wagering game machine. In some example embodiments, the monitor module 116 can track the number of times a given third party content is displayed. For example, each third party can have a unique authorized watermark. Accordingly, the monitor module 116 can monitor the authorized watermarks provided in the display content that identifies the third party. The wagering game machine 100 can provide a logging of the third party content being displayed. The operators of the wagering game establishments can use this logging in their accounting for charging third parties for displaying of their third party content.
The CPU 1526 is also connected to an input/output (I/O) bus 1522, which can include any suitable bus technologies, such as an AGTL+ frontside bus and a PCI backside bus. The I/O bus 1522 is connected to a payout mechanism 1508, primary display 1510, secondary display 1512, value input device 1514, player input device 1516, information reader 1518, and storage unit 1530. The player input device 1516 can include the value input device 1514 to the extent the player input device 1516 is used to place wagers. The I/O bus 1522 is also connected to an external system interface 1524, which is connected to external systems 1504 (e.g., wagering game networks).
In one embodiment, the wagering game machine 1506 can include additional peripheral devices and/or more than one of each component shown in
Any component of the architecture 1500 can include hardware, firmware, and/or machine-readable storage media including instructions for performing the operations described herein. Machine-readable storage media includes any device that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a wagering game machine, computer, etc.). For example, machine-readable storage media includes read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory machines, etc.
The wagering game machine 1600 comprises a housing 1612 and includes input devices, including value input devices 1618 and a player input device 1624. For output, the wagering game machine 1600 includes a primary display 1614 for displaying information about a basic wagering game. The primary display 1614 can also display information about a bonus wagering game and a progressive wagering game. The wagering game machine 1600 also includes a secondary display 1616 for displaying wagering game events, wagering game outcomes, and/or signage information. While some components of the wagering game machine 1600 are described herein, numerous other elements can exist and can be used in any number or combination to create varying forms of the wagering game machine 1600.
The value input devices 1618 can take any suitable form and can be located on the front of the housing 1612. The value input devices 1618 can receive currency and/or credits inserted by a player. The value input devices 1618 can include coin acceptors for receiving coin currency and bill acceptors for receiving paper currency. Furthermore, the value input devices 1618 can include ticket readers or barcode scanners for reading information stored on vouchers, cards, or other tangible portable storage devices. The vouchers or cards can authorize access to central accounts, which can transfer money to the wagering game machine 1600.
The player input device 1624 comprises a plurality of push buttons on a button panel 1626 for operating the wagering game machine 1600. In addition, or alternatively, the player input device 1624 can comprise a touch screen 1628 mounted over the primary display 1614 and/or secondary display 1616.
The various components of the wagering game machine 1600 can be connected directly to, or contained within, the housing 1612. Alternatively, some of the wagering game machine's components can be located outside of the housing 1612, while being communicatively coupled with the wagering game machine 1600 using any suitable wired or wireless communication technology.
The operation of the basic wagering game can be displayed to the player on the primary display 1614. The primary display 1614 can also display a bonus game associated with the basic wagering game. The primary display 1614 can include a cathode ray tube (CRT), a high resolution liquid crystal display (LCD), a plasma display, light emitting diodes (LEDs), or any other type of display suitable for use in the wagering game machine 1600. Alternatively, the primary display 1614 can include a number of mechanical reels to display the outcome. In
A player begins playing a basic wagering game by making a wager via the value input device 1618. The player can initiate play by using the player input device's buttons or touch screen 1628. The basic game can include arranging a plurality of symbols along a payline 1632, which indicates one or more outcomes of the basic game. Such outcomes can be randomly selected in response to player input. At least one of the outcomes, which can include any variation or combination of symbols, can trigger a bonus game.
In some embodiments, the wagering game machine 1600 can also include an information reader 1652, which can include a card reader, ticket reader, bar code scanner, RFID transceiver, or computer readable storage medium interface. In some embodiments, the information reader 1652 can be used to award complimentary services, restore game assets, track player habits, etc.
This detailed description refers to specific examples in the drawings and illustrations. These examples are described in sufficient detail to enable those skilled in the art to practice the inventive subject matter. These examples also serve to illustrate how the inventive subject matter can be applied to various purposes or embodiments. Other embodiments are included within the inventive subject matter, as logical, mechanical, electrical, and other changes can be made to the example embodiments described herein. Features of various embodiments described herein, however essential to the example embodiments in which they are incorporated, do not limit the inventive subject matter as a whole, and any reference to the invention, its elements, operation, and application are not limiting as a whole, but serve only to define these example embodiments. This detailed description does not, therefore, limit embodiments of the invention, which are defined only by the appended claims. Each of the embodiments described herein are contemplated as falling within the inventive subject matter, which is set forth in the following claims.
This application claims the priority benefit of U.S. Provisional Application Ser. No. 61/410,724 filed Nov. 5, 2010.
Number | Name | Date | Kind |
---|---|---|---|
4562467 | Bradley | Dec 1985 | A |
5923786 | Murayama | Jul 1999 | A |
6295376 | Nakaya | Sep 2001 | B1 |
6308327 | Liu et al. | Oct 2001 | B1 |
6466209 | Bantum | Oct 2002 | B1 |
7444659 | Lemmons | Oct 2008 | B2 |
7747087 | Laude et al. | Jun 2010 | B2 |
7779438 | Davies | Aug 2010 | B2 |
8068544 | Roman | Nov 2011 | B2 |
8079054 | Dhawan et al. | Dec 2011 | B1 |
8109829 | Morgan et al. | Feb 2012 | B1 |
8270487 | Kizhepat et al. | Sep 2012 | B1 |
8376845 | Cockerille et al. | Feb 2013 | B2 |
8392507 | Ramos et al. | Mar 2013 | B2 |
20010024525 | Hata et al. | Sep 2001 | A1 |
20010031089 | Hata et al. | Oct 2001 | A1 |
20010051005 | Itagaki et al. | Dec 2001 | A1 |
20020031276 | Yagishita et al. | Mar 2002 | A1 |
20020037081 | Rogoff et al. | Mar 2002 | A1 |
20020059590 | Kitsukawa et al. | May 2002 | A1 |
20020164076 | Pasquier | Nov 2002 | A1 |
20030005285 | Graunke | Jan 2003 | A1 |
20030028873 | Lemmons | Feb 2003 | A1 |
20030056103 | Levy et al. | Mar 2003 | A1 |
20030056104 | Carr et al. | Mar 2003 | A1 |
20030086621 | Hata et al. | May 2003 | A1 |
20040062305 | Dambrackas | Apr 2004 | A1 |
20040151389 | Itagaki et al. | Aug 2004 | A1 |
20050069034 | Dambrackas | Mar 2005 | A1 |
20050072846 | Lubow | Apr 2005 | A1 |
20050243920 | Murakami et al. | Nov 2005 | A1 |
20060126720 | Dambrackas | Jun 2006 | A1 |
20060126721 | Dambrackas | Jun 2006 | A1 |
20060262982 | Matsumoto et al. | Nov 2006 | A1 |
20070076967 | Kim et al. | Apr 2007 | A1 |
20080107169 | Roman | May 2008 | A1 |
20080107174 | Roman | May 2008 | A1 |
20080268961 | Brook et al. | Oct 2008 | A1 |
20090129755 | Rakib et al. | May 2009 | A1 |
20090327856 | Mouilleseaux et al. | Dec 2009 | A1 |
20100048299 | Guthrie et al. | Feb 2010 | A1 |
20100111182 | Karczewicz et al. | May 2010 | A1 |
20100118943 | Shiodera et al. | May 2010 | A1 |
20100220936 | Yamaguchi et al. | Sep 2010 | A1 |
20100232720 | Tsai et al. | Sep 2010 | A1 |
20110019005 | Ramos et al. | Jan 2011 | A1 |
20120071237 | Cockerille et al. | Mar 2012 | A1 |
20120100915 | Margalit et al. | Apr 2012 | A1 |
Number | Date | Country | |
---|---|---|---|
61410724 | Nov 2010 | US |