module com.pelagicore.ivi.tuner 1.0; interface BaseTuner { int baseValue; } /** Service Tuner */ @service: true @interface: true @config: {private: true, b: B, c: C} @data: [1,2,3] interface Tuner extends BaseTuner { /** property currentStation */ readonly Station currentStation; /** the default station, which never changes */ const Station defaultStation; /** operation nextStation */ void nextStation(); /** operation numStations */ int numStations() const; /** operation previousStation */ void previousStation(); /** operation updateCurrentStation */ void updateCurrentStation(int stationId); list primitiveList; list complexList; model primitiveModel; model complexModel; signal scanFinished(); signal broadcastMessage(string message); TunerExtension extension; Feature feature; } interface TunerExtension { } /** enum State */ enum State { /** value State.Null */ Null=0, /** value State.Loading */ Loading=1, /** value State.Ready */ Ready=2, /** value State.Error */ Error=3 } /** enum Waveband */ @default: {value: FM} enum Waveband { /** value Waveband.FM */ FM=0, /** value Waveband.AM */ AM=1 } flag Feature { Mono = 0x1, Stereo = 0x2, } /** struct Station */ struct Station { /** member stationId */ int stationId; /** member name */ string name; }