To use Samsung Product API, <script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script> Should be loaded in index.html
To use Samsung Product API,
<script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script>
Should be loaded in index.html
This API enables initiating the AllShare Framework.
Since : 2.3
Product : TV, AV, B2B
Privilege Level : Public
Privilege : http://developer.samsung.com/privilege/allshare
Specifies the item type.
enum ItemType { "AUDIO", "FOLDER", "IMAGE", "UNKNOWN", "VIDEO" };
The following values are supported
Specifies the ASF service state.
enum ServiceState { "DISABLED", "ENABLED", "UNKNOWN" };
Specifies the device types which can be discovered.
enum DeviceType { "MEDIAPROVIDER", "UNKNOWN" };
Specifies the network domain in which the device is located.
enum DeviceDomain { "LOCAL_NETWORK", "UNKNOWN" };
Device identifier
typedef DOMString DeviceId;
Array of devices
typedef sequence<Device> DeviceArray;
Array of icons
typedef sequence<Icon> IconArray;
Array of items provided by a device on the network
typedef sequence<Item> ItemList;
Constructs an object that represents a media item or folder.
[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; };
Item(DOMString uri, optional DOMString mimeType, optional DOMString title)
Parameters :
Defines an AllShare object instance.
[NoInterfaceObject] interface WebApiAllShareObject { readonly attribute AllShare allshare; };
WebApi implements WebApiAllShareObject;
AllShare root API
[NoInterfaceObject] interface AllShare { };
Defines a WebApi object instance.
[NoInterfaceObject] interface ServiceConnectorObject { attribute ServiceConnector serviceconnector; };
AllShare implements ServiceConnectorObject;
Defines the callback invoked when a ServiceProvider object is created successfully.
[Callback=FunctionOnly, NoInterfaceObject] interface ServiceProviderCreateSuccessCallback { void onsuccess(ServiceProvider serviceProvider); };
Callback method invoked when a ServiceProvider object is successfully created.
void onsuccess(ServiceProvider serviceProvider);
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); }
Defines the callback invoked if a ServiceProvider object operation fails.
[Callback=FunctionOnly, NoInterfaceObject] interface ServiceProviderErrorCallback { void onerror(WebAPIError error, ServiceState state); };
Callback method invoked if a ServiceProvider operation fails.
void onerror(WebAPIError error, ServiceState state);
// 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); }
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(); };
Creates a ServiceProvider object.
void createServiceProvider(optional ServiceProviderCreateSuccessCallback? successCallback, optional ServiceProviderErrorCallback? errorCallback);
Exceptions :
// 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); }
Deletes a ServiceProvider object.
void deleteServiceProvider(optional SuccessCallback? successCallback, optional ServiceProviderErrorCallback? errorCallback);
// 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); }
Returns a ServiceProvider object that is connected to the AllShare Framework.
ServiceProvider getServiceProvider();
Return Value :
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); }
Provides methods for obtaining a DeviceFinder object.
[NoInterfaceObject] interface ServiceProvider { DeviceFinder getDeviceFinder(); ServiceState getServiceState(); };
Returns the DeviceFinder object used to find AllShare devices.
DeviceFinder getDeviceFinder();
var serviceProvider = webapis.allshare.serviceconnector.getServiceProvider(); try { deviceFinder = serviceProvider.getDeviceFinder(); } catch(e) { console.log(e.name); }
Retrieves the current ASF service state.
ServiceState getServiceState();
// You must already have a ServiceProvider object var serviceProvider; try { serviceState = serviceProvider.getServiceState(); } catch(e) { console.log(e.name); }
Defines a generic callback for device discovery event notifications.
[Callback, NoInterfaceObject] interface DeviceDiscoveryCallback { void ondeviceadded(Device device); void ondeviceremoved(Device device); };
Callback method invoked when a new device appears on the network.
void ondeviceadded(Device device);
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); }
Callback method invoked when a device disappears from the network.
void ondeviceremoved(Device device);
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; };
Provides methods for finding AllShare devices.
[NoInterfaceObject] interface DeviceFinder { Device getDevice(DeviceType deviceType, DeviceId id); DeviceArray getDeviceList(DeviceType deviceType); void refresh(); long addDeviceDiscoveryListener(DeviceDiscoveryCallback deviceDiscoveryCallback); void removeDeviceDiscoveryListener(long deviceDiscoveryListener); };
Returns a Device object with a specific device ID and type.
Device getDevice(DeviceType deviceType, DeviceId id);
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); }
Lists the discovered devices with a specific device type.
DeviceArray getDeviceList(DeviceType deviceType);
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); }
Refreshes the list of devices on the network.
void refresh();
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); }
Registers a device discovery event listener.
long addDeviceDiscoveryListener(DeviceDiscoveryCallback deviceDiscoveryCallback);
Unregisters a device discovery event listener.
void removeDeviceDiscoveryListener(long deviceDiscoveryListener);
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); }
Retrieves information about a device.
[NoInterfaceObject] interface Device { readonly attribute DeviceId id; readonly attribute DeviceDomain deviceDomain; readonly attribute DeviceType deviceType; readonly attribute IconArray iconArray; readonly attribute DOMString ipAddress; readonly attribute DOMString? modelName; readonly attribute DOMString name; readonly attribute DOMString nic; };
Defines the callback invoked when a provider object completes a retrieval operation successfully.
[Callback=FunctionOnly, NoInterfaceObject] interface MediaProviderSuccessCallback { void onsuccess(ItemList itemList, boolean endOfItems, DeviceId providerId); };
Callback method for a successful retrieval request.
void onsuccess(ItemList itemList, boolean endOfItems, DeviceId providerId);
//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); }
Defines a generic error callback for provider-related operations.
[Callback=FunctionOnly, NoInterfaceObject] interface MediaProviderErrorCallback { void onerror(WebAPIError error, DeviceId providerId); };
Callback method invoked if an error occurs.
void onerror(WebAPIError error, DeviceId providerId);
//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); }
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); };
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);
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); }
Searches content for a specific keyword.
void search(DOMString keyword, unsigned long startIndex, unsigned long requestCount, MediaProviderSuccessCallback successCallback, optional MediaProviderErrorCallback? errorCallback, optional AbstractFilter? searchFilter);
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); }
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; typedef sequence<Device> DeviceArray; typedef sequence<Icon> IconArray; typedef sequence<Item> ItemList; [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 AllShare { }; [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); DeviceArray getDeviceList(DeviceType deviceType); void refresh(); long addDeviceDiscoveryListener(DeviceDiscoveryCallback deviceDiscoveryCallback); void removeDeviceDiscoveryListener(long deviceDiscoveryListener); }; [NoInterfaceObject] interface Device { readonly attribute DeviceId id; readonly attribute DeviceDomain deviceDomain; readonly attribute DeviceType deviceType; readonly attribute IconArray iconArray; readonly attribute DOMString ipAddress; readonly attribute DOMString? modelName; readonly attribute DOMString name; readonly attribute DOMString nic; }; [Callback=FunctionOnly, NoInterfaceObject] interface MediaProviderSuccessCallback { void onsuccess(ItemList 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); }; };