官术网_书友最值得收藏!

A shared model for our data

Before we go about creating our services, let's create an interface and model implementation for the core piece of data our app will be using. The TrackModel will represent a single track with the following:

  • filepath: (to the local file)
  • name: (for our view)
  • order: Position (for the view listing of tracks)
  • volume: We want our player to be able to mix different tracks together with different volume level settings
  • solo: Whether we want to hear just this track in our mix

We will also add a convenient constructor to our model, which will take an object to initialize our model with.

Create app/modules/core/models/track.model.ts, since it will be shared across both our player and recorder:

export interface ITrack {
filepath?: string;
name?: string;
order?: number;
volume?: number;
solo?: boolean;
}
export class TrackModel implements ITrack {
public filepath: string;
public name: string;
public order: number;
public volume: number = 1; // set default to full volume
public solo: boolean;

constructor(model?: any) {
if (model) {
for (let key in model) {
this[key] = model[key];
}
}
}
}
主站蜘蛛池模板: 沈阳市| 石柱| 沛县| 漳浦县| 河津市| 伊吾县| 呈贡县| 田东县| 夏河县| 梁山县| 大渡口区| 安阳市| 大兴区| 玉环县| 上思县| 德江县| 青河县| 辽源市| 渑池县| 宁南县| 昭苏县| 肥乡县| 南宫市| 台中县| 疏附县| 和硕县| 武威市| 南郑县| 上思县| 茂名市| 重庆市| 宁德市| 涟水县| 通化市| 大关县| 康定县| 新余市| 普安县| 达拉特旗| 会宁县| 闽侯县|