mediacontroller api the media controller api provides functions for communication between the media controller server and the media controller client it helps to transfer the information like playback info, shuffle/repeat mode and metadata from media controller server to client allows to control server state by sending commands from client for more information on the media controller features, see media controller guide since 5 0 summary of interfaces and methods interface method mediacontrollerobject mediacontrollermanager mediacontrollerclient getclient mediacontrollerserver createserver mediacontrollerserver mediacontrollerclientinfo[] getallclientsinfo void updateplaybackstate mediacontrollerplaybackstate state void updateiconuri domstring? iconuri void updateplaybackposition unsigned long long position void updateplaybackagerating mediacontrollercontentagerating rating void updateplaybackcontenttype mediacontrollercontenttype type void updateshufflemode boolean mode void updaterepeatstate mediacontrollerrepeatstate state void updatemetadata mediacontrollermetadata metadata long addchangerequestplaybackinfolistener mediacontrollerchangerequestplaybackinfocallback listener void removechangerequestplaybackinfolistener long watchid void setsearchrequestlistener mediacontrollersearchrequestcallback listener void unsetsearchrequestlistener long addcommandlistener mediacontrollerreceivecommandcallback listener void removecommandlistener long watchid mediacontrollerplaylist createplaylist domstring name void saveplaylist mediacontrollerplaylist playlist, optional successcallback? successcallback, optional errorcallback? errorcallback void deleteplaylist domstring playlistname, optional successcallback? successcallback, optional errorcallback? errorcallback void updateplaybackitem domstring playlistname, domstring index void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback mediacontrollerclient void findservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback mediacontrollerserverinfo? getlatestserverinfo long addabilitychangelistener mediacontrollerabilitychangecallback listener void removeabilitychangelistener long watchid void findsubscribedservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback void setcustomeventlistener mediacontrollerreceivecommandcallback listener void unsetcustomeventlistener mediacontrollerserverinfo void sendplaybackstate mediacontrollerplaybackstate state, optional successcallback? successcallback, optional errorcallback? errorcallback void sendplaybackposition unsigned long long position, optional successcallback? successcallback, optional errorcallback? errorcallback void sendshufflemode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback void sendrepeatstate mediacontrollerrepeatstate state, optional successcallback? successcallback, optional errorcallback? errorcallback void sendsearchrequest searchfilter[] request, mediacontrollersearchrequestreplycallback replycallback, optional errorcallback? errorcallback void sendcommand domstring command, bundle? data, mediacontrollersendcommandsuccesscallback successcallback, optional errorcallback? errorcallback long addserverstatuschangelistener mediacontrollerserverstatuschangecallback listener void removeserverstatuschangelistener long watchid long addplaybackinfochangelistener mediacontrollerplaybackinfochangecallback listener void removeplaybackinfochangelistener long watchid void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback void sendplaybackitem domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position long addplaylistupdatedlistener mediacontrollerplaylistupdatedcallback listener void removeplaylistupdatedlistener long listenerid mediacontrollerplaybackinfo mediacontrollerabilities mediacontrollerplaybackabilities void saveabilities mediacontrollerdisplaymodeabilities mediacontrollerdisplayrotationabilities mediacontrollerabilitiesinfo void subscribe void unsubscribe mediacontrollerplaybackabilitiesinfo mediacontrollerdisplaymodeabilitiesinfo mediacontrollerdisplayrotationabilitiesinfo mediacontrollersubtitles long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener void removechangerequestlistener long watchid mediacontrollersubtitlesinfo void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback long addmodechangelistener mediacontrollerenabledchangecallback listener void removemodechangelistener long watchid mediacontrollermode360 long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener void removechangerequestlistener long watchid mediacontrollermode360info void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback long addmodechangelistener mediacontrollerenabledchangecallback listener void removemodechangelistener long watchid mediacontrollerdisplaymode long addchangerequestlistener mediacontrollerdisplaymodechangerequestcallback listener void removechangerequestlistener long watchid mediacontrollerdisplaymodeinfo void sendrequest mediacontrollerdisplaymodetype type, mediacontrollersendcommandsuccesscallback replycallback long addmodechangelistener mediacontrollerdisplaymodechangecallback listener void removemodechangelistener long watchid mediacontrollerdisplayrotation long addchangerequestlistener mediacontrollerdisplayrotationchangerequestcallback listener void removechangerequestlistener long watchid mediacontrollerclientinfo void sendevent domstring eventname, bundle? data, mediacontrollersendcommandsuccesscallback successcallback mediacontrollerdisplayrotationinfo void sendrequest mediacontrollerdisplayrotationtype displayrotation, mediacontrollersendcommandsuccesscallback replycallback long adddisplayrotationchangelistener mediacontrollerdisplayrotationchangecallback listener void removedisplayrotationchangelistener long watchid mediacontrollermetadata mediacontrollerplaylistitem mediacontrollermetadatainit mediacontrollerplaylist void additem domstring index, mediacontrollermetadatainit metadata void getitems mediacontrollergetitemssuccesscallback successcallback, optional errorcallback? errorcallback searchfilter mediacontrollerserverinfoarraysuccesscallback void onsuccess mediacontrollerserverinfo[] servers mediacontrollersendcommandsuccesscallback void onsuccess object? data, optional long code requestreply mediacontrollersearchrequestreplycallback void onreply requestreply? reply mediacontrollersearchrequestcallback requestreply? onrequest applicationid clientname, searchfilter[] request mediacontrollerreceivecommandcallback requestreply? onsuccess applicationid senderappname, domstring command, object data mediacontrollerenabledchangerequestcallback requestreply? onreply applicationid clientname, boolean enabled mediacontrollerenabledchangecallback void onchange boolean enabled mediacontrollerdisplaymodechangerequestcallback requestreply? onreply applicationid clientname, mediacontrollerdisplaymodetype mode mediacontrollerdisplaymodechangecallback void onchange mediacontrollerdisplaymodetype mode mediacontrollerdisplayrotationchangerequestcallback requestreply? onreply applicationid clientname, mediacontrollerdisplayrotationtype displayrotation mediacontrollerdisplayrotationchangecallback void onchange mediacontrollerdisplayrotationtype displayrotation mediacontrollerserverstatuschangecallback void onsuccess mediacontrollerserverstate status mediacontrollerplaybackinfochangecallback void onplaybackchanged mediacontrollerplaybackstate state, unsigned long long position void onshufflemodechanged boolean mode void onrepeatstatechanged mediacontrollerrepeatstate state void onmetadatachanged mediacontrollermetadata metadata mediacontrollerchangerequestplaybackinfocallback void onplaybackstaterequest mediacontrollerplaybackstate state, applicationid clientname void onplaybackpositionrequest unsigned long long position, applicationid clientname void onshufflemoderequest boolean mode, applicationid clientname void onrepeatstaterequest mediacontrollerrepeatstate state, applicationid clientname void onplaybackitemrequest domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position, applicationid clientname mediacontrollergetallplaylistssuccesscallback void onsuccess mediacontrollerplaylist[] playlists mediacontrollerplaylistupdatedcallback void onplaylistupdated domstring servername, mediacontrollerplaylist playlist void onplaylistdeleted domstring servername, domstring playlistname mediacontrollergetitemssuccesscallback void onsuccess mediacontrollerplaylistitem[] items mediacontrollerabilitychangecallback void onplaybackabilitychanged mediacontrollerserverinfo server, mediacontrollerplaybackabilitiesinfo abilities void ondisplaymodeabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplaymodeabilitiesinfo abilities void ondisplayrotationabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplayrotationabilitiesinfo abilities void onsimpleabilitychanged mediacontrollerserverinfo server, mediacontrollersimpleability type, mediacontrollerabilitysupport support 1 type definitions 1 1 mediacontrollerserverstate the media controller server state enum mediacontrollerserverstate { "active", "inactive" }; since 5 0 active - corresponds to active server state inactive - corresponds to inactive server state 1 2 mediacontrollersearchcategory search category enum mediacontrollersearchcategory { "no_category", "title", "artist", "album", "genre", "tpo" }; since 5 5 no_category - no search category title - search by title artist - search by artist album - search by album genre - search by genre tpo - search by time place occasion 1 3 mediacontrollerplaybackstate defines media playback state enum mediacontrollerplaybackstate { "play", "pause", "stop", "next", "prev", "forward", "rewind" }; since 5 0 play - corresponds to the "playing" media controller playback state pause - corresponds to the "paused" media controller playback state stop - corresponds to the "stopped" media controller playback state next - corresponds to the "moving to next" media controller playback state prev - corresponds to the "moving to previous" media controller playback state forward - corresponds to the "forwarding" media controller playback state rewind - corresponds to the "rewinding" media controller playback state 1 4 mediacontrollerrepeatstate defines states for repeating media enum mediacontrollerrepeatstate { "repeat\_off", "repeat\_one", "repeat_all" }; since 5 5 the possible states are repeat_off - repeating is disabled repeat_one - repeating one media repeat_all - repeating all media 1 5 mediacontrollercontenttype content type enum mediacontrollercontenttype { "image", "music", "video", "other", "undecided" }; since 5 5 image - content type for images music - content type for music video - content type for videos other - content type for other media undecided - content type for unspecified media types 1 6 mediacontrollercontentagerating media controller content age rating enum mediacontrollercontentagerating { "all", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19" }; since 5 5 each value represents the minimum age restriction for the media 1 7 mediacontrollerabilitysupport the media controller ability support values enum mediacontrollerabilitysupport { "yes", "no", "undecided" }; since 5 5 yes - ability is supported no - ability is not supported undecided - the support of ability is not set 1 8 mediacontrollersimpleability the media controller simple ability types simple means, that each ability is described by a single mediacontrollerabilitysupport value and is not a part of a complex ability structure enum mediacontrollersimpleability { "playback_position", "shuffle", "repeat", "playlist", "client_custom", "search", "subtitles", "mode_360" }; since 5 5 playback_position - ability to change playback position shuffle - ability to change shuffle mode repeat - ability to change repeat state playlist - ability to add/change/remove playlists client_custom - ability to receive custom commands from media controller clients search - ability to receive search requests from media controller clients subtitles - ability to receive requests for subtitles mode change from media controller clients mode_360 - ability to receive requests for spherical 360° mode change from media controller clients 1 9 mediacontrollerdisplaymodetype types of supported media controller display modes enum mediacontrollerdisplaymodetype { "letter_box", "origin_size", "full_screen", "cropped_full" }; since 5 5 letter_box - letter box display mode type origin_size - origin size display mode type full_screen - full screen display mode type cropped_full - cropped full screen display mode type 1 10 mediacontrollerdisplayrotationtype the media controller rotation values enum mediacontrollerdisplayrotationtype { "rotation_none", "rotation_90", "rotation_180", "rotation_270" }; since 5 5 rotation_none - display is not rotated rotation_90 - display is rotated by 90° rotation_180 - display is rotated by 180° rotation_270 - display is rotated by 270° 2 interfaces 2 1 mediacontrollerobject this interface defines what is instantiated by the tizen object from the tizen platform [nointerfaceobject] interface mediacontrollerobject { readonly attribute mediacontrollermanager mediacontroller; }; since 5 0 there is a tizen mediacontroller object that allows access to the media controller api attributes readonly mediacontrollermanager mediacontroller object representing a media controller manager since 5 0 2 2 mediacontrollermanager this interface provides access to the mediacontrollerobject object [nointerfaceobject] interface mediacontrollermanager { mediacontrollerclient getclient raises webapiexception ; mediacontrollerserver createserver raises webapiexception ; }; since 5 0 methods getclient gets the client object if not exist, client will be automatically created mediacontrollerclient getclient ; since 5 0 privilege level public privilege http //tizen org/privilege/mediacontroller client return value mediacontrollerclient the mediacontroller client object exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type securityerror, if the application does not have the privilege to call this method with error type unknownerror, if any other error occurs code example try { var mcclient = tizen mediacontroller getclient ; } catch err { console log err name + " " + err message ; } createserver creates the server object which holds playback state, meta data and is controlled by client mediacontrollerserver createserver ; since 5 0 privilege level public privilege http //tizen org/privilege/mediacontroller server return value mediacontrollerserver the mediacontroller server object exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type securityerror, if the application does not have the privilege to call this method with error type unknownerror, if any other error occurs code example try { var mcserver = tizen mediacontroller createserver ; } catch err { console log err name + " " + err message ; } 2 3 mediacontrollerserver provides functions for sending the server information to the client [nointerfaceobject] interface mediacontrollerserver { readonly attribute mediacontrollerplaybackinfo playbackinfo; readonly attribute domstring? iconuri; readonly attribute mediacontrollerabilities abilities; readonly attribute mediacontrollersubtitles subtitles; readonly attribute mediacontrollermode360 mode360; readonly attribute mediacontrollerdisplaymode displaymode; readonly attribute mediacontrollerdisplayrotation displayrotation; mediacontrollerclientinfo[] getallclientsinfo raises webapiexception ; void updateplaybackstate mediacontrollerplaybackstate state raises webapiexception ; void updateiconuri domstring? iconuri raises webapiexception ; void updateplaybackposition unsigned long long position raises webapiexception ; void updateplaybackagerating mediacontrollercontentagerating rating raises webapiexception ; void updateplaybackcontenttype mediacontrollercontenttype type raises webapiexception ; void updateshufflemode boolean mode raises webapiexception ; void updaterepeatstate mediacontrollerrepeatstate state raises webapiexception ; void updatemetadata mediacontrollermetadata metadata raises webapiexception ; long addchangerequestplaybackinfolistener mediacontrollerchangerequestplaybackinfocallback listener raises webapiexception ; void removechangerequestplaybackinfolistener long watchid raises webapiexception ; void setsearchrequestlistener mediacontrollersearchrequestcallback listener raises webapiexception ; void unsetsearchrequestlistener raises webapiexception ; long addcommandlistener mediacontrollerreceivecommandcallback listener raises webapiexception ; void removecommandlistener long watchid raises webapiexception ; mediacontrollerplaylist createplaylist domstring name raises webapiexception ; void saveplaylist mediacontrollerplaylist playlist, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void deleteplaylist domstring playlistname, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void updateplaybackitem domstring playlistname, domstring index raises webapiexception ; void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; }; since 5 0 allows the application to send the playback state and metadata to other application and be controlled by other application client remotely attributes readonly mediacontrollerplaybackinfo playbackinfo current playback info since 5 0 remark object holds state which is automatically updated by update methods readonly domstring iconuri [nullable] server icon uri since 5 5 readonly mediacontrollerabilities abilities abilities of the media controller server since 5 5 readonly mediacontrollersubtitles subtitles object representing features related to subtitles control of a media controller server since 5 5 readonly mediacontrollermode360 mode360 object representing features related to spherical 360° mode control of a media controller server since 5 5 readonly mediacontrollerdisplaymode displaymode object representing features related to display mode control of a media controller server since 5 5 readonly mediacontrollerdisplayrotation displayrotation object representing features related to display rotation control of a media controller server since 5 5 methods getallclientsinfo returns all existing clients info mediacontrollerclientinfo[] getallclientsinfo ; since 5 5 remark code example available at sendevent method documentation return value mediacontrollerclientinfo[] all existing clients info exceptions webapiexception with error type unknownerror, if any platform error occurs updateplaybackstate updates playback state and send notification to the listening clients see mediacontrollerserverinfo addplaybackinfochangelistener to check how to receive playback info changes from server on client side void updateplaybackstate mediacontrollerplaybackstate state ; since 5 0 parameters state playback state exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackstate "play" ; console log "current playback state is " + mcserver playbackinfo state ; output example current playback state is play updateiconuri updates server icon uri void updateiconuri domstring? iconuri ; since 5 5 parameters iconuri [nullable] uri of the icon to be set exceptions webapiexception with error type unknownerror, if any error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackstate "play" ; var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserver updateiconuri "http //example com/res/icon2 ico" ; console log mcserverinfo iconuri ; output example http //example com/res/icon2 ico updateplaybackposition updates playback position and send notification to the listening clients void updateplaybackposition unsigned long long position ; since 5 0 parameters position playback position exceptions webapiexception with error type invalidvalueserror, if any of the input parameters contain an invalid value with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackposition 164 ; console log "current playback position is " + mcserver playbackinfo position ; output example current playback position is 164 updateplaybackagerating sets content age rating for current playback item void updateplaybackagerating mediacontrollercontentagerating rating ; since 5 5 parameters rating new age rating for current playback item exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackagerating "10" ; var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; console log "only viewers older than " + mcserverinfo playbackinfo agerating + " are allowed to access this content " ; output example only viewers older than 10 are allowed to access this content updateplaybackcontenttype sets content type for the current playback item void updateplaybackcontenttype mediacontrollercontenttype type ; since 5 5 parameters type new content type for the current playback item exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackcontenttype "music" ; var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; console log "content type of current item is " + mcserverinfo playbackinfo contenttype ; output example content type of current item is music updateshufflemode updates shuffle mode and send notification to the listening clients void updateshufflemode boolean mode ; since 5 0 parameters mode shuffle mode exceptions webapiexception with error type unknownerror, if any error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updateshufflemode true ; console log "current shuffle mode is " + mcserver playbackinfo shufflemode ; output example current shuffle mode is true updaterepeatmode updates repeat mode and send notification to the listening clients deprecated deprecated since 5 5 instead, use updaterepeatstate void updaterepeatmode boolean mode ; since 5 0 parameters mode repeat mode exceptions webapiexception with error type unknownerror, if any error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updaterepeatmode true ; console log "current repeat mode is " + mcserver playbackinfo repeatmode ; updaterepeatstate updates repeat state and sends notification to the listening clients void updaterepeatstate mediacontrollerrepeatstate state ; since 5 5 parameters state repeat state to be set exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; mcserver updaterepeatstate "repeat_one" ; console log "current repeat state is " + mcserver playbackinfo repeatstate ; output example current repeat state is repeat_one updatemetadata updates metadata and send notification to the listening clients void updatemetadata mediacontrollermetadata metadata ; since 5 0 parameters metadata metadata object exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var metadata = mcserver playbackinfo metadata; metadata artist = "artist name"; mcserver updatemetadata metadata ; console log "current metadata is " + json stringify mcserver playbackinfo metadata ; output example current metadata is {"title" "","artist" "artist name","album" "","author" "","genre" "", "duration" "","date" "","copyright" "","description" "","tracknum" "","picture" "", "seasonnumber" 0,"seasontitle" "","episodenumber" 0,"episodetitle" "","resolutionwidth" 0,"resolutionheight" 0} addchangerequestplaybackinfolistener adds the listener for a media playback info requests from client see mediacontrollerserverinfo to check how to send playback info change requests from client long addchangerequestplaybackinfolistener mediacontrollerchangerequestplaybackinfocallback listener ; since 5 0 parameters listener change request listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var playbackrequestlistener = { onplaybackstaterequest function state, clientname { console log "playback state requested to " + state + " by " + clientname ; }, onplaybackpositionrequest function position, clientname { console log "playback position requested to " + position + " by " + clientname ; }, onshufflemoderequest function mode, clientname { console log "shuffle mode requested to " + mode + " by " + clientname ; }, onrepeatstaterequest function state, clientname { console log "repeat state requested to " + state + " by " + clientname ; }, onplaybackitemrequest function playlistname, index, state, position, clientname { console log "playlist " + playlistname + " index " + index + " state " + state + " position " + position + " requested by " + clientname ; } }; /* registers to receive playback info change requests from client */ watcherid = mcserver addchangerequestplaybackinfolistener playbackrequestlistener ; removechangerequestplaybackinfolistener removes the listener, so stop receiving playback state requests from clients void removechangerequestplaybackinfolistener long watchid ; since 5 0 calling this function has no effect if there is no listener with given id parameters watchid subscription identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var playbackrequestlistener = { onplaybackstaterequest function state, clientname { console log "playback state requested to " + state + " by " + clientname ; }, onplaybackpositionrequest function position, clientname { console log "playback position requested to " + position + " by " + clientname ; }, onshufflemoderequest function mode, clientname { console log "shuffle mode requested to " + mode + " by " + clientname ; }, onrepeatstaterequest function state, clientname { console log "repeat state requested to " + state + " by " + clientname ; }, onplaybackitemrequest function playlistname, index, state, position, clientname { console log "playlist " + playlistname + " index " + index + " state " + state + " position " + position + " requested by " + clientname ; } }; /* registers to receive playback info change requests */ watcherid = mcserver addchangerequestplaybackinfolistener playbackrequestlistener ; /* cancels the watch operation */ mcserver removechangerequestplaybackinfolistener watcherid ; setsearchrequestlistener sets the listener for receiving search requests from a client void setsearchrequestlistener mediacontrollersearchrequestcallback listener ; since 5 5 parameters listener function to be called for each search command received exceptions webapiexception with error type typemismatcherror, if any of the arguments has invalid type with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; function searchrequestlistener clientname, request { console log "name of the client application which sent the request " + clientname ; console log "search command received " ; request foreach filter => { console log "filter " + json stringify filter ; } ; } mcserver setsearchrequestlistener searchrequestlistener ; unsetsearchrequestlistener unsets search request listener void unsetsearchrequestlistener ; since 5 5 calling this function has no effect if the listener was not set exceptions webapiexception with error type unknownerror, if unknown error occurs code example var mcserver = tizen mediacontroller createserver ; function searchrequestlistener clientname, request { console log "search command received " ; } mcserver setsearchrequestlistener searchrequestlistener ; mcserver unsetsearchrequestlistener ; addcommandlistener adds the listener for receiving custom commands from client see mediacontrollerserverinfo to check how to send custom commands from client long addcommandlistener mediacontrollerreceivecommandcallback listener ; since 5 0 parameters listener custom commands listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var commandreceivelistener = function clientname, command, data { console log "command " + command + " received from " + clientname + " with data " + json stringify data ; return new tizen mediacontroller requestreply new tizen bundle {myreply "somevalue"} , 0 ; }; /* registers to receive custom commands from client */ watcherid = mcserver addcommandlistener commandreceivelistener ; removecommandlistener removes the listener, so stop receiving custom commands from clients void removecommandlistener long watchid ; since 5 0 calling this function has no effect if there is no listener with given id parameters watchid subscription identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var commandreceivelistener = function clientname, command, data { console log "command " + command + " received from " + clientname + " with data " + json stringify data ; return new tizen mediacontroller requestreply new tizen bundle {myreply "somevalue"} , 0 ; }; /* registers to receive custom commands from client */ watcherid = mcserver addcommandlistener commandreceivelistener ; /* cancels the watch operation */ mcserver removecommandlistener watcherid ; createplaylist creates mediacontrollerplaylist object mediacontrollerplaylist createplaylist domstring name ; since 5 5 remark please note that there is a need to use saveplaylist , otherwise playlist creation will have no effect on a device all playlists will be deleted after application is closed parameters name name of the new playlist return value mediacontrollerplaylist new empty mediacontrollerplaylist object with given name exceptions webapiexception with error type invalidvalueserror, if playlist with given name already exists with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylistname" ; saveplaylist saves the playlist in a local database void saveplaylist mediacontrollerplaylist playlist, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors invalidvalueserror if playlist with given name does not exist unknownerror if any other error prevents the function from successful completion remark all playlists will be deleted after the application is closed parameters playlist mediacontrollerplaylist object to save successcallback [optional] [nullable] function to be called when saveplaylist is finished without error errorcallback [optional] [nullable] function to be called when saveplaylist fails exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylistname" ; function successcallback { console log "saveplaylist successful " ; } function errorcallback error { console log "saveplaylist failed with error " + error ; } mcserver saveplaylist playlist, successcallback, errorcallback ; output example saveplaylist successful deleteplaylist deletes playlist from local database void deleteplaylist domstring playlistname, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors invalidvalueserror if playlist with given name does not exist unknownerror if any other error prevents the function from successful completion parameters playlistname name of the playlist to remove successcallback [optional] [nullable] function to be called when deleteplaylist is finished without error errorcallback [optional] [nullable] function to be called when deleteplaylist fails exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylistname" ; function deletesuccess { console log "deleteplaylist successful " ; } function deletefailure error { console log "deleteplaylist failed with error " + error ; } function savesuccess { mcserver deleteplaylist playlist name, deletesuccess, deletefailure ; } mcserver saveplaylist playlist, savesuccess ; output example deleteplaylist successful updateplaybackitem sets index and playlist name properties of playback info object void updateplaybackitem domstring playlistname, domstring index ; since 5 5 parameters playlistname name of playlist to be set index index of item on playlist playlistname to be set exceptions webapiexception with error type unknownerror, if any error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylistname" ; var metadata = { title "testtitle", artist "testartist", album "testalbum", author "testauthor", genre "testgenre", duration "testduration", date "testdate", copyright "testcopyright", description "testdescription", tracknum "testtracknum", picture "testpicture" }; playlist additem "index1", metadata ; mcserver saveplaylist playlist, function { mcserver updateplaybackitem "testplaylistname", "index1" ; console log "current playlist " + mcserver playbackinfo playlistname ; console log "current index " + mcserver playbackinfo index ; } ; output example current playlist testplaylistname current index index1 getallplaylists retrieves all playlists from a local database void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors unknownerror if any error prevents function from successful completion parameters successcallback function to be called on getallplaylists success errorcallback [optional] [nullable] function to be called when getallplaylists fails exceptions webapiexception with error type typemismatcherror, if any parameter has invalid type with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylist" ; function savesuccess { console log "saveplaylist successful" ; function successcallback playlists { playlists foreach function playlist { console log "playlist name " + playlist name ; } ; } function errorcallback error { console log "getallplaylists failed with error " + error ; } mcserver getallplaylists successcallback, errorcallback ; } function saveerror error { console log "saveplaylist failed with error " + error ; } mcserver saveplaylist playlist, savesuccess, saveerror ; output example saveplaylist successful playlist name testplaylistname 2 4 mediacontrollerclient the media controller client api and functions related with handling media control functions include operations to get the latest status of the media controller servers [nointerfaceobject] interface mediacontrollerclient { void findservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; mediacontrollerserverinfo? getlatestserverinfo raises webapiexception ; long addabilitychangelistener mediacontrollerabilitychangecallback listener raises webapiexception ; void removeabilitychangelistener long watchid raises webapiexception ; void findsubscribedservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; void setcustomeventlistener mediacontrollerreceivecommandcallback listener raises webapiexception ; void unsetcustomeventlistener raises webapiexception ; }; since 5 0 methods findservers retrieves all activated media controller servers void findservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 0 parameters successcallback the method to invoke when all of the registered media controller servers have been found errorcallback [optional] [nullable] the method to invoke on failure of retrieving servers list exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient; try { mcclient = tizen mediacontroller getclient ; } catch err { console log err name + " error " + err message ; } function successcallback list { for var s in list { console log "found server " + list\[s\] name + ", state " + list\[s\] state ; } } function errorcallback err { console log err name + " error " + err message ; } mcclient findservers successcallback, errorcallback ; output example found server og8wn4xllg basicuistudio, state active getlatestserverinfo gets the latest activated media controller server info mediacontrollerserverinfo? getlatestserverinfo ; since 5 0 remark if there is no activated media controller server, null value is returned return value mediacontrollerserverinfo [nullable] server info or null exceptions webapiexception with error type unknownerror, if any error occurs code example /\* access latest server info */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; console log "latest server name is " + mcserverinfo name + ", server state " + mcserverinfo state ; output example latest server name is 2cpqcelp8a hellotizen, server state inactive addabilitychangelistener adds a listener to be invoked when ability of the media controller server is changed long addabilitychangelistener mediacontrollerabilitychangecallback listener ; since 5 5 remark implicitly the media controller client will receive information about ability changes of every active media controller server to receive information only from selected servers, calling function subscribe is required parameters listener function to call on mediacontroller server's ability change return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example /\* client-side code */ var mcclient = tizen mediacontroller getclient ; var listener = { onplaybackabilitychanged function server, ability { console log "playback ability changed, server name " + server name + ", abilities " ; console log json stringify ability ; }, ondisplaymodeabilitychanged function server, ability { console log "display mode ability changed, server name " + server name + ", abilities " ; console log json stringify ability ; }, ondisplayrotationabilitychanged function server, ability { console log "display rotation ability changed, server name " + server name + ", abilities " ; console log json stringify ability ; }, onsimpleabilitychanged function server, type, ability { console log type + " ability changed, server name " + server name + ", ability " + ability ; } }; var watchid = mcclient addabilitychangelistener listener ; /\* server-side code */ var mcserver = tizen mediacontroller createserver ; mcserver abilities playback play = "yes"; mcserver abilities playback saveabilities ; mcserver abilities shuffle = "no"; mcserver abilities repeat = "yes"; mcserver abilities displaymode fullscreen = "yes"; mcserver abilities displayrotation rotation180 = "yes"; output example playback ability changed, server name gc8quw5iqj mediacontrollerserver, abilities {"play" "yes","pause" "undecided","stop" "undecided","next" "undecided","prev" "undecided","forward" "undecided","rewind" "undecided","toggleplaypause" "undecided"} shuffle ability changed, server name gc8quw5iqj mediacontrollerserver, ability "no" repeat ability changed, server name gc8quw5iqj mediacontrollerserver, ability "yes" display mode ability changed, server name gc8quw5iqj mediacontrollerserver, abilities " {"letterbox" "no","originsize" "no","fullscreen" "yes","croppedfull" "no"} display rotation ability changed, server name gc8quw5iqj mediacontrollerserver, abilities " {"rotationnone" "no","rotation90" "no","rotation180" "yes","rotation270" "no"} removeabilitychangelistener removes selected mediacontrollerabilitychangelistener void removeabilitychangelistener long watchid ; since 5 5 remark all subscriptions added by function subscribe will be lost after removing last mediacontrollerabilitychangelistener parameters watchid subscription identifier returned by addabilitychangelistener exceptions webapiexception with error type unknownerror, if any error occurs code example /\* client-side code */ var mcclient = tizen mediacontroller getclient ; var listener = { onplaybackabilitychanged function server, ability { console log "playback ability changed, server name " + mcserver name + ", abilities " ; console log json stringify ability ; } }; var watchid = mcclient addabilitychangelistener listener ; /\* server-side code */ var mcserver = tizen mediacontroller createserver ; mcserver abilities playback play = "yes"; mcserver abilities playback saveabilities ; /\* client-side code */ mcclient removeabilitychangelistener watchid ; /\* server-side code */ mcserver abilities playback forward = "yes"; mcserver abilities playback saveabilities ; output example playback ability changed, server name gc8quw5iqj mediacontrollerserver, abilities {"play" "yes","pause" "undecided","stop" "undecided","next" "undecided","prev" "undecided","forward" "undecided","rewind" "undecided","toggleplaypause" "undecided"} findsubscribedservers retrieves all subscribed media controller servers void findsubscribedservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors unknownerror if any error prevents function from successful completion parameters successcallback the method to invoke when all of subscribed media controller servers have been found errorcallback [optional] [nullable] the method to invoke on failure of retrieving servers list exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var listener = { onsimpleabilitychanged function server, type, ability { console log type + " ability changed, server name " + server name + ", ability " + ability ; } }; var watchid = mcclient addabilitychangelistener listener ; function errorcb err { console log err name + " error " + err message ; } function subscribedsuccesscb list { console log "subscribed servers " ; for var s in list { console log " server name " + list\[s\] name + ", state " + list\[s\] state ; } } function findsuccesscb list { console log "found servers " ; for var s in list { console log " server name " + list\[s\] name + ", state " + list\[s\] state ; } if list length > 0 { list\[0\] abilities subscribe ; mcclient findsubscribedservers subscribedsuccesscb, errorcb ; } } mcclient findservers findsuccesscb, errorcb ; output example found servers server name xx8quw5iff mediacontrollerserverone, state active server name 2cpqcelp8a mediacontrollerservertwo, state active server name to0bjcuxbr mediacontrollerserverthree, state active subscribed servers server name xx8quw5iff mediacontrollerserverone, state active setcustomeventlistener sets the media controller client's listener for custom events from the server void setcustomeventlistener mediacontrollerreceivecommandcallback listener ; since 5 5 if the listener has already been set, calling this method will override it parameters listener event handling function exceptions webapiexception with error type typemismatcherror, if any of the arguments has invalid types with error type unknownerror, if any other error occurs code example /\* this example assumes that the server and client objects already exist */ mcclient setcustomeventlistener function servername, eventname, data { return new tizen mediacontroller requestreply {"reply" "data"}, 123 ; } ; mcclient unsetcustomeventlistener ; unsetcustomeventlistener removes the server's events listener void unsetcustomeventlistener ; since 5 5 calling this function has no effect, if the listener is not set exceptions webapiexception with error type unknownerror, if any error occurs code example /\* this example assumes that the server and client already exist */ mcclient setcustomeventlistener function servername, eventname, data { return new tizen mediacontroller requestreply {"reply" "data"}, 123 ; } ; mcclient unsetcustomeventlistener ; 2 5 mediacontrollerserverinfo this interface provides media controller server state and playback info provides methods to send commands to server and listen for server status change [nointerfaceobject] interface mediacontrollerserverinfo { readonly attribute applicationid name; readonly attribute mediacontrollerserverstate state; readonly attribute mediacontrollerplaybackinfo playbackinfo raises webapiexception ; readonly attribute domstring? iconuri raises webapiexception ; readonly attribute mediacontrollerabilitiesinfo abilities; readonly attribute mediacontrollersubtitlesinfo subtitles; readonly attribute mediacontrollermode360info mode360; readonly attribute mediacontrollerdisplaymodeinfo displaymode; readonly attribute mediacontrollerdisplayrotationinfo displayrotation; void sendplaybackstate mediacontrollerplaybackstate state, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendplaybackposition unsigned long long position, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendshufflemode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; <span class="nocode deprecated"> void sendrepeatmode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; </span> void sendrepeatstate mediacontrollerrepeatstate state, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendsearchrequest searchfilter[] request, mediacontrollersearchrequestreplycallback replycallback, optional errorcallback? errorcallback raises webapiexception ; void sendcommand domstring command, bundle? data, mediacontrollersendcommandsuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; long addserverstatuschangelistener mediacontrollerserverstatuschangecallback listener raises webapiexception ; void removeserverstatuschangelistener long watchid raises webapiexception ; long addplaybackinfochangelistener mediacontrollerplaybackinfochangecallback listener raises webapiexception ; void removeplaybackinfochangelistener long watchid raises webapiexception ; void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendplaybackitem domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position raises webapiexception ; long addplaylistupdatedlistener mediacontrollerplaylistupdatedcallback listener raises webapiexception ; void removeplaylistupdatedlistener long listenerid raises webapiexception ; }; since 5 0 attributes readonly applicationid name the appid of the media controller server since 5 0 readonly mediacontrollerserverstate state state of the media controller server since 5 0 readonly mediacontrollerplaybackinfo playbackinfo current playback info since 5 0 exceptions * webapiexception * with error type unknownerror, if any error occurs readonly domstring iconuri [nullable] server icon uri since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitiesinfo abilities abilities of the media controller server since 5 5 readonly mediacontrollersubtitlesinfo subtitles object representing features related to subtitles control of a media controller server since 5 5 readonly mediacontrollermode360info mode360 object representing features related to spherical 360° mode control of a media controller server since 5 5 readonly mediacontrollerdisplaymodeinfo displaymode object representing features related to display mode control of a media controller server since 5 5 readonly mediacontrollerdisplayrotationinfo displayrotation object representing features related to display rotation control of a media controller server since 5 5 methods sendplaybackstate allows to change playback state of media controller server void sendplaybackstate mediacontrollerplaybackstate state, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 0 parameters state playback state successcallback [optional] [nullable] the method to invoke when playback state was changed errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendplaybackstate "stop", function { console log "playback has stopped" ; }, function e { console log "unable to change playback state " + e message ; } ; output example playback has stopped sendplaybackposition allows to change playback position of media controller server void sendplaybackposition unsigned long long position, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 0 parameters position playback position successcallback [optional] [nullable] the method to invoke when playback position was changed errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type invalidvalueserror, if any of the input parameters contain an invalid value with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendplaybackposition 164, function { console log "playback position changed" ; }, function e { console log "unable to change playback position " + e message ; } ; output example playback position changed sendshufflemode allows to change shuffle mode of media controller server void sendshufflemode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 0 parameters mode shuffle mode successcallback [optional] [nullable] the method to invoke when shuffle mode was changed errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendshufflemode true, function { console log "shuffle mode changed" ; }, function e { console log "unable to change shuffle mode " + e message ; } ; output example shuffle mode changed sendrepeatmode allows to change repeat mode of media controller server deprecated deprecated since 5 5 instead, use sendrepeatstate void sendrepeatmode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 0 parameters mode repeat mode successcallback [optional] [nullable] the method to invoke when repeat mode was changed errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendrepeatmode false, function { console log "repeat mode changed" ; }, function e { console log "unable to change repeat mode " + e message ; } ; sendrepeatstate allows to change repeat state of media controller server void sendrepeatstate mediacontrollerrepeatstate state, optional successcallback? successcallback, optional errorcallback? errorcallback ; since 5 5 parameters state repeat state to be set successcallback [optional] [nullable] the method to invoke when repeat state was changed errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendrepeatstate "repeat_all", function { console log "repeat state changed" ; }, function e { console log "unable to change repeat state " + e message ; } ; output example repeat state changed sendsearchrequest sends a search request to the media controller server void sendsearchrequest searchfilter[] request, mediacontrollersearchrequestreplycallback replycallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors unknownerror if any error prevents function from successful completion remark search request handler should be specified on the server using setsearchrequestlistener method parameters request a collection of between 1 and 20 searchfilter objects replycallback function to be invoked when server reply is received errorcallback [optional] [nullable] function to be invoked if server reports failure exceptions webapiexception with error type invalidvalueserror, if request has invalid number of filters with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example /\* server-side code */ var mcserver = tizen mediacontroller createserver ; function searchrequestlistener clientname, request { console log "search command received" ; return new tizen mediacontroller requestreply new tizen bundle {"key" "value"} , 5 ; } mcserver setsearchrequestlistener searchrequestlistener ; mcserver updateplaybackstate "play" ; /\* client-side code */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var query = \[ new tizen mediacontroller searchfilter "music", "genre", "rock" , new tizen mediacontroller searchfilter "music", "genre", "pop", new tizen bundle {"releasedafter" "1993"} \]; mcserverinfo sendsearchrequest query, function reply { console log "reply status " + reply code ; console log "reply data " + reply data ; } ; output example search command received reply status 5 reply data {"key" "value"} sendcommand allows to send custom command to media controller server void sendcommand domstring command, bundle? data, mediacontrollersendcommandsuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 0 remark see addcommandlistener method to check how to receive and respond to custom commands parameters command custom command name which is handled on server side data [nullable] additional data for custom command which is send to server successcallback the method to invoke when server responded to custom command errorcallback [optional] [nullable] the method to invoke on operation failure exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var examplecustomcommanddata = new tizen bundle {myfilter "rock"} ; mcserverinfo sendcommand "myplaylistfilter", examplecustomcommanddata, function data, code { console log "server replied with return data " + json stringify data + " and code " + code ; }, function e { console log "error executing command " + e message ; } ; addserverstatuschangelistener adds the listener for a media controller server status change long addserverstatuschangelistener mediacontrollerserverstatuschangecallback listener ; since 5 0 parameters listener status change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when server status changes */ watcherid = mcserverinfo addserverstatuschangelistener function status { console log mcserverinfo name + " server status changed to " + status ; } ; removeserverstatuschangelistener removes the listener, so stop receiving notifications about media controller server status void removeserverstatuschangelistener long watchid ; since 5 0 calling this function has no effect if there is no listener with given id parameters watchid subscription identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when server status changes */ watcherid = mcserverinfo addserverstatuschangelistener function status { console log mcserverinfo name + " server status changed to " + status ; } ; /\* cancels the watch operation */ mcserverinfo removeserverstatuschangelistener watcherid ; addplaybackinfochangelistener adds the listener for a media playback info changes long addplaybackinfochangelistener mediacontrollerplaybackinfochangecallback listener ; since 5 0 parameters listener status change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var playbacklistener = { onplaybackchanged function state, position { console log "current playback state " + state ; console log "current playback position " + position ; }, onshufflemodechanged function mode { console log "shuffle mode changed to " + mode ; }, onrepeatstatechanged function state { console log "repeat state changed to " + state ; }, onmetadatachanged function metadata { console log "playback metadata changed " + json stringify metadata ; } }; /* registers to be notified when playback state changes */ watcherid = mcserverinfo addplaybackinfochangelistener playbacklistener ; removeplaybackinfochangelistener removes the listener, so stop receiving notifications about media playback info changes void removeplaybackinfochangelistener long watchid ; since 5 0 calling this function has no effect if there is no listener with given id parameters watchid subscription identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* receives playback state changes */ var playbacklistener = { onplaybackchanged function state, position { console log "current playback state " + state ; console log "current playback position " + position ; }, onshufflemodechanged function mode { console log "shuffle mode changed to " + mode ; }, onrepeatstatechanged function state { console log "repeat state changed to " + state ; }, onmetadatachanged function metadata { console log "playback metadata changed " + json stringify metadata ; } }; /* registers to be notified when playback state changes */ watcherid = mcserverinfo addplaybackinfochangelistener playbacklistener ; /* cancels the watch operation */ mcserverinfo removeplaybackinfochangelistener watcherid ; getallplaylists retrieves all playlists saved in local database void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors unknownerror if any other error prevents function from successful completion parameters successcallback function to be called upon success errorcallback [optional] [nullable] function to be called upon failure exceptions webapiexception with error type typemismatcherror, if any parameter has invalid type with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var playlist = mcserver createplaylist "testplaylist" ; function savesuccess { console log "saveplaylist successful" ; function successcallback playlists { playlists foreach function playlist { console log "playlist name " + playlist name ; } ; } function errorcallback error { console log "getallplaylists failed with error " + error ; } mcserverinfo getallplaylists successcallback, errorcallback ; } function saveerror error { console log "saveplaylist failed with error " + error ; } mcserver saveplaylist playlist, savesuccess, saveerror ; output example saveplaylist successful playlist name testplaylist sendplaybackitem requests setting new playback item to server void sendplaybackitem domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position ; since 5 5 remark playbackinfochangelistener should be invoked, if registered parameters playlistname name of playlist to be set index index of item on playlist to be set state playback state position playback position exceptions webapiexception with error type unknownerror, if any error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; mcserverinfo sendplaybackitem "testplaylist", "1", "play", 0 ; addplaylistupdatedlistener adds listener to be invoked when playlist is updated by server long addplaylistupdatedlistener mediacontrollerplaylistupdatedcallback listener ; since 5 5 parameters listener listener for adding, updating or deleting of any playlist return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var listener = { onplaylistupdated function servername, playlist { console log "updated playlist " + playlist ; }, onplaylistdeleted function servername, playlistname { console log "deleted playlist " + playlistname ; } }; var listenerid = mcserverinfo addplaylistupdatedlistener listener ; removeplaylistupdatedlistener stops listening for playlist updates and removals void removeplaylistupdatedlistener long listenerid ; since 5 5 remark this function has no effect, if there is no listener for given id parameters listenerid listener id returned by addplaylistupdatedlistener exceptions webapiexception with error type unknownerror, if any error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var listener = { onplaylistupdated function servername, playlist {}, onplaylistdeleted function servername, playlistname {} }; var listenerid = mcserverinfo addplaylistupdatedlistener listener ; mcserverinfo removeplaylistupdatedlistener listenerid ; 2 6 mediacontrollerplaybackinfo current playback info [nointerfaceobject] interface mediacontrollerplaybackinfo { readonly attribute mediacontrollerplaybackstate state; readonly attribute unsigned long long position; readonly attribute mediacontrollercontentagerating agerating; readonly attribute mediacontrollercontenttype contenttype; readonly attribute boolean shufflemode; <span class="nocode deprecated"> readonly attribute boolean repeatmode; </span> readonly attribute mediacontrollerrepeatstate repeatstate; readonly attribute mediacontrollermetadata metadata; readonly attribute domstring? index; readonly attribute domstring? playlistname; }; since 5 0 attributes readonly mediacontrollerplaybackstate state current playback state since 5 0 readonly unsigned long long position current playback position since 5 0 readonly mediacontrollercontentagerating agerating current playback age rating since 5 5 readonly mediacontrollercontenttype contenttype current playback content type default value is undecided since 5 5 readonly boolean shufflemode current shuffle mode since 5 0 readonly boolean repeatmode current repeat mode deprecated deprecated since 5 5 instead, use repeatstate any change in value of repeatmode will also change the value of repeatstate the repeatmode equal to true is equivalent to repeatstate equal to repeat_all and repeatmode equal to false is equivalent to repeatstate equal to repeat_off since 5 0 readonly mediacontrollerrepeatstate repeatstate current repeat state any change in value of repeatstate will also change the value of repeatmode, except the repeat_one value in this case the repeatmode value will not change the repeatstate equals to repeat_all is equivalent to repeatmode equals to true and repeatstate equals to repeat_off is equivalent to repeatmode equals to false default value is repeat_all since 5 5 readonly mediacontrollermetadata metadata current playback metadata since 5 0 readonly domstring index [nullable] current item index since 5 5 remark null if no item currently in playback readonly domstring playlistname [nullable] current playlist name since 5 5 remark null if no item currently in playback 2 7 mediacontrollerabilities server-side object representing abilities of the media controller server [nointerfaceobject] interface mediacontrollerabilities { readonly attribute mediacontrollerplaybackabilities playback; readonly attribute mediacontrollerdisplaymodeabilities displaymode; readonly attribute mediacontrollerdisplayrotationabilities displayrotation; attribute mediacontrollerabilitysupport playbackposition raises webapiexception ; attribute mediacontrollerabilitysupport shuffle raises webapiexception ; attribute mediacontrollerabilitysupport repeat raises webapiexception ; attribute mediacontrollerabilitysupport playlist raises webapiexception ; attribute mediacontrollerabilitysupport clientcustom raises webapiexception ; attribute mediacontrollerabilitysupport search raises webapiexception ; attribute mediacontrollerabilitysupport subtitles raises webapiexception ; attribute mediacontrollerabilitysupport mode360 raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerplaybackabilities playback represents abilities of server's playback actions since 5 5 readonly mediacontrollerdisplaymodeabilities displaymode represents abilities of server's display modes since 5 5 readonly mediacontrollerdisplayrotationabilities displayrotation represents display orientations supported by the media controller server since 5 5 domstring playbackposition represents server's ability to change playback position default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring shuffle represents server's ability to change shuffle mode default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring repeat represents server's ability to change repeat state default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring playlist represents server's ability to add/change/remove playlists default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring clientcustom represents server's ability to receive custom commands from the media controller client default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring search represents server's ability to receive search requests from the media controller client default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring subtitles represents server's ability to receive requests for subtitles mode change from the media controller client default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring mode360 represents server's ability to receive requests for spherical 360° mode change from the media controller client default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs 2 8 mediacontrollerplaybackabilities server-side object representing playback abilities of the media controller server [nointerfaceobject] interface mediacontrollerplaybackabilities { attribute mediacontrollerabilitysupport play raises webapiexception ; attribute mediacontrollerabilitysupport pause raises webapiexception ; attribute mediacontrollerabilitysupport stop raises webapiexception ; attribute mediacontrollerabilitysupport next raises webapiexception ; attribute mediacontrollerabilitysupport prev raises webapiexception ; attribute mediacontrollerabilitysupport forward raises webapiexception ; attribute mediacontrollerabilitysupport rewind raises webapiexception ; attribute mediacontrollerabilitysupport toggleplaypause raises webapiexception ; void saveabilities raises webapiexception ; }; since 5 5 remark calling saveabilities is required to update playback abilities on the media controller server attributes domstring play represents server's ability to perform play action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring pause represents server's ability to perform pause action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring stop represents server's ability to perform stop action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring next represents server's ability to perform next action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring prev represents server's ability to perform prev action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring forward represents server's ability to perform forward action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring rewind represents server's ability to perform rewind action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring toggleplaypause represents server's ability to perform toggle_play_pause action default value is undecided since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs methods saveabilities saves the current state of playback abilities to the database void saveabilities ; since 5 5 remark using this function is required to save changes of playback abilities into database, otherwise changes will have no effect on the device and clients will not be notified about an update exceptions webapiexception with error type unknownerror, if any error occurs code example /\* server-side code */ var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackstate "play" ; mcserver abilities playback next = "yes"; mcserver abilities playback prev = "yes"; mcserver abilities playback rewind = "no"; mcserver abilities playback forward = "no"; /\* client-side code */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; console log "before save " ; console log "ability next " + mcserverinfo abilities playback next ; console log "ability prev " + mcserverinfo abilities playback prev ; console log "ability rewind " + mcserverinfo abilities playback rewind ; console log "ability forward " + mcserverinfo abilities playback forward ; /\* server-side code */ mcserver abilities playback saveabilities ; /\* client-side code */ mcserverinfo = mcclient getlatestserverinfo ; console log "after save " ; console log "ability next " + mcserverinfo abilities playback next ; console log "ability prev " + mcserverinfo abilities playback prev ; console log "ability rewind " + mcserverinfo abilities playback rewind ; console log "ability forward " + mcserverinfo abilities playback forward ; output example before save ability next undecided ability prev undecided ability rewind undecided ability forward undecided after save ability next yes ability prev yes ability rewind no ability forward no 2 9 mediacontrollerdisplaymodeabilities server-side object representing display mode abilities of the media controller server [nointerfaceobject] interface mediacontrollerdisplaymodeabilities { attribute mediacontrollerabilitysupport letterbox raises webapiexception ; attribute mediacontrollerabilitysupport originsize raises webapiexception ; attribute mediacontrollerabilitysupport fullscreen raises webapiexception ; attribute mediacontrollerabilitysupport croppedfull raises webapiexception ; }; since 5 5 attributes domstring letterbox represents server's ability to set letterbox mode default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring originsize represents server's ability to set originsize mode default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring fullscreen represents server's ability to set fullscreen mode default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring croppedfull represents server's ability to set croppedfull mode default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs 2 10 mediacontrollerdisplayrotationabilities the server-side object representing display rotation abilities of the media controller server [nointerfaceobject] interface mediacontrollerdisplayrotationabilities { attribute mediacontrollerabilitysupport rotationnone raises webapiexception ; attribute mediacontrollerabilitysupport rotation90 raises webapiexception ; attribute mediacontrollerabilitysupport rotation180 raises webapiexception ; attribute mediacontrollerabilitysupport rotation270 raises webapiexception ; }; since 5 5 attributes domstring rotationnone represents the server's ability to set 0° display orientation default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring rotation90 represents the server's ability to set 90° display orientation default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring rotation180 represents the server's ability to set 180° display orientation default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs domstring rotation270 represents the server's ability to set 270° display orientation default value is no since 5 5 exceptions webapiexception with error type typemismatcherror, if set value will not be compatible with mediacontrollerabilitysupport enum with error type invalidvalueserror, if set value will be "undecided" with error type unknownerror, if any other error occurs 2 11 mediacontrollerabilitiesinfo client-side object representing abilities of the media controller server [nointerfaceobject] interface mediacontrollerabilitiesinfo { readonly attribute mediacontrollerplaybackabilitiesinfo playback; readonly attribute mediacontrollerdisplaymodeabilitiesinfo displaymode; readonly attribute mediacontrollerdisplayrotationabilitiesinfo displayrotation; readonly attribute mediacontrollerabilitysupport playbackposition raises webapiexception ; readonly attribute mediacontrollerabilitysupport shuffle raises webapiexception ; readonly attribute mediacontrollerabilitysupport repeat raises webapiexception ; readonly attribute mediacontrollerabilitysupport playlist raises webapiexception ; readonly attribute mediacontrollerabilitysupport clientcustom raises webapiexception ; readonly attribute mediacontrollerabilitysupport search raises webapiexception ; readonly attribute mediacontrollerabilitysupport subtitles raises webapiexception ; readonly attribute mediacontrollerabilitysupport mode360 raises webapiexception ; void subscribe raises webapiexception ; void unsubscribe raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerplaybackabilitiesinfo playback represents abilities of server's playback actions since 5 5 readonly mediacontrollerdisplaymodeabilitiesinfo displaymode represents abilities of server's display modes since 5 5 readonly mediacontrollerdisplayrotationabilitiesinfo displayrotation represents server abilities of setting display orientations since 5 5 readonly mediacontrollerabilitysupport playbackposition represents server's ability to change playback position since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport shuffle represents server's ability to change shuffle mode since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport repeat represents server's ability to change repeat state since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport playlist represents server's ability to add/change/remove playlists since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport clientcustom represents server's ability to receive custom commands from media controller client since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport search represents server's ability to receive search requests from media controller client since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport subtitles represents server's ability to receive requests for subtitles mode change from media controller client since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport mode360 represents server's ability to receive requests for spherical 360° mode change from media controller client since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods subscribe adds a subscription for monitoring status of all abilities of server represented by this object void subscribe ; since 5 5 remark function addabilitychangelistener must be called before current method for code example see unsubscribe exceptions webapiexception with error type invalidstateerror, if addabilitychangelistener is not set with error type unknownerror, if any other error occurs unsubscribe removes a subscription for monitoring status of all abilities of server represented by this object void unsubscribe ; since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs code example /\* code example uses two applications */ /\* xx8quw5idd firstmcserver - both server and client app */ /\* gc8quw5iqf secondmcserver - only server app */ /\* app xx8quw5idd firstmcserver */ var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackstate "play" ; var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var listener = { onsimpleabilitychanged function server, type, ability { console log type + " ability changed, server name " + server name + ", ability " + ability ; } }; var watchid = mcclient addabilitychangelistener listener ; console log "#### all events would be handled by listener ####" ; mcserver abilities shuffle = "yes"; /* triggers listener */ /\* app gc8quw5iqf secondmcserver */ var server2 = tizen mediacontroller createserver ; server2 abilities repeat = "no"; /* triggers listener */ /\* app xx8quw5idd firstmcserver */ console log "#### subscribe only changes from xx8quw5idd firstmcserver ####" ; mcserverinfo abilities subscribe ; mcserver abilities shuffle = "no"; /* triggers listener */ /\* app gc8quw5iqf secondmcserver */ server2 abilities repeat = "yes"; /* does not trigger listener */ /\* app xx8quw5idd firstmcserver */ console log "#### handle all events again ####" ; mcserverinfo abilities unsubscribe ; mcserver abilities shuffle = "yes"; /* triggers listener */ /\* app gc8quw5iqf secondmcserver */ server2 abilities repeat = "no"; /* triggers listener */ output example #### all events would be handled by listener #### shuffle ability changed, server name xx8quw5idd firstmcserver, ability "yes" repeat ability changed, server name gc8quw5iqf secondmcserver, ability "no" #### subscribe only changes from xx8quw5idd firstmcserver #### shuffle ability changed, server name xx8quw5idd firstmcserver, ability "no" #### handle all events again #### shuffle ability changed, server name xx8quw5idd firstmcserver, ability "yes" repeat ability changed, server name gc8quw5iqf secondmcserver, ability "no" 2 12 mediacontrollerplaybackabilitiesinfo client-side object representing playback abilities of the media controller server [nointerfaceobject] interface mediacontrollerplaybackabilitiesinfo { readonly attribute mediacontrollerabilitysupport play raises webapiexception ; readonly attribute mediacontrollerabilitysupport pause raises webapiexception ; readonly attribute mediacontrollerabilitysupport stop raises webapiexception ; readonly attribute mediacontrollerabilitysupport next raises webapiexception ; readonly attribute mediacontrollerabilitysupport prev raises webapiexception ; readonly attribute mediacontrollerabilitysupport forward raises webapiexception ; readonly attribute mediacontrollerabilitysupport rewind raises webapiexception ; readonly attribute mediacontrollerabilitysupport toggleplaypause raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerabilitysupport play represents server's ability to perform play action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport pause represents server's ability to perform pause action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport stop represents server's ability to perform stop action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport next represents server's ability to perform next action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport prev represents server's ability to perform prev action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport forward represents server's ability to perform forward action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport rewind represents server's ability to perform rewind action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport toggleplaypause represents server's ability to perform toggle_play_pause action since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs 2 13 mediacontrollerdisplaymodeabilitiesinfo client-side object representing display mode abilities of the media controller server [nointerfaceobject] interface mediacontrollerdisplaymodeabilitiesinfo { readonly attribute mediacontrollerabilitysupport letterbox raises webapiexception ; readonly attribute mediacontrollerabilitysupport originsize raises webapiexception ; readonly attribute mediacontrollerabilitysupport fullscreen raises webapiexception ; readonly attribute mediacontrollerabilitysupport croppedfull raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerabilitysupport letterbox represents server's ability to set letterbox mode default value is no since 5 5 exceptions webapiexception with error type unknownerror, if any other error occurs readonly mediacontrollerabilitysupport originsize represents server's ability to set originsize mode default value is no since 5 5 exceptions webapiexception with error type unknownerror, if any other error occurs readonly mediacontrollerabilitysupport fullscreen represents server's ability to set fullscreen mode default value is no since 5 5 exceptions webapiexception with error type unknownerror, if any other error occurs readonly mediacontrollerabilitysupport croppedfull represents server's ability to set croppedfull mode default value is no since 5 5 exceptions webapiexception with error type unknownerror, if any other error occurs 2 14 mediacontrollerdisplayrotationabilitiesinfo the client-side object representing display rotation abilities of the media controller server [nointerfaceobject] interface mediacontrollerdisplayrotationabilitiesinfo { readonly attribute mediacontrollerabilitysupport rotationnone raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation90 raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation180 raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation270 raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerabilitysupport rotationnone represents the server's ability to set 0° display orientation since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport rotation90 represents the server's ability to set 90° display orientation since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport rotation180 represents the server's ability to set 180° display orientation since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs readonly mediacontrollerabilitysupport rotation270 represents the server's ability to set 270° display orientation since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs 2 15 mediacontrollersubtitles server-side object representing subtitles mode of a media controller server [nointerfaceobject] interface mediacontrollersubtitles { attribute boolean enabled raises webapiexception ; long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; since 5 5 attributes boolean enabled state of subtitles mode on the server default value for a newly created server is false since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods addchangerequestlistener adds the listener for change requests of a media controller subtitles mode long addchangerequestlistener [mediacontrollerenabledchangerequestcallback] #mediacontrollerenabledchangerequestcallback listener ; since 5 5 remark remember to set corresponding server's mediacontrollerabilities subtitles ability to "yes" to let clients send change requests to the server parameters listener change request listener to add return value long the identifier used to remove the listener exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, enabled { console log "subtitles mode change requested to " + enabled + " by " + clientname ; var result = false; /\* do some action here and return according to the result */ if !result { return new tizen mediacontroller requestreply new tizen bundle {"message" "error - not allowed"} , 13 ; } return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to subtitles mode change requests from client */ watcherid = mcserver subtitles addchangerequestlistener changelistener ; removechangerequestlistener removes the listener and stops receiving change requests of media controller subtitles mode void removechangerequestlistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, enabled { console log "subtitles mode change requested to " + enabled + " by " + clientname ; return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive subtitles mode change requests from clients */ watcherid = mcserver subtitles addchangerequestlistener changelistener ; /* cancels the watch operation */ mcserver subtitles removechangerequestlistener watcherid ; 2 16 mediacontrollersubtitlesinfo client-side object representing subtitles mode of a media controller server [nointerfaceobject] interface mediacontrollersubtitlesinfo { readonly attribute boolean enabled raises webapiexception ; void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerenabledchangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; since 5 5 attributes readonly boolean enabled state of subtitles mode on the server represented by this object since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods sendrequest allows to send change requests for subtitles mode to media controller server void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback ; since 5 5 remark see addchangerequestlistener method to check how to receive and respond to commands parameters enabled state which is requested by a media controller client replycallback the method to invoke when server responded to change request exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type notsupportederror, if related ability is not supported by the media controller server with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var enabled = true; mcserverinfo subtitles sendrequest enabled, function data, code { console log "server replied with return data " + json stringify data + " and code " + code ; } ; addmodechangelistener adds the listener for changes of a media controller subtitles mode of a media controller server long addmodechangelistener mediacontrollerenabledchangecallback listener ; since 5 5 parameters listener subtitles mode change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when subtitles mode changes */ watcherid = mcserverinfo subtitles addmodechangelistener function enabled { console log mcserverinfo name + " server subtitles mode changed to " + enabled ; } ; removemodechangelistener removes the listener, so stop receiving notifications about media controller server subtitles mode changes void removemodechangelistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when subtitles mode changes */ watcherid = mcserverinfo subtitles addmodechangelistener function enabled { console log mcserverinfo name + " server subtitles mode changed to " + enabled ; } ; /* cancels the watch operation */ mcserverinfo subtitles removemodechangelistener watcherid ; 2 17 mediacontrollermode360 server-side object representing spherical 360° mode of a media controller server [nointerfaceobject] interface mediacontrollermode360 { attribute boolean enabled raises webapiexception ; long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; since 5 5 attributes boolean enabled state of spherical 360° mode on the server default value for a newly created server is false since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods addchangerequestlistener adds the listener for change requests of a media controller spherical 360° mode long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener ; since 5 5 remark remember to set corresponding server's mediacontrollerabilities mode360 ability to "yes" to let clients send change requests to the server parameters listener change request listener to add return value long the identifier used to remove the listener exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, enabled { console log "spherical mode change requested to " + enabled + " by " + clientname ; var result = false; /\* do some action here and return according to the result */ if !result { return new tizen mediacontroller requestreply new tizen bundle {"message" "error - not allowed"} , 13 ; } return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive spherical mode change requests from clients */ watcherid = mcserver mode360 addchangerequestlistener changelistener ; removechangerequestlistener removes the listener and stops receiving change requests of media controller spherical 360° mode void removechangerequestlistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, enabled { console log "spherical mode change requested to " + enabled + " by " + clientname ; return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive spherical mode change requests from clients */ watcherid = mcserver mode360 addchangerequestlistener changelistener ; /* cancels the watch operation */ mcserver mode360 removechangerequestlistener watcherid ; 2 18 mediacontrollermode360info client-side object representing spherical 360° mode of a media controller server [nointerfaceobject] interface mediacontrollermode360info { readonly attribute boolean enabled raises webapiexception ; void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerenabledchangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; since 5 5 attributes readonly boolean enabled state of spherical 360° mode on the server represented by this object since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods sendrequest allows to send change requests for spherical 360° mode to media controller server void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback ; since 5 5 remark see addchangerequestlistener method to check how to receive and respond to commands parameters enabled state which is requested by a media controller client replycallback the method to invoke when server responded to change request exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type notsupportederror, if related ability is not supported by the media controller server with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var enabled = true; mcserverinfo mode360 sendrequest enabled, function data, code { console log "server replied with return data " + json stringify data + " and code " + code ; } ; addmodechangelistener adds the listener for changes of a media controller spherical 360° mode of a media controller server long addmodechangelistener mediacontrollerenabledchangecallback listener ; since 5 5 parameters listener spherical 360° mode change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when spherical mode changes */ watcherid = mcserverinfo mode360 addmodechangelistener function enabled { console log mcserverinfo name + " server spherical mode changed to " + enabled ; } ; removemodechangelistener removes the listener, so stop receiving notifications about media controller server spherical 360° mode changes void removemodechangelistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /* registers to be notified when spherical mode changes */ watcherid = mcserverinfo mode360 addmodechangelistener function enabled { console log mcserverinfo name + " server spherical mode changed to " + enabled ; } ; /* cancels the watch operation */ mcserverinfo mode360 removemodechangelistener watcherid ; 2 19 mediacontrollerdisplaymode server-side object representing display mode of a media controller server [nointerfaceobject] interface mediacontrollerdisplaymode { attribute mediacontrollerdisplaymodetype type raises webapiexception ; long addchangerequestlistener mediacontrollerdisplaymodechangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; since 5 5 attributes mediacontrollerdisplaymodetype type type of display mode on the server default value for a newly created server is "full_screen" since 5 5 exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs methods addchangerequestlistener adds the listener for change requests of the media controller display mode long addchangerequestlistener mediacontrollerdisplaymodechangerequestcallback listener ; since 5 5 remark remember to set corresponding server's display mode ability to "yes" to let clients send change requests to the server parameters listener change request listener to add return value long the identifier used to remove the listener exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, type { console log "display mode change requested to " + type + " by " + clientname ; var result = false; /\* do some action here and return according to the result */ if !result { return new tizen mediacontroller requestreply new tizen bundle {"message" "error - not allowed"} , 13 ; } return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive display mode change requests from clients */ watcherid = mcserver displaymode addchangerequestlistener changelistener ; removechangerequestlistener removes the listener and stops receiving change requests of media controller display mode void removechangerequestlistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, type { console log "display mode change requested to " + type + " by " + clientname ; }; /* registers to receive display mode change requests from clients */ watcherid = mcserver displaymode addchangerequestlistener changelistener ; /* cancels the watch operation */ mcserver displaymode removechangerequestlistener watcherid ; 2 20 mediacontrollerdisplaymodeinfo client-side object representing display mode of a media controller server [nointerfaceobject] interface mediacontrollerdisplaymodeinfo { readonly attribute mediacontrollerdisplaymodetype type raises webapiexception ; void sendrequest mediacontrollerdisplaymodetype type, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerdisplaymodechangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerdisplaymodetype type type of display mode on the server represented by this object since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods sendrequest allows to send change requests for display mode to media controller server void sendrequest mediacontrollerdisplaymodetype type, mediacontrollersendcommandsuccesscallback replycallback ; since 5 5 remark see addchangerequestlistener method to check how to receive and respond to commands parameters type type of display mode, which is requested by a media controller client replycallback the method to invoke when server responded to change request exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type notsupportederror, if related ability is not supported by the media controller server with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var type = "cropped_full"; mcserverinfo displaymode sendrequest type, function data, code { console log "server replied with return data " + json stringify data + " and code " + code ; } ; addmodechangelistener adds the listener for changes of a media controller display mode of a media controller server long addmodechangelistener mediacontrollerdisplaymodechangecallback listener ; since 5 5 parameters listener display mode change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /* registers to be notified when display mode changes */ watcherid = mcserverinfo displaymode addmodechangelistener function mode { console log mcserverinfo name + " server display mode changed to " + mode ; } ; removemodechangelistener removes the listener, so stop receiving notifications about media controller server display mode changes void removemodechangelistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /* registers to be notified when display mode changes */ watcherid = mcserverinfo displaymode addmodechangelistener function mode { console log mcserverinfo name + " server display mode changed to " + mode ; } ; /* cancels the watch operation */ mcserverinfo displaymode removemodechangelistener watcherid ; 2 21 mediacontrollerdisplayrotation server-side object representing display rotation of a media controller server [nointerfaceobject] interface mediacontrollerdisplayrotation { attribute mediacontrollerdisplayrotationtype displayrotation raises webapiexception ; long addchangerequestlistener mediacontrollerdisplayrotationchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; since 5 5 attributes mediacontrollerdisplayrotationtype displayrotation state of display rotation on the server default value for a newly created server is "rotation_none" since 5 5 exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs methods addchangerequestlistener adds the listener for change requests of a media controller display rotation long addchangerequestlistener mediacontrollerdisplayrotationchangerequestcallback listener ; since 5 5 remark remember to set corresponding server's display rotation ability to "yes" to let clients send change requests to the server parameters listener change request listener to add return value long the identifier used to remove the listener exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, rotation { console log "display rotation change requested to " + rotation + " by " + clientname ; var result = false; /\* do some action here and return according to the result */ if !result { return new tizen mediacontroller requestreply new tizen bundle {"message" "error - not allowed"} , 13 ; } return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive display rotation change requests from clients */ watcherid = mcserver displayrotation addchangerequestlistener changelistener ; removechangerequestlistener removes the listener and stops receiving change requests of media controller display rotation void removechangerequestlistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcserver = tizen mediacontroller createserver ; var changelistener = function clientname, rotation { console log "display rotation change requested to " + rotation + " by " + clientname ; return new tizen mediacontroller requestreply new tizen bundle {"message" "success"} , 0 ; }; /* registers to receive display rotation change requests from clients */ watcherid = mcserver displayrotation addchangerequestlistener changelistener ; /* cancels the watch operation */ mcserver displayrotation removechangerequestlistener watcherid ; 2 22 mediacontrollerclientinfo this interface provides communication methods from the server to the client [nointerfaceobject] interface mediacontrollerclientinfo { readonly attribute applicationid name; void sendevent domstring eventname, bundle? data, mediacontrollersendcommandsuccesscallback successcallback raises webapiexception ; }; since 5 5 attributes readonly applicationid name id of the client application since 5 5 methods sendevent sends an event to the client void sendevent domstring eventname, bundle? data, mediacontrollersendcommandsuccesscallback successcallback ; since 5 5 parameters eventname name of the event data [nullable] additional event data successcallback reply handling function exceptions webapiexception with error type typemismatcherror, if any argument has invalid type with error type unknownerror, if any other error occurs code example /\* client application */ var mcclient = tizen mediacontroller getclient ; mcclient setcustomeventlistener function servername, eventname, data { console log "media controller client received an event from the server " ; console log " name " + eventname ; console log " data " + json stringify data ; mcclient unsetcustomeventlistener ; return new tizen mediacontroller requestreply {response "response data"}, 123 ; } ; /\* server application */ var mcserver = tizen mediacontroller createserver ; mcserver updateplaybackstate "play" ; var mcclientsinfoall = mcserver getallclientsinfo ; if mcclientsinfoall length < 1 { console log "server has no active clients " ; } else { mcclientsinfoall\[0\] sendevent "test", new tizen bundle {param1 "value1", param2 "value2"} , function response { console log "media controller server received a reply to the event " ; console log " response " + json stringify response ; } ; } output example media controller client received an event from the server name test data '{param1 "value1", param2 "value2"}' media controller server received a reply to the event response '{data {response "response data"}, code 123}' 2 23 mediacontrollerdisplayrotationinfo client-side object representing display rotation of a media controller server [nointerfaceobject] interface mediacontrollerdisplayrotationinfo { readonly attribute mediacontrollerdisplayrotationtype displayrotation raises webapiexception ; void sendrequest mediacontrollerdisplayrotationtype displayrotation, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long adddisplayrotationchangelistener mediacontrollerdisplayrotationchangecallback listener raises webapiexception ; void removedisplayrotationchangelistener long watchid raises webapiexception ; }; since 5 5 attributes readonly mediacontrollerdisplayrotationtype displayrotation state of display rotation on the server represented by this object since 5 5 exceptions webapiexception with error type unknownerror, if any error occurs methods sendrequest allows to send change requests for display rotation change to a media controller server void sendrequest mediacontrollerdisplayrotationtype displayrotation, mediacontrollersendcommandsuccesscallback replycallback ; since 5 5 remark see addchangerequestlistener method to check how to receive and respond to commands parameters displayrotation display rotation, which is requested by client replycallback the method to invoke when server responded to change request exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type notsupportederror, if related ability is not supported by server with error type unknownerror, if any other error occurs code example var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; var rotation = "rotation_180"; mcserverinfo displayrotation sendrequest rotation, function data, code { console log "server replied with return data " + json stringify data + " and code " + code ; } ; adddisplayrotationchangelistener adds the listener for changes of a display rotation of a media controller server long adddisplayrotationchangelistener mediacontrollerdisplayrotationchangecallback listener ; since 5 5 parameters listener display rotation change listener to add return value long the identifier used to clear the watch subscription exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when display rotation changes */ watcherid = mcserverinfo displayrotation adddisplayrotationchangelistener function rotation { console log mcserverinfo name + " server display rotation changed to " + rotation ; } ; removedisplayrotationchangelistener removes the listener, so stop receiving notifications about media controller server display rotation changes void removedisplayrotationchangelistener long watchid ; since 5 5 calling this function has no effect if there is no listener with given id parameters watchid watcher identifier exceptions webapiexception with error type unknownerror, if any error occurs code example var watcherid = 0; /* watcher identifier */ var mcclient = tizen mediacontroller getclient ; var mcserverinfo = mcclient getlatestserverinfo ; /\* registers to be notified when display rotation changes */ watcherid = mcserverinfo displayrotation adddisplayrotationchangelistener function rotation { console log mcserverinfo name + " server display rotation changed to " + rotation ; } ; /\* cancels the watch operation */ mcserverinfo displayrotation removedisplayrotationchangelistener watcherid ; 2 24 mediacontrollermetadata playback metadata [nointerfaceobject] interface mediacontrollermetadata { attribute domstring title; attribute domstring artist; attribute domstring album; attribute domstring author; attribute domstring genre; attribute domstring duration; attribute domstring date; attribute domstring copyright; attribute domstring description; attribute domstring tracknum; attribute domstring picture; attribute long seasonnumber; attribute domstring? seasontitle; attribute long episodenumber; attribute domstring? episodetitle; attribute long resolutionwidth; attribute long resolutionheight; }; since 5 0 attributes domstring title media title since 5 0 domstring artist media artist since 5 0 domstring album media album since 5 0 domstring author media author since 5 0 domstring genre media genre since 5 0 domstring duration media duration since 5 0 domstring date media date since 5 0 domstring copyright media copyright since 5 0 domstring description media description since 5 0 domstring tracknum media track number since 5 0 domstring picture media picture since 5 0 long seasonnumber season number default value is 0 since 5 5 domstring seasontitle [nullable] season title default value is null since 5 5 long episodenumber episode number default value is 0 since 5 5 domstring episodetitle [nullable] episode title default value is null since 5 5 long resolutionwidth resolution width default value is 0 it cannot be changed to less than 0 setting inappropriate values has no effect on the attribute since 5 5 long resolutionheight resolution height default value is 0 it cannot be changed to less than 0 setting inappropriate values has no effect on the attribute since 5 5 2 25 mediacontrollerplaylistitem object represents single playlist item [nointerfaceobject] interface mediacontrollerplaylistitem { readonly attribute domstring index; readonly attribute mediacontrollermetadata metadata; }; since 5 5 attributes readonly domstring index index of playlist's item should be unique within playlist since 5 5 readonly mediacontrollermetadata metadata metadata associated with item since 5 5 2 26 mediacontrollermetadatainit the mediacontrollermetadatainit dictionary defines the properties of a mediacontrollermetadata to add in additem method dictionary mediacontrollermetadatainit { domstring title; domstring artist; domstring album; domstring author; domstring genre; domstring duration; domstring date; domstring copyright; domstring description; domstring tracknum; domstring picture; long seasonnumber; domstring seasontitle; long episodenumber; domstring episodetitle; long resolutionwidth; long resolutionheight; }; since 5 5 see mediacontrollermetadata interface for more information about the members 2 27 mediacontrollerplaylist object represents single playlist collection of items [nointerfaceobject] interface mediacontrollerplaylist { readonly attribute domstring name; void additem domstring index, mediacontrollermetadatainit metadata raises webapiexception ; void getitems mediacontrollergetitemssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; }; since 5 5 attributes readonly domstring name name of this playlist since 5 5 methods additem adds new item to the playlist void additem domstring index, mediacontrollermetadatainit metadata ; since 5 5 parameters index index for new item, should be unique within playlist metadata metadata to be associated with new item exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example var mcserver = tizen mediacontroller createserver ; var playlist = mcserver createplaylist "testplaylist" ; var metadata = { title "testtitle", artist "testartist", album "testalbum", author "testauthor", genre "testgenre", duration "testduration", date "testdate", copyright "testcopyright", description "testdescription", tracknum "testtracknum", picture "testpicture", seasonnumber 1, seasontitle "testseasontitle", episodenumber 1, episodetitle "testepisodetitle", resolutionwidth 1600, resolutionheight 900 }; playlist additem "index1", metadata ; console log "item added " ; function successcallback { console log "saveplaylist successful " ; } function errorcallback error { console log "saveplaylist failed with error " + error ; } mcserver saveplaylist playlist, successcallback, errorcallback ; output example item added saveplaylist successful getitems gets all items from playlist void getitems mediacontrollergetitemssuccesscallback successcallback, optional errorcallback? errorcallback ; since 5 5 the errorcallback may be triggered for one of the following errors unknownerror if any error prevents function from successful completion remark note that getitems method return only those items from playlist which been saved by saveplaylist method parameters successcallback function to be called when getitems is finished without error errorcallback [optional] [nullable] function to be called when getitems fails exceptions webapiexception with error type typemismatcherror, if any input parameter is not compatible with the expected type for that parameter with error type unknownerror, if any other error occurs code example /\* assumes that code example from additem was executed before */ function successcallback items { items foreach function item { console log "index " + item index + " title " + item metadata title ; } ; } function errorcallback error { console log "getitems failed with error " + error ; } playlist getitems successcallback, errorcallback ; output example index index1 title testtitle 2 28 searchfilter search filter representation [constructor mediacontrollercontenttype contenttype, optional mediacontrollersearchcategory category = "no_category", optional domstring? keyword = null, optional bundle? extradata = null ] interface searchfilter { attribute mediacontrollercontenttype contenttype raises webapiexception ; attribute mediacontrollersearchcategory category raises webapiexception ; attribute domstring? keyword raises webapiexception ; attribute bundle? extradata; }; since 5 5 remark throws webapiexception with error type typemismatcherror, if constructor is called with invalid argument types remark throws webapiexception with error type invalidvalueserror, if constructor is called with null keyword and category different than no_category constructors constructor mediacontrollercontenttype, mediacontrollersearchcategory, domstring?, bundle? searchfilter mediacontrollercontenttype contenttype, optional mediacontrollersearchcategory category = "no_category", optional domstring? keyword = null, optional bundle? extradata = null ; attributes mediacontrollercontenttype contenttype specifies filter's content type parameter since 5 5 exceptions webapiexception with error type typemismatcherror, if the input parameter is not compatible with the expected type mediacontrollersearchcategory category specifies filter's search category parameter since 5 5 exceptions webapiexception with error type typemismatcherror, if the input parameter is not compatible with the expected type with error type invalidvalueserror, if keyword is null and new category value is not no_category domstring keyword [nullable] specifies filter's search keyword parameter since 5 5 remark keyword can only be null or empty if the category is set to no_category exceptions webapiexception with error type invalidvalueserror, if the category is not no_category and the keyword is null bundle extradata [nullable] additional application-dependent search parameters since 5 5 2 29 mediacontrollerserverinfoarraysuccesscallback the mediacontrollerserverinfoarraysuccesscallback interface that defines the success method for mediacontrollerclient findservers [callback=functiononly, nointerfaceobject] interface mediacontrollerserverinfoarraysuccesscallback { void onsuccess mediacontrollerserverinfo[] servers ; }; since 5 0 methods onsuccess void onsuccess mediacontrollerserverinfo[] servers ; since 5 0 parameters servers list of registered media controller servers 2 30 mediacontrollersendcommandsuccesscallback the mediacontrollersendcommandsuccesscallback interface that defines the success method which is triggered, when the server responds to a command [callback=functiononly, nointerfaceobject] interface mediacontrollersendcommandsuccesscallback { void onsuccess object? data, optional long code ; }; since 5 0 interface is used as a success method for mediacontrollerserverinfo sendcommand mediacontrollermode360info sendrequest mediacontrollersubtitlesinfo sendrequest mediacontrollerdisplaymode sendrequest mediacontrollerdisplayrotationinfo sendrequest mediacontrollerclientinfo sendevent methods onsuccess called when a response to the request is received void onsuccess object? data, optional long code ; since 5 0 parameters data [nullable] response data object sent by the command handler this object is compatible with bundle object code [optional] response code 2 31 requestreply representation of server's response to a request [constructor bundle? data, optional long code = 0 ] interface requestreply { attribute bundle? data; attribute long code; }; since 5 5 constructors constructor bundle?, long requestreply bundle? data, optional long code = 0 ; attributes bundle data [nullable] response data bundle since 5 5 long code response status code since 5 5 2 32 mediacontrollersearchrequestreplycallback the mediacontrollersearchrequestreplycallback interface defines reply callback for mediacontrollerserverinfo sendsearchrequest [callback=functiononly, nointerfaceobject] interface mediacontrollersearchrequestreplycallback { void onreply requestreply? reply ; }; since 5 5 methods onreply function called when search request has been processed void onreply requestreply? reply ; since 5 5 interpretation of status and data parameters depends on the server implementation parameters reply [nullable] reply object returned by request handler 2 33 mediacontrollersearchrequestcallback server search request listener interface [callback=functiononly, nointerfaceobject] interface mediacontrollersearchrequestcallback { requestreply? onrequest applicationid clientname, searchfilter[] request ; }; since 5 5 methods onrequest function called on the server when it receives a search request from a client requestreply? onrequest applicationid clientname, searchfilter[] request ; since 5 5 parameters clientname request sender name request collection of filters to refine the search results return value requestreply [nullable] requestreply object with status code and reply data bundle it will be passed to the replycallback of sendsearchrequest 2 34 mediacontrollerreceivecommandcallback the mediacontrollerreceivecommandcallback interface that defines the listener for custom communication between server and client [callback=functiononly, nointerfaceobject] interface mediacontrollerreceivecommandcallback { requestreply? onsuccess applicationid senderappname, domstring command, object data ; }; since 5 0 related functions sendcommand addcommandlistener sendevent seteventlistener methods onsuccess called when custom command is received by the server or custom event is received by the client requestreply? onsuccess applicationid senderappname, domstring command, object data ; since 5 0 parameters senderappname sender application id command custom command or event data response object this object is compatible with bundle return value requestreply [nullable] requestreply object which will be returned to the author of the request 2 35 mediacontrollerenabledchangerequestcallback the mediacontrollerenabledchangerequestcallback interface that defines the listener for change requests for spherical mode in mediacontrollermode360 addchangerequestlistener and subtitles mode in mediacontrollersubtitles addchangerequestlistener [callback=functiononly, nointerfaceobject] interface mediacontrollerenabledchangerequestcallback { requestreply? onreply applicationid clientname, boolean enabled ; }; since 5 5 methods onreply called when change request is received from client requestreply? onreply applicationid clientname, boolean enabled ; since 5 5 remark you can return data object from callback which will be sent in reply to the client see mode360 addchangerequestlistener and subtitles addchangerequestlistener methods to check how to handle and respond to commands parameters clientname the id of a client application which the request was sent from enabled the value requested by a client application return value requestreply [nullable] requestreply object which is sent with the reply to the client 2 36 mediacontrollerenabledchangecallback the mediacontrollerenabledchangecallback interface that defines the listener for a media controller server's attribute changes \[callback=functiononly, nointerfaceobject\] interface mediacontrollerenabledchangecallback { void onchange boolean enabled ; }; since 5 5 methods onchange called when server's attribute is changed void onchange boolean enabled ; since 5 5 parameters enabled current server's attribute status, which specifies if attribute is enabled or disabled 2 37 mediacontrollerdisplaymodechangerequestcallback the mediacontrollerdisplaymodechangerequestcallback interface that defines the listener for change requests for display mode in mediacontrollerdisplaymode addchangerequestlistener [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplaymodechangerequestcallback { requestreply? onreply applicationid clientname, mediacontrollerdisplaymodetype mode ; }; since 5 5 methods onreply called when change request is received from client requestreply? onreply applicationid clientname, mediacontrollerdisplaymodetype mode ; since 5 5 remark you can return data object from callback which will be sent in reply to the client see addchangerequestlistener method to check how to handle and respond to commands parameters clientname an id of a client application which sent the request mode the value requested by a client application return value requestreply [nullable] requestreply object which is sent with the reply to the client 2 38 mediacontrollerdisplaymodechangecallback the mediacontrollerdisplaymodechangecallback interface that defines the listener for display mode changes of the media controller server [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplaymodechangecallback { void onchange mediacontrollerdisplaymodetype mode ; }; since 5 5 methods onchange called when server's display mode is changed void onchange mediacontrollerdisplaymodetype mode ; since 5 5 parameters mode current server display mode 2 39 mediacontrollerdisplayrotationchangerequestcallback the mediacontrollerdisplayrotationchangerequestcallback interface that defines the listener for change requests for display rotation in mediacontrollerdisplayrotation addchangerequestlistener [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplayrotationchangerequestcallback { requestreply? onreply applicationid clientname, mediacontrollerdisplayrotationtype displayrotation ; }; since 5 5 methods onreply called when change request is received from a client requestreply? onreply applicationid clientname, mediacontrollerdisplayrotationtype displayrotation ; since 5 5 remark you can return data object from callback which will be sent in reply to the client see displayrotation addchangerequestlistener method to check how to handle and respond to commands parameters clientname an id of a client application which sent the request displayrotation the value requested by a client application return value requestreply [nullable] requestreply object which is sent with the reply to the client 2 40 mediacontrollerdisplayrotationchangecallback the mediacontrollerdisplaymodechangecallback interface that defines the listener for changes of a media controller server's display rotation [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplayrotationchangecallback { void onchange mediacontrollerdisplayrotationtype displayrotation ; }; since 5 5 methods onchange called when display rotation is changed void onchange [mediacontrollerdisplayrotationtype] #mediacontrollerdisplayrotationtype displayrotation ; since 5 5 parameters displayrotation current server display rotation state 2 41 mediacontrollerserverstatuschangecallback the mediacontrollerserverstatuschangecallback interface that defines the listener for media controller server status changes [callback=functiononly, nointerfaceobject] interface mediacontrollerserverstatuschangecallback { void onsuccess mediacontrollerserverstate status ; }; since 5 0 methods onsuccess called when server status changed void onsuccess mediacontrollerserverstate status ; since 5 0 parameters status current server status 2 42 mediacontrollerplaybackinfochangecallback the mediacontrollerplaybackinfochangecallback interface that defines the listeners object for receiving media controller playback info changes from server [callback, nointerfaceobject] interface mediacontrollerplaybackinfochangecallback { void onplaybackchanged mediacontrollerplaybackstate state, unsigned long long position ; void onshufflemodechanged boolean mode ; <span class="nocode deprecated"> void onrepeatmodechanged boolean mode ; </span> void onrepeatstatechanged mediacontrollerrepeatstate state ; void onmetadatachanged mediacontrollermetadata metadata ; }; since 5 0 methods onplaybackchanged called when playback state or position is changed void onplaybackchanged mediacontrollerplaybackstate state, unsigned long long position ; since 5 0 parameters state current playback state position current playback position onshufflemodechanged called when shuffle mode is changed void onshufflemodechanged boolean mode ; since 5 0 parameters mode current shuffle mode onrepeatmodechanged called when repeat mode is changed deprecated deprecated since 5 5 instead, use onrepeatstatechanged deprecated deprecated since 5 5 instead, use [onrepeatstatechanged] #mediacontrollerplaybackinfochangecallback onrepeatstatechanged since 5 0 remark the onrepeatmodechanged callback will not be invoked, if the repeatstate is changed to repeat_one parameters mode current repeat mode onrepeatstatechanged called when repeat state is changed void onmetadatachanged mediacontrollermetadata metadata ; since 5 5 it is guaranteed that the onrepeatstatechanged callback will be invoked after the onrepeatmodechanged parameters state current repeat state onmetadatachanged called when playback metadata is changed void onmetadatachanged [mediacontrollermetadata] #mediacontrollermetadata metadata ; since 5 0 parameters metadata current playback metadata 2 43 mediacontrollerchangerequestplaybackinfocallback the mediacontrollerchangerequestplaybackinfocallback interface that defines the listeners object for receiving playback info change requests from client [callback, nointerfaceobject] interface mediacontrollerchangerequestplaybackinfocallback { void onplaybackstaterequest mediacontrollerplaybackstate state, applicationid clientname ; void onplaybackpositionrequest unsigned long long position, applicationid clientname ; void onshufflemoderequest boolean mode, applicationid clientname ; <span class="nocode deprecated"> void onrepeatmoderequest boolean mode, applicationid clientname ; </span> void onrepeatstaterequest mediacontrollerrepeatstate state, applicationid clientname ; void onplaybackitemrequest domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position, applicationid clientname ; }; since 5 0 methods onplaybackstaterequest called when client requested playback state changes void onplaybackstaterequest mediacontrollerplaybackstate state, applicationid clientname ; since 5 0 remark parameter clientname is passed since tizen 5 5 parameters state requested playback state clientname id of client application, which sent a command onplaybackpositionrequest called when client requested playback position changes void onplaybackpositionrequest unsigned long long position, applicationid clientname ; since 5 0 remark parameter clientname is passed since tizen 5 5 parameters position requested playback position clientname id of client application, which sent a command onshufflemoderequest called when client requested shuffle mode changes void onshufflemoderequest boolean mode, applicationid clientname ; since 5 0 remark parameter clientname is passed since tizen 5 5 parameters mode requested shuffle mode clientname id of client application, which sent a command onrepeatmoderequest called when client requested repeat mode changes deprecated deprecated since 5 5 instead, use onrepeatstaterequest void onrepeatmoderequest boolean mode, [applicationid] application-api html#applicationid clientname ; since 5 0 remark the onrepeatmoderequest callback will not be invoked, if the repeatstate is requested to be changed to repeat_one remark parameter clientname is passed since tizen 5 5 parameters mode requested repeat mode clientname client application id which sent command onrepeatstaterequest called when client requested change of repeat state void onrepeatstaterequest mediacontrollerrepeatstate state, applicationid clientname ; since 5 5 it is guaranteed that the onrepeatstaterequest callback will be invoked after the onrepeatmoderequest parameters state requested repeat state clientname id of client application, which sent a command onplaybackitemrequest called when client request change of playback item void onplaybackitemrequest domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position, applicationid clientname ; since 5 5 parameters playlistname name of playlist index index of the item to be changed state playback state position playback position clientname id of client application, which sent a command 2 44 mediacontrollergetallplaylistssuccesscallback interface for success callback for getallplaylists function void onsuccess mediacontrollerplaylist[] playlists ; since 5 5 methods onsuccess success callback for getallplaylists function void onsuccess mediacontrollerplaylist[] playlists ; since 5 5 parameters playlists collection of mediacontrollerplaylist objects 2 45 mediacontrollerplaylistupdatedcallback interface for specific playlist update events including deletion [callback, nointerfaceobject] interface mediacontrollerplaylistupdatedcallback { void onplaylistupdated domstring servername, mediacontrollerplaylist playlist ; void onplaylistdeleted domstring servername, domstring playlistname ; }; since 5 5 methods onplaylistupdated event triggered when playlist is updated in database void onplaylistupdated domstring servername, mediacontrollerplaylist playlist ; since 5 5 parameters servername name of server which triggered the event playlist playlist for which event was triggered onplaylistdeleted event triggered when playlist is removed from database void onplaylistdeleted domstring servername, domstring playlistname ; since 5 5 parameters servername name of server which triggered the event playlistname name of playlist for which the event was triggered 2 46 mediacontrollergetitemssuccesscallback interface for success callback for getitems function [callback=functiononly, nointerfaceobject] interface mediacontrollergetitemssuccesscallback { void onsuccess mediacontrollerplaylistitem[] items ; }; since 5 5 methods onsuccess success callback for getitems function void onsuccess mediacontrollerplaylistitem[] items ; since 5 5 parameters items collection of mediacontrollerplaylistitem objects 2 47 mediacontrollerabilitychangecallback interface for handling ability events [callback, nointerfaceobject] interface mediacontrollerabilitychangecallback { void onplaybackabilitychanged mediacontrollerserverinfo server, mediacontrollerplaybackabilitiesinfo abilities ; void ondisplaymodeabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplaymodeabilitiesinfo abilities ; void ondisplayrotationabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplayrotationabilitiesinfo abilities ; void onsimpleabilitychanged mediacontrollerserverinfo server, mediacontrollersimpleability type, mediacontrollerabilitysupport support ; }; since 5 5 methods onplaybackabilitychanged event triggered when server's playback ability is updated void onplaybackabilitychanged mediacontrollerserverinfo server, mediacontrollerplaybackabilitiesinfo abilities ; since 5 5 parameters server server which triggered the event abilities object with current state of playback abilities on the media controller server ondisplaymodeabilitychanged event triggered when server's display mode ability is updated void ondisplaymodeabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplaymodeabilitiesinfo abilities ; since 5 5 parameters server server which triggered the event abilities object with current state of display mode abilities on the media controller server ondisplayrotationabilitychanged event triggered when server's display rotation is updated void ondisplayrotationabilitychanged [mediacontrollerserverinfo] #mediacontrollerserverinfo server, [mediacontrollerdisplayrotationabilitiesinfo] #mediacontrollerdisplayrotationabilitiesinfo abilities ; since 5 5 parameters server server which triggered the event abilities object with current state of display mode abilities on the media controller server onsimpleabilitychanged event triggered when server's simple ability is updated void onsimpleabilitychanged mediacontrollerserverinfo server, mediacontrollersimpleability type, mediacontrollerabilitysupport support ; since 5 5 parameters server server which triggered the event type type of simple ability support ability value which was set on the media controller server 3 full webidl module mediacontroller { enum mediacontrollerserverstate { "active", "inactive" }; enum mediacontrollersearchcategory { "no_category", "title", "artist", "album", "genre", "tpo" }; enum mediacontrollerplaybackstate { "play", "pause", "stop", "next", "prev", "forward", "rewind" }; enum mediacontrollerrepeatstate { "repeat_off", "repeat_one", "repeat_all" }; enum mediacontrollercontenttype { "image", "music", "video", "other", "undecided" }; enum mediacontrollercontentagerating { "all", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19" }; enum mediacontrollerabilitysupport { "yes", "no", "undecided" }; enum mediacontrollersimpleability { "playback_position", "shuffle", "repeat", "playlist", "client_custom", "search", "subtitles", "mode_360" }; enum mediacontrollerdisplaymodetype { "letter_box", "origin_size", "full_screen", "cropped_full" }; enum mediacontrollerdisplayrotationtype { "rotation_none", "rotation_90", "rotation_180", "rotation_270" }; dictionary mediacontrollermetadatainit { domstring title; domstring artist; domstring album; domstring author; domstring genre; domstring duration; domstring date; domstring copyright; domstring description; domstring tracknum; domstring picture; long seasonnumber; domstring seasontitle; long episodenumber; domstring episodetitle; long resolutionwidth; long resolutionheight; }; tizen implements mediacontrollerobject; [nointerfaceobject] interface mediacontrollerobject { readonly attribute mediacontrollermanager mediacontroller; }; [nointerfaceobject] interface mediacontrollermanager { mediacontrollerclient getclient raises webapiexception ; mediacontrollerserver createserver raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerserver { readonly attribute mediacontrollerplaybackinfo playbackinfo; readonly attribute domstring? iconuri; readonly attribute mediacontrollerabilities abilities; readonly attribute mediacontrollersubtitles subtitles; readonly attribute mediacontrollermode360 mode360; readonly attribute mediacontrollerdisplaymode displaymode; readonly attribute mediacontrollerdisplayrotation displayrotation; mediacontrollerclientinfo[] getallclientsinfo raises webapiexception ; void updateplaybackstate mediacontrollerplaybackstate state raises webapiexception ; void updateiconuri domstring? iconuri raises webapiexception ; void updateplaybackposition unsigned long long position raises webapiexception ; void updateplaybackagerating mediacontrollercontentagerating rating raises webapiexception ; void updateplaybackcontenttype mediacontrollercontenttype type raises webapiexception ; void updateshufflemode boolean mode raises webapiexception ; void updaterepeatstate mediacontrollerrepeatstate state raises webapiexception ; void updatemetadata mediacontrollermetadata metadata raises webapiexception ; long addchangerequestplaybackinfolistener mediacontrollerchangerequestplaybackinfocallback listener raises webapiexception ; void removechangerequestplaybackinfolistener long watchid raises webapiexception ; void setsearchrequestlistener mediacontrollersearchrequestcallback listener raises webapiexception ; void unsetsearchrequestlistener raises webapiexception ; long addcommandlistener mediacontrollerreceivecommandcallback listener raises webapiexception ; void removecommandlistener long watchid raises webapiexception ; mediacontrollerplaylist createplaylist domstring name raises webapiexception ; void saveplaylist mediacontrollerplaylist playlist, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void deleteplaylist domstring playlistname, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void updateplaybackitem domstring playlistname, domstring index raises webapiexception ; void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerclient { void findservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; mediacontrollerserverinfo? getlatestserverinfo raises webapiexception ; long addabilitychangelistener mediacontrollerabilitychangecallback listener raises webapiexception ; void removeabilitychangelistener long watchid raises webapiexception ; void findsubscribedservers mediacontrollerserverinfoarraysuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; void setcustomeventlistener mediacontrollerreceivecommandcallback listener raises webapiexception ; void unsetcustomeventlistener raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerserverinfo { readonly attribute applicationid name; readonly attribute mediacontrollerserverstate state; readonly attribute mediacontrollerplaybackinfo playbackinfo raises webapiexception ; readonly attribute domstring? iconuri raises webapiexception ; readonly attribute mediacontrollerabilitiesinfo abilities; readonly attribute mediacontrollersubtitlesinfo subtitles; readonly attribute mediacontrollermode360info mode360; readonly attribute mediacontrollerdisplaymodeinfo displaymode; readonly attribute mediacontrollerdisplayrotationinfo displayrotation; void sendplaybackstate mediacontrollerplaybackstate state, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendplaybackposition unsigned long long position, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendshufflemode boolean mode, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendrepeatstate mediacontrollerrepeatstate state, optional successcallback? successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendsearchrequest searchfilter[] request, mediacontrollersearchrequestreplycallback replycallback, optional errorcallback? errorcallback raises webapiexception ; void sendcommand domstring command, bundle? data, mediacontrollersendcommandsuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; long addserverstatuschangelistener mediacontrollerserverstatuschangecallback listener raises webapiexception ; void removeserverstatuschangelistener long watchid raises webapiexception ; long addplaybackinfochangelistener mediacontrollerplaybackinfochangecallback listener raises webapiexception ; void removeplaybackinfochangelistener long watchid raises webapiexception ; void getallplaylists mediacontrollergetallplaylistssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; void sendplaybackitem domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position raises webapiexception ; long addplaylistupdatedlistener mediacontrollerplaylistupdatedcallback listener raises webapiexception ; void removeplaylistupdatedlistener long listenerid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerplaybackinfo { readonly attribute mediacontrollerplaybackstate state; readonly attribute unsigned long long position; readonly attribute mediacontrollercontentagerating agerating; readonly attribute mediacontrollercontenttype contenttype; readonly attribute boolean shufflemode; readonly attribute mediacontrollerrepeatstate repeatstate; readonly attribute mediacontrollermetadata metadata; readonly attribute domstring? index; readonly attribute domstring? playlistname; }; [nointerfaceobject] interface mediacontrollerabilities { readonly attribute mediacontrollerplaybackabilities playback; readonly attribute mediacontrollerdisplaymodeabilities displaymode; readonly attribute mediacontrollerdisplayrotationabilities displayrotation; attribute mediacontrollerabilitysupport playbackposition raises webapiexception ; attribute mediacontrollerabilitysupport shuffle raises webapiexception ; attribute mediacontrollerabilitysupport repeat raises webapiexception ; attribute mediacontrollerabilitysupport playlist raises webapiexception ; attribute mediacontrollerabilitysupport clientcustom raises webapiexception ; attribute mediacontrollerabilitysupport search raises webapiexception ; attribute mediacontrollerabilitysupport subtitles raises webapiexception ; attribute mediacontrollerabilitysupport mode360 raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerplaybackabilities { attribute mediacontrollerabilitysupport play raises webapiexception ; attribute mediacontrollerabilitysupport pause raises webapiexception ; attribute mediacontrollerabilitysupport stop raises webapiexception ; attribute mediacontrollerabilitysupport next raises webapiexception ; attribute mediacontrollerabilitysupport prev raises webapiexception ; attribute mediacontrollerabilitysupport forward raises webapiexception ; attribute mediacontrollerabilitysupport rewind raises webapiexception ; attribute mediacontrollerabilitysupport toggleplaypause raises webapiexception ; void saveabilities raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplaymodeabilities { attribute mediacontrollerabilitysupport letterbox raises webapiexception ; attribute mediacontrollerabilitysupport originsize raises webapiexception ; attribute mediacontrollerabilitysupport fullscreen raises webapiexception ; attribute mediacontrollerabilitysupport croppedfull raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplayrotationabilities { attribute mediacontrollerabilitysupport rotationnone raises webapiexception ; attribute mediacontrollerabilitysupport rotation90 raises webapiexception ; attribute mediacontrollerabilitysupport rotation180 raises webapiexception ; attribute mediacontrollerabilitysupport rotation270 raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerabilitiesinfo { readonly attribute mediacontrollerplaybackabilitiesinfo playback; readonly attribute mediacontrollerdisplaymodeabilitiesinfo displaymode; readonly attribute mediacontrollerdisplayrotationabilitiesinfo displayrotation; readonly attribute mediacontrollerabilitysupport playbackposition raises webapiexception ; readonly attribute mediacontrollerabilitysupport shuffle raises webapiexception ; readonly attribute mediacontrollerabilitysupport repeat raises webapiexception ; readonly attribute mediacontrollerabilitysupport playlist raises webapiexception ; readonly attribute mediacontrollerabilitysupport clientcustom raises webapiexception ; readonly attribute mediacontrollerabilitysupport search raises webapiexception ; readonly attribute mediacontrollerabilitysupport subtitles raises webapiexception ; readonly attribute mediacontrollerabilitysupport mode360 raises webapiexception ; void subscribe raises webapiexception ; void unsubscribe raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerplaybackabilitiesinfo { readonly attribute mediacontrollerabilitysupport play raises webapiexception ; readonly attribute mediacontrollerabilitysupport pause raises webapiexception ; readonly attribute mediacontrollerabilitysupport stop raises webapiexception ; readonly attribute mediacontrollerabilitysupport next raises webapiexception ; readonly attribute mediacontrollerabilitysupport prev raises webapiexception ; readonly attribute mediacontrollerabilitysupport forward raises webapiexception ; readonly attribute mediacontrollerabilitysupport rewind raises webapiexception ; readonly attribute mediacontrollerabilitysupport toggleplaypause raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplaymodeabilitiesinfo { readonly attribute mediacontrollerabilitysupport letterbox raises webapiexception ; readonly attribute mediacontrollerabilitysupport originsize raises webapiexception ; readonly attribute mediacontrollerabilitysupport fullscreen raises webapiexception ; readonly attribute mediacontrollerabilitysupport croppedfull raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplayrotationabilitiesinfo { readonly attribute mediacontrollerabilitysupport rotationnone raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation90 raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation180 raises webapiexception ; readonly attribute mediacontrollerabilitysupport rotation270 raises webapiexception ; }; [nointerfaceobject] interface mediacontrollersubtitles { attribute boolean enabled raises webapiexception ; long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollersubtitlesinfo { readonly attribute boolean enabled raises webapiexception ; void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerenabledchangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollermode360 { attribute boolean enabled raises webapiexception ; long addchangerequestlistener mediacontrollerenabledchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollermode360info { readonly attribute boolean enabled raises webapiexception ; void sendrequest boolean enabled, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerenabledchangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplaymode { attribute mediacontrollerdisplaymodetype type raises webapiexception ; long addchangerequestlistener mediacontrollerdisplaymodechangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplaymodeinfo { readonly attribute mediacontrollerdisplaymodetype type raises webapiexception ; void sendrequest mediacontrollerdisplaymodetype type, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long addmodechangelistener mediacontrollerdisplaymodechangecallback listener raises webapiexception ; void removemodechangelistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplayrotation { attribute mediacontrollerdisplayrotationtype displayrotation raises webapiexception ; long addchangerequestlistener mediacontrollerdisplayrotationchangerequestcallback listener raises webapiexception ; void removechangerequestlistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerclientinfo { readonly attribute applicationid name; void sendevent domstring eventname, bundle? data, mediacontrollersendcommandsuccesscallback successcallback raises webapiexception ; }; [nointerfaceobject] interface mediacontrollerdisplayrotationinfo { readonly attribute mediacontrollerdisplayrotationtype displayrotation raises webapiexception ; void sendrequest mediacontrollerdisplayrotationtype displayrotation, mediacontrollersendcommandsuccesscallback replycallback raises webapiexception ; long adddisplayrotationchangelistener mediacontrollerdisplayrotationchangecallback listener raises webapiexception ; void removedisplayrotationchangelistener long watchid raises webapiexception ; }; [nointerfaceobject] interface mediacontrollermetadata { attribute domstring title; attribute domstring artist; attribute domstring album; attribute domstring author; attribute domstring genre; attribute domstring duration; attribute domstring date; attribute domstring copyright; attribute domstring description; attribute domstring tracknum; attribute domstring picture; attribute long seasonnumber; attribute domstring? seasontitle; attribute long episodenumber; attribute domstring? episodetitle; attribute long resolutionwidth; attribute long resolutionheight; }; [nointerfaceobject] interface mediacontrollerplaylistitem { readonly attribute domstring index; readonly attribute mediacontrollermetadata metadata; }; [nointerfaceobject] interface mediacontrollerplaylist { readonly attribute domstring name; void additem domstring index, mediacontrollermetadatainit metadata raises webapiexception ; void getitems mediacontrollergetitemssuccesscallback successcallback, optional errorcallback? errorcallback raises webapiexception ; }; [constructor mediacontrollercontenttype contenttype, optional mediacontrollersearchcategory category = "no_category", optional domstring? keyword = null, optional bundle? extradata = null ] interface searchfilter { attribute mediacontrollercontenttype contenttype raises webapiexception ; attribute mediacontrollersearchcategory category raises webapiexception ; attribute domstring? keyword raises webapiexception ; attribute bundle? extradata; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerserverinfoarraysuccesscallback { void onsuccess mediacontrollerserverinfo[] servers ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollersendcommandsuccesscallback { void onsuccess object? data, optional long code ; }; [constructor bundle? data, optional long code = 0 ] interface requestreply { attribute bundle? data; attribute long code; }; [callback=functiononly, nointerfaceobject] interface mediacontrollersearchrequestreplycallback { void onreply requestreply? reply ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollersearchrequestcallback { requestreply? onrequest applicationid clientname, searchfilter[] request ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerreceivecommandcallback { requestreply? onsuccess applicationid senderappname, domstring command, object data ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerenabledchangerequestcallback { requestreply? onreply applicationid clientname, boolean enabled ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerenabledchangecallback { void onchange boolean enabled ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplaymodechangerequestcallback { requestreply? onreply applicationid clientname, mediacontrollerdisplaymodetype mode ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplaymodechangecallback { void onchange mediacontrollerdisplaymodetype mode ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplayrotationchangerequestcallback { requestreply? onreply applicationid clientname, mediacontrollerdisplayrotationtype displayrotation ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerdisplayrotationchangecallback { void onchange mediacontrollerdisplayrotationtype displayrotation ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollerserverstatuschangecallback { void onsuccess mediacontrollerserverstate status ; }; [callback, nointerfaceobject] interface mediacontrollerplaybackinfochangecallback { void onplaybackchanged mediacontrollerplaybackstate state, unsigned long long position ; void onshufflemodechanged boolean mode ; void onrepeatstatechanged mediacontrollerrepeatstate state ; void onmetadatachanged mediacontrollermetadata metadata ; }; [callback, nointerfaceobject] interface mediacontrollerchangerequestplaybackinfocallback { void onplaybackstaterequest mediacontrollerplaybackstate state, applicationid clientname ; void onplaybackpositionrequest unsigned long long position, applicationid clientname ; void onshufflemoderequest boolean mode, applicationid clientname ; void onrepeatstaterequest mediacontrollerrepeatstate state, applicationid clientname ; void onplaybackitemrequest domstring playlistname, domstring index, mediacontrollerplaybackstate state, unsigned long long position, applicationid clientname ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollergetallplaylistssuccesscallback { void onsuccess mediacontrollerplaylist[] playlists ; }; [callback, nointerfaceobject] interface mediacontrollerplaylistupdatedcallback { void onplaylistupdated domstring servername, mediacontrollerplaylist playlist ; void onplaylistdeleted domstring servername, domstring playlistname ; }; [callback=functiononly, nointerfaceobject] interface mediacontrollergetitemssuccesscallback { void onsuccess mediacontrollerplaylistitem[] items ; }; [callback, nointerfaceobject] interface mediacontrollerabilitychangecallback { void onplaybackabilitychanged mediacontrollerserverinfo server, mediacontrollerplaybackabilitiesinfo abilities ; void ondisplaymodeabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplaymodeabilitiesinfo abilities ; void ondisplayrotationabilitychanged mediacontrollerserverinfo server, mediacontrollerdisplayrotationabilitiesinfo abilities ; void onsimpleabilitychanged mediacontrollerserverinfo server, mediacontrollersimpleability type, mediacontrollerabilitysupport support ; }; };