ASFService API
console log "version value = " + value ; } catch error { console log "error code = " + error code ; } 2 4 serviceconnectorobject defines a webapi object instance [nointerfaceobject] interface serviceconnectorobject { attribute serviceconnector serviceconnector; }; allshare implements serviceconnectorobject; attributes serviceconnector serviceconnector provides interfaces for connecting to the asf service 2 5 serviceprovidercreatesuccesscallback defines the callback invoked when a serviceprovider object is created successfully [callback=functiononly, nointerfaceobject] interface serviceprovidercreatesuccesscallback { void onsuccess serviceprovider serviceprovider ; }; methods onsuccess callback method invoked when a serviceprovider object is successfully created void onsuccess serviceprovider serviceprovider ; privilege level public privilege http //developer samsung com/privilege/allshare parameters serviceprovider created serviceprovider object code example // onsuccess sprovidercallback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } 2 6 serviceprovidererrorcallback defines the callback invoked if a serviceprovider object operation fails [callback=functiononly, nointerfaceobject] interface serviceprovidererrorcallback { void onerror webapierror error, servicestate state ; }; methods onerror callback method invoked if a serviceprovider operation fails void onerror webapierror error, servicestate state ; privilege level public privilege http //developer samsung com/privilege/allshare parameters error object indicating the error type and message state current service state exceptions webapiexception with error type unknownerror, for any other error code example // onerror eprovidercallback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } 2 7 serviceconnector provides the connection to the allshare framework asf service [nointerfaceobject] interface serviceconnector { void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; serviceprovider getserviceprovider ; }; methods createserviceprovider creates a serviceprovider object void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters successcallback [optional][nullable] callback method to invoke if the request is successful errorcallback [optional][nullable] callback method to invoke if the request fails exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example // define the serviceprovider creation success callback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } deleteserviceprovider deletes a serviceprovider object void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters successcallback [optional][nullable] callback method to invoke if the request is successful errorcallback [optional][nullable] callback method to invoke if the request fails exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example // you must already have a serviceprovider object var serviceprovider; // define the serviceprovider deletion success callback function sproviderdeletecallback { console log "the asf service provider has been deleted properly " ; } // define the serviceprovider deletion error callback function eproviderdeletecallback error, state { console log error name ; console log "the current asf service state " + state ; } // try to delete the serviceprovider object try { webapis allshare serviceconnector deleteserviceprovider sproviderdeletecallback, eproviderdeletecallback ; } catch e { console log e message ; } getserviceprovider returns a serviceprovider object that is connected to the allshare framework serviceprovider getserviceprovider ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value serviceprovider serviceprovider serviceprovider object connected to the allshare framework exceptions webapiexception with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example try { // you must already have a serviceprovider object var serviceprovider = webapis allshare serviceconnector getserviceprovider ; if serviceprovider == null { console log "service provider was not created properly" ; } } catch e { console log e message ; } 2 8 serviceprovider provides methods for obtaining a devicefinder object [nointerfaceobject] interface serviceprovider { devicefinder getdevicefinder ; servicestate getservicestate ; }; methods getdevicefinder returns the devicefinder object used to find allshare devices devicefinder getdevicefinder ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value devicefinder devicefinder devicefinder object exceptions webapiexception with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; try { devicefinder = serviceprovider getdevicefinder ; } catch e { console log e name ; } getservicestate retrieves the current asf service state servicestate getservicestate ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value servicestate servicestate servicestate value exceptions webapiexception with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example // you must already have a serviceprovider object var serviceprovider; try { servicestate = serviceprovider getservicestate ; } catch e { console log e name ; } 2 9 devicediscoverycallback defines a generic callback for device discovery event notifications [callback, nointerfaceobject] interface devicediscoverycallback { void ondeviceadded device device ; void ondeviceremoved device device ; }; methods ondeviceadded callback method invoked when a new device appears on the network void ondeviceadded device device ; privilege level public privilege http //developer samsung com/privilege/allshare parameters device newly-discovered device code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } ondeviceremoved callback method invoked when a device disappears from the network void ondeviceremoved device device ; privilege level public privilege http //developer samsung com/privilege/allshare parameters device device that has disappeared code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } 2 10 icon defines icon information [nointerfaceobject] interface icon { readonly attribute long depth; readonly attribute long height; readonly attribute long width; readonly attribute domstring mimetype; readonly attribute domstring iconuri; }; attributes readonly long depth icon color depth, in bits per pixel readonly long height icon height readonly long width icon width readonly domstring mimetype icon mime type readonly domstring iconuri icon uri 2 11 devicefinder provides methods for finding allshare devices [nointerfaceobject] interface devicefinder { device getdevice devicetype devicetype, deviceid id ; device[] getdevicelist devicetype devicetype ; void refresh ; long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; void removedevicediscoverylistener long devicediscoverylistener ; object getproperty string propertyname, device deviceinfo ; }; methods getdevice returns a device object with a specific device id and type device getdevice devicetype devicetype, deviceid id ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicetype device type i e mediaprovider id the unique id of the device return value device device device object exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var mediaproviderid; // the mediaprovider's device id is assumed to be known try { var devicefinder = serviceprovider getdevicefinder ; // get the mediaprovider device object var device = devicefinder getdevice "mediaprovider", mediaproviderid ; // print the device id console log device id ; } catch e { console log e name ; } getdevicelist lists the discovered devices with a specific device type device[] getdevicelist devicetype devicetype ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicetype device type i e mediaprovider return value device[] device[] device array exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider try { var devicefinder = serviceprovider getdevicefinder ; var devices = devicefinder getdevicelist "mediaprovider" ; // print the number of available mediaprovider devices console log devices length ; } catch e { console log e name ; } refresh refreshes the list of devices on the network void refresh ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare exceptions webapiexception with error type securityerror, if the application does not have the privilege to call this method with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; try { var devicefinder = serviceprovider getdevicefinder ; var providers = devicefinder getdevicelist "mediaprovider" ; if providers length == 0 { // refresh the device list and retrieve the provider list again devicefinder refresh ; providers = devicefinder getdevicelist "mediaprovider" ; } } catch e { console log e name ; } adddevicediscoverylistener registers a device discovery event listener long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicediscoverycallback callback method invoked when a device discovery event occurs return value long long event listener id exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } removedevicediscoverylistener unregisters a device discovery event listener void removedevicediscoverylistener long devicediscoverylistener ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicediscoverylistener event listener id exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var listenerid; // listener id returned from adddevicediscoverylistener var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; serviceprovider getdevicefinder removedevicediscoverylistener listenerid ; } catch e { console log e name ; } getproperty get properties of a device object getproperty string propertyname, device deviceinfo ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters propertyname string deviceinfo deviceobject return value object object exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type securityerror, if the application does not have the privilege to call this method with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var mediaproviderid; // the mediaprovider's device id is assumed to be known var propertyname; // the mediaprovider's propertyname is assumed to be known try { var devicefinder = serviceprovider getdevicefinder ; // get the mediaprovider device object var device = devicefinder getdevice "mediaprovider", mediaproviderid ; var propertydata = devicefinder getproperty propertyname , device ; console log propertydata } catch e { console log e name ; } 2 12 device retrieves information about a device [nointerfaceobject] interface device { readonly attribute deviceid id; readonly attribute devicedomain devicedomain; readonly attribute devicetype devicetype; readonly attribute domstring ipaddress; readonly attribute domstring? modelname; readonly attribute domstring name; readonly attribute domstring nic; }; attributes readonly deviceid id unique device id readonly devicedomain devicedomain device domain readonly devicetype devicetype device type readonly domstring ipaddress device ipv4 address readonly domstring modelname [nullable] device model name readonly domstring name device name readonly domstring nic device nic network interface controller name 2 13 mediaprovidersuccesscallback defines the callback invoked when a provider object completes a retrieval operation successfully [callback=functiononly, nointerfaceobject] interface mediaprovidersuccesscallback { void onsuccess item[] itemlist, boolean endofitems, deviceid providerid ; }; methods onsuccess callback method for a successful retrieval request void onsuccess item[] itemlist, boolean endofitems, deviceid providerid ; privilege level public privilege http //developer samsung com/privilege/allshare parameters itemlist item list if there are no items, an empty list is returned endofitems end of items flag providerid provider device identifier code example //onsuccess searchcb var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 2 14 mediaprovidererrorcallback defines a generic error callback for provider-related operations [callback=functiononly, nointerfaceobject] interface mediaprovidererrorcallback { void onerror webapierror error, deviceid providerid ; }; methods onerror callback method invoked if an error occurs void onerror webapierror error, deviceid providerid ; privilege level public privilege http //developer samsung com/privilege/allshare parameters error object indicating the error type and message providerid provider device identifier exceptions webapiexception with error type securityerror, if the application does not have the privilege to call this method code example //onerror errorcb var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 2 15 mediaprovider enables sharing media content between devices [nointerfaceobject] interface mediaprovider { readonly attribute boolean issearchable; readonly attribute item rootfolder; void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; }; attributes readonly boolean issearchable whether the provider supports the search capability readonly item rootfolder root folder object methods browse gets the item list in a folder at the specified starting index and count void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters folderitem folder startindex starting zero-based offset requestcount requested number of entries browsecallback callback invoked when the browse operation is successful it returns a set of items matching the filter errorcallback [optional][nullable] generic error callback for provider-related operations browsefilter [optional][nullable] browse filter to be applied parameters can include attributefilter objects constructed with "itemtype", null , itemtype[] sortmode [optional][nullable] sorting to use on the content list sorting by title, date, artist, or albumtitle attribute is only supported on the tizen web platform other web platforms ignore this parameter exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; // define a browse callback function browsecb list, endofitem, providerid { // retrieve the item list } function errorcb error, deviceid { console log error message ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; // define a sort mode var mode = new webapis sortmode "title", "asc" ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // retrieves the first dms from the root folder providers[0] browse providers[0] rootfolder, 0, 10, browsecb, errorcb, filter, mode ; } } catch e { console log e message ; } search searches content for a specific keyword void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters keyword search keyword startindex starting zero-based offset requestcount requested number of entries successcallback callback to invoke when the search operation is successful it returns a set of items matching the filter errorcallback [optional][nullable] generic error callback for provider-related operations searchfilter [optional][nullable] filter applied to the search result parameters can include attributefilter objects constructed with "itemtype", null , itemtype[] exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 3 full webidl module asfservice { enum itemtype { "audio", "folder", "image", "unknown", "video" }; enum servicestate { "disabled", "enabled", "unknown" }; enum devicetype { "mediaprovider", "unknown" }; enum devicedomain { "local_network", "unknown" }; typedef domstring deviceid; [constructor domstring uri, optional domstring mimetype, optional domstring title ] interface item { readonly attribute domstring albumtitle; readonly attribute domstring artist; readonly attribute date date; readonly attribute unsigned long long duration; readonly attribute domstring extension; readonly attribute double filesize; readonly attribute domstring genre; readonly attribute domstring mimetype; readonly attribute unsigned long? width; readonly attribute unsigned long? height; attribute domstring? subtitleuri; readonly attribute domstring? thumbnailuri; attribute domstring title; readonly attribute itemtype itemtype; readonly attribute domstring itemuri; readonly attribute boolean isrootfolder; readonly attribute itemcontentbuildtype contentbuildtype; }; [nointerfaceobject] interface webapiallshareobject { readonly attribute allshare allshare; }; webapi implements webapiallshareobject; [nointerfaceobject] interface allsharemanager { domstring getversion ; }; [nointerfaceobject] interface serviceconnectorobject { attribute serviceconnector serviceconnector; }; allshare implements serviceconnectorobject; [callback=functiononly, nointerfaceobject] interface serviceprovidercreatesuccesscallback { void onsuccess serviceprovider serviceprovider ; }; [callback=functiononly, nointerfaceobject] interface serviceprovidererrorcallback { void onerror webapierror error, servicestate state ; }; [nointerfaceobject] interface serviceconnector { void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; serviceprovider getserviceprovider ; }; [nointerfaceobject] interface serviceprovider { devicefinder getdevicefinder ; servicestate getservicestate ; }; [callback, nointerfaceobject] interface devicediscoverycallback { void ondeviceadded device device ; void ondeviceremoved device device ; }; [nointerfaceobject] interface icon { readonly attribute long depth; readonly attribute long height; readonly attribute long width; readonly attribute domstring mimetype; readonly attribute domstring iconuri; }; [nointerfaceobject] interface devicefinder { device getdevice devicetype devicetype, deviceid id ; device[] getdevicelist devicetype devicetype ; void refresh ; long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; void removedevicediscoverylistener long devicediscoverylistener ; object getproperty string propertyname, device deviceinfo ; }; [nointerfaceobject] interface device { readonly attribute deviceid id; readonly attribute devicedomain devicedomain; readonly attribute devicetype devicetype; readonly attribute domstring ipaddress; readonly attribute domstring? modelname; readonly attribute domstring name; readonly attribute domstring nic; }; [callback=functiononly, nointerfaceobject] interface mediaprovidersuccesscallback { void onsuccess item[] itemlist, boolean endofitems, deviceid providerid ; }; [callback=functiononly, nointerfaceobject] interface mediaprovidererrorcallback { void onerror webapierror error, deviceid providerid ; }; [nointerfaceobject] interface mediaprovider { readonly attribute boolean issearchable; readonly attribute item rootfolder; void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; }; };