AT&T U-verse Enabled. How to Use the TV UI API. Publication Date: September 9, 2014

Similar documents
AT&T U-verse Enabled

Device Management Requirements

Using DLP LightCrafter 4500 Triggers to Synchronize Cameras to Patterns

Instant 802.3af Gigabit Outdoor PoE Converter. Model: INS-3AF-O-G. Quick Start Guide

TelePresence Cisco TelePresence Synch with Edge95MXP - Troubleshooting

DM DiagMon Architecture

IoT Toolbox Mobile Application User Manual

StickIt! VGA Manual. How to install and use your new StickIt! VGA module

Terms of Use and The Festival Rules

Firmware Update Management Object Architecture

CN12 Technical Reference Guide. CN12 NTSC/PAL Camera. Technical Reference Guide PCB Rev

DM Scheduling Architecture

Instruction Guide February 2017

ARRIS Solutions Inc. TERMS OF USE ARRIS SOFTWARE APPLICATIONS

Device Management Requirements

Multi-Media Card (MMC) DLL Tuning

Optical Engine Reference Design for DLP3010 Digital Micromirror Device

HDSP2X4. HDMI 2 x 4 Splitter with Full HD 1080p

Firmware Update Management Object Architecture

OMA Device Management Server Delegation Protocol

Letters.org. SORRY LETTER TO AUNT. Included: Sorry Letter to Aunt

Reference Release Definition for ConnMO

DLP LightCrafter Display 4710 EVM User s Guide

Installation and Operation Manual. for the. SM-6 Programmable Stereo Mixer

SOC Single Channel H264 + Audio Encoder module

AABB Trademark Usage Guidelines

MAGNETIC HEAD FOR USE WITH QIC-3050-MC RECORDING FORMAT

MAGNETIC HEAD FOR USE WITH QIC-4GB-DC RECORDING FORMAT

Mini Gateway USB for ModFLEX Wireless Networks

Bringing an all-in-one solution to IoT prototype developers

ANCHOR PRO. Version User Manual

ADVANCED TELEVISION SYSTEMS COMMITTEE, INC. CERTIFICATION MARK POLICY

With Latency Killer TM Technology. Model LK-Solo. HP Amp 2x2 Loop Thru Mixer

LavryBlack Series Model AD10 Analog to Digital Converter

OPERATING YOUR SYSTEM WITH MX-850

LavryBlack Series Model DA10 Digital to Analog Converter

Test Report TIDA /14/2014. Test Report For TIDA Aptina Automotive Camera Module 02/14/2014

Low Voltage Multifunctional LED Controller / DMX Decoder. Specification

1X4 HDMI Splitter with 3D Support

PCI MPEG Frame Grabber. Model 616. August 6, 2002

PD18-73/PD18-73LF: GHz Two-Way 0 Power Splitter/Combiner

Michigan Arts Education Instructional and Assessment Program Michigan Assessment Consortium. MUSIC Assessment

DVI Rover 700 User Guide

Installation and Operation Manual. for the. IPC-2, Twin stereo level matching interface

HDMI 1x8 Distribution Amplifier w/ CAT5e/6 outputs up to 394ft. (120 meters) USER MANUAL

Universal ByteBlaster

SportReplay Multichannel Video Recording and Instant Replay system

Channel Mapping the Com1000 Headend. Channel Mapping the Com1000 using EPG generated PSIP Data. Technical Bulletin

Create an Industrial 3D Machine Vision System using DLP Technology

Table of Contents. Introduction Pin Description Absolute Maximum Rating Electrical Specifications... 4

Model Extend HDMI audio and video connections up to 300 feet. Add up to 8 additional receivers with a dedicated network switch

what s in the Box? Camera transmitter with power cable 3M sticker 2 RVS SYSTEMS

USER MANUAL HDMI 1x4 Distribution Amplifier w/ CAT5e/6 outputs up to 394ft. (120 meters)

Introduction. Package Contents. Installation Requirements

Device Management Push Binding

Vocia WR-1. Operation Manual

Model: HDCMP31. Installation Guide

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

8 Port HD/SD-SDI Switch

Device Management Push Binding

