Ninoh-FOX / POCKETGO2_ROGUE_CFW

Oficial Firmware for POCKETGO 2, thanks to Vincent of Retromimi
https://retromimi.com/products/new-pocketgo
142 stars 12 forks source link

Problems with the mixer volume fix #37

Closed SanguineBrah closed 4 years ago

SanguineBrah commented 4 years ago

From GldRush98 on Reddit:

  1. The Master control item doesn't show up in AlsaMixer until AFTER you have played some type of audio through the speaker. So it doesn't show up on boot.
  2. The Master volume is not remembered after a reboot. You need to set the Master volume every time (only after first playing some sort of audio).
wermelinger commented 4 years ago

I can confirm the same behavior with 1.0.7. But nevertheless this is already a great achievement. The high volume was the biggest downside of the PG2.

GldRush98 commented 4 years ago

In addition to the above, the script that is supposed to be writing the volume level to the state file is not working properly. Not really sure why, but the file was empty. If I write a value in to it, change the Master level, then shutdown, the value saved in the state file does not get updated.

My hacky work around has been to add a startup script to play a silent wav file less than a second long, then set the Master volume level to the value I want. This seems to be working for now. Great work on this so far though!!

GldRush98 commented 4 years ago

It looks like Master not showing up until a sound is played is a known issue according to this thread: https://github.com/Ninoh-FOX/POCKETGO2_ROGUE_CFW/issues/29

Shut3n commented 4 years ago

Hi,

I replaced '/etc/init.d/S90volume.sh' with this 'S90alsaconf.sh' file:

#!/bin/sh

case "$1" in
    start)
        echo "alsa-config Starting.."
        /usr/sbin/alsactl restore -f /usr/local/etc/asound.state
        ;;
    stop)
        echo "alsa-config Stopping.."
        /usr/sbin/alsactl store -f /usr/local/etc/asound.state
        ;;
    *)
        exit 1
        ;;

esac

exit 0

First time you boot, it's important to do the 'open-APP-thing" (any that plays sound to activate mixer) for the Master volume to appear on Alsamixer. You can adjust then volumes to your comfort. To finish reboot the system, for the alsa settings to be stored on '/usr/local/etc/asound.state' (no problem because 'alsactl' command will manage to create it if not avaliable, and keep it updated from now).

If you're interested, my asound.state finished like this (but not necessary to copy it, because it will be created automatically on first reboot) :

