File: switches_and_flags.txt

package info (click to toggle)
yoshimi 2.3.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 17,012 kB
  • sloc: cpp: 62,589; xml: 97; sh: 94; python: 45; makefile: 14
file content (53 lines) | stat: -rw-r--r-- 1,816 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Details of some of the internal controls.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

partonoffLock(int npart, int what)
  A semaphore locked version of:


partonoffWrite((int npart, int what)
  This sets or clears a part's status in one of 4 ways
  depending on the value of 'what'.

  Zero will always turn the part off, and 1 will always turn it on.

  -1 moves it toward off and 2 moves it towards on.

  The rationale here is that if a part status is unknown to a function, but it wants
  to perform an operation that needs the part to be off, but then wants to restore
  it to its original condition, it first uses -1. If it was already off it makes no
  difference, but if it was on it is now turned off. Once the operation has been
  completed it uses 2 to restore the original state, so if it was off, it still is,
  but if it was on it is now on again.

  The internal value will become progressively more negative as processes use -2 but
  will never become greater than +1 for 'on'

  If you want to set its state regardless of the previous setting (such as switching
  by a user) you use 0 and 1.


partonoffRead(int npart)
  This returns the part's current status as either 0 or 1.

  Be aware that the audio loop takes a copy of each part's state at the beginning of
  a period, and then uses that for all operations within that period, so any changes
  to partonoff will be ignored until the next period. This ensures there can be no
  inconsistencies.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Audio system muting during critical operations is handled by a single atomic variable 'audioOut'
This will be one of:

muteState::Idle
muteState::Pending
muteState::Fading
muteState::Active
muteState::Complete
muteState::Request
muteState::Immediate

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~