DVDO VS4 HDMI Switch. User s Guide How to install, set up, and use your new DVDO product

Combination Solder Pad for Single-chip LEDs with P-LCC-2 and P-LCC-4 Housings Application Note

Owner s Manual. VGA + Audio to HDMI Adapter/Scaler. Model: P HDSC2

X-Series Expansion Cards. X-Video Card

Cisco TelePresence Synch

PCI Frame Grabber. Model 611 (Rev.D)

Component Video + Analog/Digital Audio Wall Plate (6-RCA) AT80COMP7

American National Standard for Electric Lamps Specifications for the Chromaticity of Solid-State Lighting Products

NEMA XR 25 COMPUTED TOMOGRAPHY DOSE CHECK

Precision TNC Coaxial Calibration Kit

ALEPH Z39.50 Client Conformance to U.S. National Z39.50 Profile (ANSI/NISO Z ) Version and Later

American National Standard for Lamp Ballasts High Frequency Fluorescent Lamp Ballasts

HD VIDEO IP STREAMER CT-HDVD-HDSTR-KIT

Better dispensing, better results.


Getting the Most from Alma. Patron Driven Acquisitions (PDA)

General purpose low noise wideband amplifier for frequencies between DC and 2.2 GHz

InfiniBand Trade Association Integrators List Policy

Universal Wireless HDTV Adapter

VideoEase HDMI 3x1 Switcher Kit (110V) Installation Guide

ISIS intouch NET Wi Fi Touch Screen Controller Owner s Manual and Instruction Guide

ATN DNVM-2 ATN DNVM-4 ATN DNVM-6

AT18F Series Configurators. Application Note. Stand-alone or In-System Programming Applications for AT18F Series Configurators. 1.

Jasmine Sub-board Limitation MB87P2020-A

PM8313 D3MX INTERFACING THE D3MX TO THE SSI 78P7200 DS-3 LIU

AT-HDPIX. Users Manual

Setup Guide. Introduction

Model: HD41-ARC. Installation Guide

AN Cascading NXP LCD segment drivers. Document information. Keywords

PCI Express JPEG Frame Grabber Hardware Manual Model 817 Rev.E April 09

AudiaEXPI-4, AudiaEXPO-4 & AudiaEXPI/O-2

Figure 1: AHK1421 Evaluation Board Pictures.

Insulated Cable Engineers Assoc., Inc. Publication No. ICEA P NEMA Standards Publication No. WC

General purpose low noise wideband amplifier for frequencies between DC and 2.2 GHz

Operating Your System. With the MX-880

SDI-SDHDXPRO User Manual. Version1.2

HSK Mine and Portable Cable Splice

Chore-Tronics 2 Breeder Edition Override Box

Setup Guide. Introduction

Instruction Manual. 2.4G Digital Wireless Four Channel Transmitter System RVS-554W. Reverse With Confidence 1

Transcription:

AT&T U-verse Enabled How to Use the TV UI API Publication Date: September 9, 2014

