1
// --------------------------------------------------------------------------------------------------------------------
2 // <copyright file="AudioBehaviours.cs" company="HandBrake Project (http://handbrake.fr)">
3 // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
8 // --------------------------------------------------------------------------------------------------------------------
10 namespace HandBrakeWPF
.Model
.Audio
12 using System
.ComponentModel
;
15 using HandBrake
.ApplicationServices
.Utilities
;
20 public class AudioBehaviours
: PropertyChangedBase
22 private AudioBehaviourModes selectedBehaviour
;
23 private BindingList
<string> selectedLangauges
;
24 private AudioTrackDefaultsMode trackDefaultBehaviour
;
27 /// Initializes a new instance of the <see cref="AudioBehaviours"/> class.
29 public AudioBehaviours()
31 this.SelectedBehaviour
= AudioBehaviourModes
.None
;
32 this.SelectedTrackDefaultBehaviour
= AudioTrackDefaultsMode
.None
;
33 this.SelectedLangauges
= new BindingList
<string>();
37 /// Initializes a new instance of the <see cref="AudioBehaviours"/> class.
39 /// <param name="behaviours">
42 public AudioBehaviours(AudioBehaviours behaviours
)
44 this.SelectedBehaviour
= behaviours
.SelectedBehaviour
;
45 this.SelectedTrackDefaultBehaviour
= behaviours
.SelectedTrackDefaultBehaviour
;
46 this.SelectedLangauges
= new BindingList
<string>(behaviours
.selectedLangauges
.ToList());
50 /// Gets or sets the selected behaviour.
52 public AudioBehaviourModes SelectedBehaviour
56 return this.selectedBehaviour
;
61 if (value == this.selectedBehaviour
)
65 this.selectedBehaviour
= value;
66 this.NotifyOfPropertyChange(() => this.SelectedBehaviour
);
71 /// Gets or sets the track default behaviour.
73 public AudioTrackDefaultsMode SelectedTrackDefaultBehaviour
77 return this.trackDefaultBehaviour
;
81 if (value == this.trackDefaultBehaviour
)
85 this.trackDefaultBehaviour
= value;
86 this.NotifyOfPropertyChange(() => this.SelectedTrackDefaultBehaviour
);
91 /// Gets or sets the selected langauges.
93 public BindingList
<string> SelectedLangauges
97 return this.selectedLangauges
;
101 if (Equals(value, this.selectedLangauges
))
105 this.selectedLangauges
= value;
106 this.NotifyOfPropertyChange(() => this.SelectedLangauges
);
111 /// Clone this object
114 /// The <see cref="object"/>.
116 public AudioBehaviours
Clone()
118 AudioBehaviours cloned
= new AudioBehaviours
120 SelectedBehaviour
= this.selectedBehaviour
,
121 SelectedLangauges
= new BindingList
<string>(),
122 SelectedTrackDefaultBehaviour
= this.SelectedTrackDefaultBehaviour
125 foreach (var item
in this.SelectedLangauges
)
127 cloned
.SelectedLangauges
.Add(item
);