Abstract:
A system and method for capturing and sharing console gaming data is described. Embodiments capture gameplay data directly at the gaming console, without the need for external hardware. This allows users to easily capture rich console gaming experiences and share them across a variety of outlets. In one embodiment, the methods described herein can be implemented with a patch or driver on the operating system of the user device, rendering it unnecessary to heavily modify the source code of the game.

Description:
FIELD 
       [0001]    The present disclosure relates generally to console gaming, and more particularly, to systems and methods for capturing and sharing console gaming data. 
       BACKGROUND 
       [0002]    In recent years, gaming consoles have developed universal appeal as a primary source of entertainment and socialization. Video games draw a wide variety of consumers by providing diverse and engaging interactive experiences. Interactivity has been increased by a number of technological developments. For example, gaming consoles now allow users to interact not only with video games, but also with other users. Further, users are able to use both conventional controllers and motion-based controllers or sensors. Progressions in graphics and display technology have also allowed for a rich console gaming experience, complete with advanced, realistic high definition audio and video in some cases. These developments have resulted in a highly unique and individual virtual experience for users. 
         [0003]    Over the years, users have experienced an increased ability to share these virtual experiences with others. Websites, forums and message boards dedicated to video games allow users to discuss their particular gaming experiences with other interested users. Social media also provides an outlet for users to discuss their experiences with friends and acquaintances. Networked gaming consoles allow users to share basic, generic indicators of experience, such as “trophies” or level identifiers, with other networked users. 
         [0004]    Users seeking to show off their gameplay prowess at a more rich level have limited options, however. Typically, others must watch the user playing a video game in person in order to share the user&#39;s experience. Users have sought to overcome this hurdle by capturing their gameplay with an external camcorder pointed at their television, and uploading the resulting diminished-quality media to the internet. Others have installed video capture devices between their computers and gaming consoles. These latter options, however, require expensive and complicated external hardware components in order to capture gameplay, and the skills, knowledge and time to set them up and operate them. 
       SUMMARY 
       [0005]    The system and method disclosed herein allow users to easily capture rich console gaming experiences and share them across a variety of outlets. These and other advantages are realized by providing a system and method for capturing and sharing console gaming data directly from the source without the need for external hardware. In one embodiment, the methods described herein can be implemented with a patch or driver on the operating system of the user device, rendering it unnecessary to heavily modify the source code of the game. In another embodiment, modification of the source code of the game can indeed be used to implement the methods described herein. 
         [0006]    According to one embodiment, a method for storing gameplay is described. The method comprises executing gameplay, buffering a first portion of the gameplay, receiving a request to capture a second portion of the gameplay subsequent to the first portion of the gameplay, capturing the second portion of the gameplay, and storing the first and second portions of the gameplay. According to another embodiment, a computer readable medium having computer executable instructions embedded thereon for performing the acts of this method is described. Systems for effecting this method are also described herein. 
         [0007]    According to another embodiment, a method for embedding links into stored gameplay is described. The method comprises retrieving stored gameplay and gameplay metadata, identifying relevant links based on gameplay metadata, embedding at least one of the relevant links into the stored gameplay, and storing the embedded gameplay. According to another embodiment, a computer readable medium having computer executable instructed embedded thereon for performing the acts of this method is described. Systems for effecting this method are also described herein. 
         [0008]    According to a further embodiment, a method for embedding user IDs into stored gameplay is described. The method comprises retrieving stored gameplay and gameplay metadata, identifying user IDs from gameplay metadata, embedding at least one of the user IDs into the stored gameplay, and storing the embedded gameplay. According to another embodiment, a computer readable medium having computer executable instructed embedded thereon for performing the acts of this method is described. Systems for effecting this method are also described herein. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]      FIG. 1  is a flowchart illustrating a method for storing gameplay according to an embodiment. 
           [0010]      FIG. 2  is a flowchart illustrating a method for embedding links into stored gameplay in accordance with an embodiment. 
           [0011]      FIG. 3  is a flowchart illustrating a method for embedding user IDs into stored gameplay in accordance with an embodiment. 
           [0012]      FIG. 4  is a schematic diagram illustrating a system of an embodiment for effecting the methods described herein. 
           [0013]      FIG. 5  is diagrammatic representation of a machine having a set of instructions for causing the machine to perform any of the one or more methods described herein. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]    A system and method for capturing and sharing console gaming data is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the exemplary embodiments. It is apparent to one skilled in the art, however, that embodiments can be practiced without these specific details or with an equivalent arrangement. In some instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments. 
         [0015]    Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views,  FIG. 1  is a flowchart illustrating a method for storing gameplay according to one embodiment. At processing block  110 , gameplay is executed. Gameplay can be executed by the operating system of a game console in response to a user request, which can come in the form of a standard file operation with respect to a set of data associated with the desired gameplay. The request can be transmitted from an application associated with a game. The gameplay can comprise, for example, video content, audio content and/or static visual content, including wall papers, themes, “add-on” content, or any other type of content associated with a game. It is contemplated that such content can be user- or developer-generated, free or paid, full or trial, and/or for sale or for rent. 
         [0016]    At processing block  120 , a first portion of the gameplay is buffered, i.e., stored temporarily. For example, the previous 15 seconds, the previously completed level, or the previous action within the gameplay can be stored temporarily, as described further herein. The term “portion” used herein can correspond to any part of the gameplay that is divisible into any related or arbitrary groups of single or multiple bits or bytes of data. For example, “portions” of gameplay may correspond to levels, chapters, scenes, acts, characters, backgrounds, textures, courses, actions, songs, themes, durations, sizes, files, parts thereof, and combinations thereof. Further, portions of gameplay can comprise screenshots or prescribed durations of video capture. 
         [0017]    At processing block  130 , a request to capture a second portion of the gameplay is received. The request to capture the second portion of the gameplay can be a user request, which can come in the form of a standard file operation with respect to a set of data associated with the gameplay to be captured. A user can request to capture a second portion of the gameplay by, for example, selecting a button on a game controller, as described further herein. 
         [0018]    The second portion of the gameplay reflects gameplay subsequent to the first portion of the gameplay. In other words, the first portion of the gameplay reflects gameplay that occurred prior to receipt of the user request to capture the second portion of the gameplay. The second portion of the gameplay reflects gameplay that occurred after receipt of the user request to capture the second portion of the gameplay. Thus, the first portion of the gameplay is a past portion of the gameplay that has already been played, while the second portion of the gameplay begins with a current portion of the gameplay that is being executed. 
         [0019]    At processing block  140 , the second portion of the gameplay is captured. In one embodiment, the second portion of the gameplay is captured according to the user&#39;s request. For example, if the user taps a capture button on the game controller, a screenshot or still picture can be taken. If the user holds down a capture button on a game controller, a video can be taken for the length of time the button is being held down. In other words, if the button is held down for 5 seconds, 5 seconds of the gameplay can be captured as the second portion of gameplay; if the button is held down for 10 seconds, 10 seconds of the gameplay can be captured; and so on. In another example, a screenshot or still picture can be taken if the user holds down a capture button, and a video can be taken if the user taps a capture button twice consecutively: once to start the capture, and again to end the capture. 
         [0020]    At processing block  150 , the first and second portions of the gameplay are stored. In an embodiment in which the first and second portions of the gameplay are videos, the first portion of the gameplay can be attached to the second portion of the gameplay, such that a single video without interruption is created. In one embodiment, the first and second portions of the gameplay can be stored locally on the game console in either temporary or permanent storage. Alternatively or additionally, the first and second portions of the gameplay can be transmitted over a network and stored remotely. For example, the first and second portions of the gameplay can be transmitted over a wireless or wired network to another computing device, to another game console, or to a remote server. Such remote servers may include social media servers. 
         [0021]    Optionally, portions of the gameplay not retrieved from the buffer or portions of the gameplay outside a particular gaming interval (e.g., a particular duration, level, chapter, course, etc.) can be removed from the buffer. This removal process can be completed using standard file operations on the operating system. 
         [0022]    At optional processing block  160 , the first and second portions of the gameplay are displayed. The first and second portions of the gameplay can be displayed on any of a number of display devices having access to the stored gameplay. For example, the stored gameplay can be displayed on a television set connected to the game console from which the gameplay was captured. In another example, the stored gameplay can be displayed on a computer to which the stored gameplay was transmitted. The stored gameplay can be displayed alone or in conjunction with other information, such as on a social media website. 
         [0023]    In one embodiment, the first and second portions of the gameplay are displayed by another game console associated with a user other than the user that buffered or captured the gameplay. According to this embodiment, the first and second portions of the gameplay may show a ball being thrown from a first user to a second user, from the point of view of the first user. The first and second portions of gameplay can then be transmitted to the game console of the second user. Thus, the second user can then view the gameplay from the point of view of the first user. The second user can also have third and fourth portions of gameplay stored showing the ball being thrown by the first user and caught by the second user, from the point of view of the second user. In this embodiment, the second user can review the gameplay from both the point of view of the first user and the point of view of the second user. Still further, the third and fourth portions of the gameplay can be transmitted to the game console of the first user, so that the first user may review the gameplay from two points of view. This embodiment can apply to any number of users having any number of points of view, so that gameplay can be reviewed from any number of different perspectives. 
         [0024]    With respect to storage, transmission and/or display of the first and second portions of the gameplay as described herein, it is contemplated that the first and second portions of the gameplay can be stored, transmitted and displayed as image or video data. In another embodiment, however, the first and second portions of the gameplay can be stored and transmitted as telemetry or metadata representative of the image or video data, and can be recreated as images or video by a game console or other device prior to display. 
         [0025]    In some embodiments, the first portion of the gameplay has a predetermined relationship with the executed gameplay. For example, the first portion of the gameplay can correspond to a certain amount of gameplay prior to the currently executing gameplay, such as the previous 10 seconds of gameplay. In another embodiment, the first portion of the gameplay has a predetermined relationship with the second portion of the gameplay. For example, the first portion of the gameplay can correspond to a certain amount of gameplay prior to receipt of a request to capture the second portion of gameplay, such as the 10 seconds of gameplay prior to selection of the capture button. In each of these embodiments, the amount of gameplay buffered prior to the current gameplay or the requested gameplay can be configured and adjusted by the user according to his or her particular preferences. 
         [0026]    In other embodiments, the buffer is “smart” or “elastic”, such that it captures gameplay according to variables without regard to time. In one such embodiment, the first portion of the gameplay has a predetermined relationship with an event related to the gameplay. For example, the first portion of the gameplay may be buffered to include a statistical anomaly, such as a high score being reached, the gathering of a large number of points in a short amount of time, the multiple selections of buttons on a controller, and other rare events. Such statistical anomalies can be determined by comparing gameplay metrics to average metrics for a particular game or scene, or for all games generally. Such average metrics can be stored locally or remotely for comparison. For example, a game console can track local high scores for a particular game, and buffer gameplay in which a user approaches and surpasses that high score. In another example, a remote server can track global high scores for a particular game, and can communicate that information to the game console, which buffers gameplay in which the user approaches and surpasses that high score. 
         [0027]    In another example, the first portion of the gameplay can be buffered to include an achievement, such as a trophy being attained or other landmark being reached. Such trophies or landmarks memorialize any goal or gaming achievement, such as a certain number of points being attained, a certain level being reached, and the like. For example, gameplay can be buffered to include the awarding of a trophy for reaching level 10, for reaching 100,000 points, etc. 
         [0028]    Similarly, progress toward reaching an event, in addition to the actual attainment of the trophy or statistical anomaly, can be buffered to be included in the first portion of the gameplay. For example, a screenshot can be taken at each of levels 1 through 10, creating a photo album to memorialize the receipt of a trophy for reaching level 10. In another example, a video can be taken of a user winning a race for the first through fifth times, where a trophy is awarded for 5 wins. 
         [0029]    Thus, according to the embodiment illustrated in  FIG. 1 , at least a portion of executed gameplay can always be kept in a running buffer. In other words, when a request to capture a portion of the gameplay is received, a portion of the prior gameplay can already be captured to include previous footage. For example, if a request to capture gameplay is received after a user crosses the finish line in a racing game, the buffered gameplay can include footage of the user crossing the finish line. In other words, a user will be able to capture moments occurring before a request is made to capture the gameplay. 
         [0030]      FIG. 2  is a flowchart illustrating a method for embedding information such as links into stored gameplay in accordance with one embodiment. At processing block  210 , stored gameplay and its associated gameplay metadata is retrieved. The stored gameplay may be gameplay or portions thereof stored on any medium. In one embodiment, the stored gameplay comprises the first and second portions of gameplay discussed above with respect to  FIG. 1 . Gameplay metadata may include, for example, the game title, game publisher, game developer, game distributor, game platform, game release date, game rating, game characters, game genre, game expansions, gameplay level or scene, length of stored gameplay, gameplay storage date, accessories used during gameplay, number of players, user ID of the user that captured the stored gameplay, user IDs of other users identified in the stored gameplay, and the like. 
         [0031]    At processing block  220 , relevant links are identified based on the gameplay metadata. Relevant links may be hyperlinks, for example. In one embodiment, relevant links are automatically created and generated based on the gameplay metadata. This embodiment can be implemented where websites are named according to a particular naming convention. For example, if a game&#39;s website address is assigned according to http://us.playstation.com/games-and-media/games/TITLE-OF-GAME-PLATFORM.html, where TITLE-OF-GAME is replaced with the game&#39;s title and PLATFORM is replaced with the game&#39;s platform, the method according to this embodiment could pull the title of the game and the game platform from the gameplay metadata, and insert the data into the website address to generate a link. For example, for a game entitled “Sample Game” available on the PS3, the following link could be automatically generated: http://us.playstation.com/games-and-media/games/sample-game-ps3.html. 
         [0032]    In another embodiment, relevant links are identified from a plurality of links provided by or available from the game console, the game itself, the gaming network, or a third party server. In this embodiment, relevant links can be selected based on their commonalities with the gameplay metadata. For example, relevant links could include links to the game title&#39;s store or purchase page, to the user profiles of other users identified in the stored gameplay, to an informational website about the game title, to a community website dedicated to the game title, to the user&#39;s trophy information, to downloadable content or game expansions used in the stored gameplay, to other videos of the same game title and/or game level, to other gameplay captured by the same user, to trailers of upcoming games in the same genre, to clan data, to contests, to advertisements, and the like. 
         [0033]    At processing block  230 , one or more of the relevant links are embedded into the stored gameplay. In one embodiment, the relevant links are graphically or textually embedded into or overlaid on the screenshot or video itself. In another embodiment, the relevant links are embedded as text accompanying the screenshot or video. 
         [0034]    At processing block  240 , the link-embedded gameplay is stored. In one embodiment, the link-embedded gameplay is stored locally on a game console in either temporary or permanent storage. Alternatively or additionally, the link-embedded gameplay can be transmitted over a network and stored remotely. For example, the link-embedded gameplay can be transmitted over a wireless or wired network to another computing device, to another game console, or to a remote server. Such remote servers may include social media servers. 
         [0035]    At optional processing block  240 , the link-embedded gameplay is displayed. The link-embedded gameplay can be displayed on any of a number of display devices having access to and capability to display the link-embedded gameplay. For example, the link-embedded gameplay can be displayed on a television set connected to the game console from which the gameplay was captured. In another example, the link-embedded gameplay can be displayed on a computer to which the stored gameplay was transmitted. The link-embedded gameplay can be displayed alone or in conjunction with other information, such as on a social media website. 
         [0036]    In one embodiment, the “sharing” of link-embedded gameplay by users can be encouraged by providing an incentive program. For example, the number of clicks of the relevant links can be tracked. In another example, where the link-embedded gameplay contains a link to a purchase website for the game, the number of game purchases can be tracked. These numbers can then be used to reward users for sharing and distributing link-embedded gameplay. In still another example where the link-embedded gameplay contains a link to a purchase website for the game, a discount on the game can be provided to those users clicking through link-embedded gameplay to encourage purchase of the game and distribution of the link-embedded gameplay. 
         [0037]      FIG. 3  is a flowchart illustrating a method for embedding information such as user IDs into stored gameplay in accordance with one embodiment. At processing block  310 , stored gameplay and gameplay metadata is retrieved. The stored gameplay may be gameplay or portions thereof stored on any medium. In one embodiment, the stored gameplay comprises the first and second portions of gameplay discussed above with respect to  FIG. 1 . In another embodiment, the stored gameplay is the gameplay embedded with relevant links discussed above with respect to  FIG. 2 . Gameplay metadata according to this embodiment includes at least one of the user ID of the user that captured the stored gameplay, and the user ID(s) of other user(s) present in the captured gameplay. The other user(s) present in the captured gameplay can be local users, such as a second user in a two player game connected to the same game console as the first user, or can be remote users, such as networked users connected to a different game console than the first user participating in a partially- or fully-online implemented game. 
         [0038]    At processing block  320 , user IDs are identified from the gameplay metadata. At processing block  330 , the user IDs are embedded into the stored gameplay. In one embodiment, the user IDs are graphically or textually embedded into or overlaid on the screenshot or video itself. In this embodiment, the user IDs can be embedded into or overlaid on their associated graphical representations. For example, if User — 1 is represented by a red car in the stored gameplay, and User — 2 is represented by a blue car in the stored gameplay, the tag “User — 1” can be overlaid on or otherwise associated with the red car, and the tag “User — 2” can be overlaid on or otherwise associated with the blue car. In another embodiment, the user IDs are embedded as text accompanying the screenshot or video. In the latter embodiment, the accompanying text can be text intended to be displayed, such as a description or title, or can be text intended to be invisible upon display, such as embedded gameplay metadata. It is contemplated that the accompanying text can be searchable. 
         [0039]    At processing block  340 , the ID-embedded gameplay is stored. In one embodiment, the ID-embedded gameplay is stored locally on a game console in either temporary or permanent storage. Alternatively or additionally, the ID-embedded gameplay can be transmitted over a network and stored remotely. For example, the ID-embedded gameplay can be transmitted over a wireless or wired network to another computing device, to another game console, or to a remote server. Such remote servers may include social media servers. 
         [0040]    At processing block  350 , the ID-embedded gameplay is displayed. The ID-embedded gameplay can be displayed on any of a number of display devices having access and capability to display the ID-embedded gameplay. For example, the ID-embedded gameplay can be displayed on a television set connected to the game console from which the gameplay was captured. In another example, the ID-embedded gameplay can be displayed on a computer to which the stored gameplay was transmitted. 
         [0041]    The ID-embedded gameplay can be displayed alone or in conjunction with other information, such as on a social media website. When displayed on a social media website, it is contemplated that the user tags can be compatible with the websites, such that the tags carry over to the social media website. Thus, according to the embodiment described with respect to  FIG. 3 , the need to manually tag gameplay media with user ID&#39;s is eliminated by making the process automatic. 
         [0042]      FIG. 4  illustrates a system for effecting the acts of one or more of the methodologies described herein. Server  410  is connected over network  440  to a user device  450 . Server  410  includes processor  420  and memory  430 , which are in communication with one another. Server  410  is typically a computer system, and may be an HTTP (Hypertext Transfer Protocol) server, such as an Apache server. It is contemplated, however, that server  410  can be a single or multiple modules or devices hosting downloadable content or portions thereof. Further, server  410  can be a dedicated server, a shared server, or combinations thereof. For example, server  410  can be a server associated with the developer, publisher or distributor of the application  460 , or a third-party server, such as a peer device in a peer-to-peer (P2P) network. In addition, server  410  can comprise a virtual market or online shopping-based service offering the application  460 . In this embodiment, server  410  (alone or in combination with other devices) can process and perform various commercial transactions, such as billing, in addition to those acts described herein. 
         [0043]    User device  450  includes application  460 , input device  465 , operating system  470 , processor  480 , and memory  490 , which are in communication with one another. In one embodiment, user device  450  is a game console. In that embodiment, application  460  may be a game, and input device  465  may be a controller. Server  410  and user device  450  are characterized in that they are capable of being connected to network  440 . Network  440  can be wired or wireless, and can include a local area network (LAN), wide area network (WAN), a telephone network (such as the Public Switched Telephone Network (PSTN)), a radio network, a cellular or mobile phone network (such as GSM, GPRS, CDMA, EV-CO, EDGE, 3GSM, DECT, IS-136/TDA, iDEN, and the like), intranet, the Internet, or combinations thereof. Memory  430  and memory  490  may be any type of storage media that may be volatile or non-volatile memory that includes, for example, read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, zip drives, and combinations thereof. Memory  430  and memory  490  can be capable of permanent or temporary storage, or both; and can be internal, external, or both. 
         [0044]    In use, application  460  makes calls to operating system  470  to load and access data stored in memory  490 , using standard file operations. Application  460  can be any software and/or hardware that provides an interface between a user of user device  450  (via input device  465 ) and operating system  470 . The standard file operations include, for example, “open” (i.e., specifying which file is to be accessed), “seek” (i.e., specifying what position to go to in the file to read data), “read” (i.e., requesting that data be read from the file and copied to application  460 ), and “close” (i.e., requesting that the file be closed for now). 
         [0045]      FIG. 5  shows a diagrammatic representation of machine in the exemplary form of computer system  500  within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, as a host machine, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, a game console, a television, a CD player, a DVD player, a BD player, an e-reader, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. 
         [0046]    According to some embodiments, computer system  500  comprises processor  550  (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), main memory  560  (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.) and/or static memory  570  (e.g., flash memory, static random access memory (SRAM), etc.), which communicate with each other via bus  595 . 
         [0047]    According to some embodiments, computer system  500  may further comprise video display unit  510  (e.g., a liquid crystal display (LCD), a light-emitting diode display (LED), an electroluminescent display (ELD), plasma display panels (PDP), an organic light-emitting diode display (OLED), a surface-conduction electron-emitted display (SED), a nanocrystal display, a 3D display, or a cathode ray tube (CRT)). According to some embodiments, computer system  500  also may comprise alphanumeric input device  515  (e.g., a keyboard), cursor control device  520  (e.g., a controller or mouse), disk drive unit  530 , signal generation device  540  (e.g., a speaker), and/or network interface device  580 . 
         [0048]    Disk drive unit  530  includes computer-readable medium  534  on which is stored one or more sets of instructions (e.g., software  536 ) embodying any one or more of the methodologies or functions described herein. Software  536  may also reside, completely or at least partially, within main memory  560  and/or within processor  550  during execution thereof by computer system  500 , main memory  560  and processor  550 . Processor  550  and main memory  560  can also constitute computer-readable media having instructions  554  and  564 , respectively. Software  536  may further be transmitted or received over network  590  via network interface device  580 . 
         [0049]    While computer-readable medium  534  is shown in an exemplary embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the disclosed embodiments. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. 
         [0050]    It should be understood that processes and techniques described herein are not inherently related to any particular apparatus and may be implemented by any suitable combination of components. Further, various types of general purpose devices may be used in accordance with the teachings described herein. It may also prove advantageous to construct a specialized apparatus to perform the methods described herein. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware will be suitable for practicing the disclosed embodiments. 
         [0051]    Embodiments have been described in relation to particular examples, which are intended in all respects to be illustrative rather than restrictive. Further, while embodiments have been described in connection with a number of examples and implementations, it is understood that various modifications and equivalent arrangements can be made to the examples while remaining within the scope of the inventive embodiments. 
         [0052]    Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments disclosed herein. Various aspects and/or components of the described embodiments may be used singly or in any combination. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.