Legal Disclaimer This document and the information contained herein (collectively, the "Information") is provided to you (both the individual receiving this document and any legal entity on behalf of which such individual is acting) ("You" and "Your") by AT&T, on behalf of itself and its affiliates ("AT&T") for informational purposes only. AT&T is providing the Information to You because AT&T believes the Information may be useful to You. The Information is provided to You solely on the basis that You will be responsible for making Your own assessments of the Information and are advised to verify all representations, statements and information before using or relying upon any of the Information. Although AT&T has exercised reasonable care in providing the Information to You, AT&T does not warrant the accuracy of the Information and is not responsible for any damages arising from Your use of or reliance upon the Information. You further understand and agree that AT&T in no way represents, and You in no way rely on a belief, that AT&T is providing the Information in accordance with any standard or service (routine, customary or otherwise) related to the consulting, services, hardware or software industries. AT&T DOES NOT WARRANT THAT THE INFORMATION IS ERROR-FREE. AT&T IS PROVIDING THE INFORMATION TO YOU "AS IS" AND "WITH ALL FAULTS." AT&T DOES NOT WARRANT, BY VIRTUE OF THIS DOCUMENT, OR BY ANY COURSE OF PERFORMANCE, COURSE OF DEALING, USAGE OF TRADE OR ANY COLLATERAL DOCUMENT HEREUNDER OR OTHERWISE, AND HEREBY EXPRESSLY DISCLAIMS, ANY REPRESENTATION OR WARRANTY OF ANY KIND WITH RESPECT TO THE INFORMATION, INCLUDING, WITHOUT LIMITATION, ANY REPRESENTATION OR WARRANTY OF DESIGN, PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, OR ANY REPRESENTATION OR WARRANTY THAT THE INFORMATION IS APPLICABLE TO OR INTEROPERABLE WITH ANY SYSTEM, DATA, HARDWARE OR SOFTWARE OF ANY KIND. AT&T DISCLAIMS AND IN NO EVENT SHALL BE LIABLE FOR ANY LOSSES OR DAMAGES OF ANY KIND, WHETHER DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, SPECIAL OR EXEMPLARY, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF GOODWILL, COVER, TORTIOUS CONDUCT OR OTHER PECUNIARY LOSS, ARISING OUT OF OR IN ANY WAY RELATED TO THE PROVISION, NON-PROVISION, USE OR NON-USE OF THE INFORMATION, EVEN IF AT&T HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES OR DAMAGES. i

Table of Tables Contents 1 Introduction... 1 1.1 Additional Resources... 1 2 Overview... 2 3 TV UI API... 2 4 Sample Code... 3 ii

Table of Examples Example 3-1: Using the TV UI API.... 5 iii

1 Introduction This document is an introduction for developers to the TV UI API. Using this API, you are able to create interfaces for your app on the screen attached to the U- verse receiver. This allows a user to interact with your TV UI app on a television connected to a U-verse receiver. This document includes the basics of adding this functionality to your app and creating a page to display on the television, as well as a code sample using the API to display an image on the television screen. 1.1 Additional Resources In addition to this document, you may find the following documents helpful when developing U-verse Enabled ios apps. How to Set Up a U-verse Enabled Project in Xcode How to Write Your First AT&T U-verse Enabled ios App In addition, you can find more technical information on the AT&T Developer Program web site at http://developer.att.com/u-verse. Page 1 of 5

2 Overview The TV UI API allows you to display content from your app onto the screen attached to the U-verse receiver. This allows you to draw content on screen, such as buttons, images, and text, as well as play audio and visual content. In ios this is handled by an object conforming to the uvetvapplicationdelegate protocol. The two methods are used to serve this content: 3 TV UI API The pageforname:withparams:forframe method enables you to create the uvepages that will be used in your app. Each uvepage you create will be a full TV screen of content. Each time a new page is to be drawn on screen in response to a user action, this method is called with the name of the page passed as a parameter. Using this method you create a full uvepage, adding and positioning the UI elements you wish to display on the TV screen, and then return the uvepage object you created. The resourceforname:withparams:forframe method provides the resources used on each uvepage. These can include video and image files. The resourceforname:withparams:forframe method separates the loading of resource elements from the page layout itself, leading to a quicker initial page load. The TV UI API allows you to display content from your app onto the screen attached to the U-verse receiver. This allows you to draw content, such as buttons, images, and text, as well as play audio and visual content, on screen. To add second-screen functionality to your app, you use the uvetvapplicationdelegate protocol. This protocol has four methods: pageforname:withparams:forframe: This is the callback method that your app receives each time that the U-verse receiver displays a page of content on the screen. Use this method to create UVEPage/UVEPanel objects with UVE gadgets, UVE actions, UVE Animations resourceforname:withparams:forframe:this is the callback method that your app receives each time that a page requests a media file, such as images, audio and video. Although you create the object and add it to the page using the pageforname:withparams:forframe method, when the resource is needed the receiver will call this method, passing the URL of the resource as the name argument. The app then returns the resource as NSData for network transmission. applicationserverdidstart: This method is called when the application server is started. After you receive this callback, the app can display a page on the screen. Page 2 of 5

