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

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];
}
}
}
}
主站蜘蛛池模板: 右玉县| 大关县| 上栗县| 遂平县| 邹平县| 卫辉市| 阳西县| 徐汇区| 威宁| 蓬溪县| 徐州市| 垣曲县| 通渭县| 唐海县| 嵩明县| 长沙县| 建阳市| 沧源| 昌江| 五大连池市| 玉溪市| 洪泽县| 临猗县| 花莲县| 左云县| 甘孜县| 郎溪县| 商丘市| 惠安县| 柘城县| 德化县| 雅安市| 冕宁县| 贵州省| 庆安县| 封开县| 称多县| 景宁| 临高县| 上思县| 嘉荫县|