state.Intel {
    control.1 {
        iface MIXER
        name 'Channel Mode'
        value '2ch'
        comment {
            access 'read write'
            type ENUMERATED
            count 1
            item.0 '2ch'
            item.1 '4ch'
            item.2 '6ch'
        }
    }
    control.2 {
        iface MIXER
        name 'Front Playback Volume'
        value.0 31
        value.1 31
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -4650
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.3 {
        iface MIXER
        name 'Front Playback Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.4 {
        iface MIXER
        name 'Surround Playback Volume'
        value.0 31
        value.1 31
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -4650
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.5 {
        iface MIXER
        name 'Surround Playback Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.6 {
        iface MIXER
        name 'Center Playback Volume'
        value 31
        comment {
            access 'read write'
            type INTEGER
            count 1
            range '0 - 31'
            dbmin -4650
            dbmax 0
            dbvalue.0 0
        }
    }
    control.7 {
        iface MIXER
        name 'LFE Playback Volume'
        value 31
        comment {
            access 'read write'
            type INTEGER
            count 1
            range '0 - 31'
            dbmin -4650
            dbmax 0
            dbvalue.0 0
        }
    }
    control.8 {
        iface MIXER
        name 'Center Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.9 {
        iface MIXER
        name 'LFE Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.10 {
        iface MIXER
        name 'Loopback Mixing'
        value Disabled
        comment {
            access 'read write'
            type ENUMERATED
            count 1
            item.0 Disabled
            item.1 Enabled
        }
    }
    control.11 {
        iface MIXER
        name 'Mic Playback Volume'
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -3450
            dbmax 1200
            dbvalue.0 -3450
            dbvalue.1 -3450
        }
    }
    control.12 {
        iface MIXER
        name 'Mic Playback Switch'
        value.0 false
        value.1 false
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.13 {
        iface MIXER
        name 'Line Playback Volume'
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -3450
            dbmax 1200
            dbvalue.0 -3450
            dbvalue.1 -3450
        }
    }
    control.14 {
        iface MIXER
        name 'Line Playback Switch'
        value.0 false
        value.1 false
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.15 {
        iface MIXER
        name 'Input Source'
        value Line
        comment {
            access 'read write'
            type ENUMERATED
            count 1
            item.0 Mic
            item.1 Line
        }
    }
    control.16 {
        iface MIXER
        name 'Input Source'
        index 1
        value Mic
        comment {
            access 'read write'
            type ENUMERATED
            count 1
            item.0 Mic
            item.1 Line
        }
    }
    control.17 {
        iface MIXER
        name 'Capture Volume'
        value.0 19
        value.1 19
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -1650
            dbmax 3000
            dbvalue.0 1200
            dbvalue.1 1200
        }
    }
    control.18 {
        iface MIXER
        name 'Capture Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.19 {
        iface MIXER
        name 'Capture Volume'
        index 1
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 31'
            dbmin -1650
            dbmax 3000
            dbvalue.0 -1650
            dbvalue.1 -1650
        }
    }
    control.20 {
        iface MIXER
        name 'Capture Switch'
        index 1
        value.0 false
        value.1 false
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.21 {
        iface MIXER
        name 'Mic Boost Volume'
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 3'
            dbmin 0
            dbmax 3000
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.22 {
        iface MIXER
        name 'Line Boost Volume'
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 3'
            dbmin 0
            dbmax 3000
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.23 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.24 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.25 {
        iface MIXER
        name 'IEC958 Playback Default'
        value '0482000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.26 {
        iface MIXER
        name 'IEC958 Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.27 {
        iface MIXER
        name 'IEC958 Default PCM Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.28 {
        iface MIXER
        name 'Master Playback Volume'
        value 31
        comment {
            access 'read write'
            type INTEGER
            count 1
            range '0 - 31'
            dbmin -4650
            dbmax 0
            dbvalue.0 0
        }
    }
    control.29 {
        iface MIXER
        name 'Master Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.30 {
        iface CARD
        name 'Mic Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.31 {
        iface CARD
        name 'Line Jack'
        value true
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.32 {
        iface CARD
        name 'Line Out Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.33 {
        iface CARD
        name 'SPDIF Phantom Jack'
        value true
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.34 {
        iface PCM
        name 'Playback Channel Map'
        value.0 0
        value.1 0
        comment {
            access read
            type INTEGER
            count 2
            range '0 - 36'
        }
    }
    control.35 {
        iface PCM
        name 'Capture Channel Map'
        value.0 0
        value.1 0
        comment {
            access read
            type INTEGER
            count 2
            range '0 - 36'
        }
    }
    control.36 {
        iface PCM
        device 1
        name 'Playback Channel Map'
        value.0 0
        value.1 0
        comment {
            access read
            type INTEGER
            count 2
            range '0 - 36'
        }
    }
    control.37 {
        iface PCM
        device 2
        name 'Capture Channel Map'
        value.0 0
        value.1 0
        comment {
            access read
            type INTEGER
            count 2
            range '0 - 36'
        }
    }
    control.38 {
        iface MIXER
        name 'PCM Playback Volume'
        value.0 255
        value.1 255
        comment {
            access 'read write user'
            type INTEGER
            count 2
            range '0 - 255'
            tlv '0000000100000008ffffec1400000014'
            dbmin -5100
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
}
Ninoh-FOX commented 4 years ago

Fixed in the version 1.0.8