4 Sample Code applicationserverdidfailtostartwitherror: This method is called when the application server fails to start. After you have implemented the methods in the uvetvapplicationdelegate protocol, call starttvapplicationwithdelegate on the SetTopBox object, on which you wish to display the content. The code sample below starts the application server on the engaged receiver, passing the uvetvapplicationdelegate object that contains this sample as the delegate. [[UverseConnectedManagersharedManager].mostRecentlyEngagedSetTopBox starttvapplicationwithdelegate:self]; After you receive the applicationserverdidstart callback, you can call the displaypagewithname method on the SetTopBox object on which you started the application server, passing the name of the page that you wish to display as the argument. [[UverseConnectedManagersharedManager].mostRecentlyEngagedSetTopBox displaypagewithname:@"test"]; After you call displaypagewithname, the object that you passed as the argument to the starttvapplicationwithdelegate method will receive the pageforname:withparams:forframe callback. this callback is received for each page your app displays, you should check the pagename argument and then display the correct content for the requested page. After the call to the pageforname:withparams:forframe callback returns the page to be displayed to the SetTopBox, the callback resourceforname:withparams:forframe is called if any resources need to be loaded on the page. Below is an example with a basic implementation of the TV UI API that displays an image on the screen. This example sends an image to be displayed on the screen that is attached to the receiver. Using the ios initwithnibname:bundle method, this example checks if the application server has been started, and if not it calls the starttvapplicationwithdelegate method to start the application server. Next, in the applicationserverdidstart callback, this example calls the displaypagewithname method to display the page on the screen attached to the U-verse receiver. The U-verse receiver then calls the pageforname:withparams:forframe method. In this example, the method creates and adds the uveimage object to the page, and then returns the page. Finally, when the U-verse receiver is about to the display the image, it calls the resourceforname:withparams:forframe method. There are two important things Page 3 of 5

to consider regarding this method. First, the resourcename argument is the URL of the resource and not the name. Second, this method returns an NSData object, so the source must be wrapped in an NSData object before it is returned. TV UI API 1 @implementation appserverviewcontroller 2 @synthesize associatedstb = _associatedstb; 3 @synthesize page = _page; 4 5 - (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil 6 { 7 self = [super initwithnibname:nibnameornil bundle:nibbundleornil]; 8 if (self) { 9 UverseConnectedManager *uvcmgr = [UverseConnectedManager sharedmanager]; 10 _associatedstb = [UverseConnectedManager sharedmanager].mostrecentlyengagedsettopbox; 11 12 if (uvcmgr.appserverstate!= AppServerStarted){ 13 [_associatedstb starttvapplicationwithdelegate:self]; 14 } 15 } 16 return self; 17 } 18 19 #pragma mark - uvetvapplicationdelegate 20 - (void)applicationserverdidstart{ 21 NSLog(@"applicationServerDidStart"); 22 [self.associatedstb displaypagewithname:@"test"]; 23 } 24 25 - (void)applicationserverdidfailtostartwitherror:(nserror*)error{ 26 NSLog(@"Failed to start Application Server"); } 27 28 -(uvepage *)pageforname:(nsstring *)pagename withparams:(nsmutabledictionary *)params forframe:(cgrect)tvframe 29 { 30 if ([pagename isequaltostring:@"test"]){ 31 self.page = [[uvepage alloc] initpagewithname:@"test"]; 32 CGRect imageframe = CGRectMake(20,20, 300, 200); 33 NSURL *imageurl = [NSURL urlwithstring:@"car.jpg"]; 34 uveimage *image = [[uveimage alloc] initimagewithname:@"image" imageurl:imageurl frame:imageframe]; 35 [self.page addgadget:image]; Page 4 of 5

36 return page; 37 } 38 else { 39 return nil; 40 } 41 } 42 43 - (NSData *)resourceforname:(nsstring*)resourcename withparams:(nsmutabledictionary*)params 44 { 45 if ( [resourcename isequaltostring:@"car.jpg"]){ 46 NSURL imageurl = [NSURL urlwithstring:@"car.jpg"]; 47 return [NSData datawithcontentsofurl:imageurl]; 48 } 49 } 50 @end Example 4-1: Using the TV UI API. Page 5 of 5