Sponsored Content
Top Forums Programming C++, std:ofstream, and controlling an amplifiers mute function Post 303029758 by Circuits on Thursday 31st of January 2019 03:18:29 PM
Old 01-31-2019
C++, std:ofstream, and controlling an amplifiers mute function

Recently, I updated the unit I am running applications on with a new CODEC and amplifier; the older parts are EOL. There was a bug with the old setup. For some reason, even when a tone was not being generated, you could hear a noise emanating from the speaker when the LCD brightness was on a higher setting.


In order to counteract that problem the Amplifiers mute function (standby for old amp) was toggled on and off before and after a tone was produced:


Code:
const char *const amplifierGPIO = "/sys/class/gpio/gpio107/value";

    void amplifierOn()
    {
      std::ofstream amp(amplifierGPIO);
      if (amp.is_open())
      {
        amp << "1";
        amp.close();
      }
    }

    void amplifierOff()
    {
      std::ofstream amp(amplifierGPIO);
      if (amp.is_open())
      {
        amp << "0";
        amp.close();
      }
     }

The problem is that now in order to get the same functionality to work with the new amplifier I have to surround the ofstream in sleep statments:


Code:
const char *const amplifierGPIO = "/sys/class/gpio/gpio107/value";

    void amplifierOn()
    {
      sleep(1);
      std::ofstream amp(amplifierGPIO);
      if (amp.is_open())
      {
        amp << "1";
        amp.close();
      }
      sleep(1);
    }

    void amplifierOff()
    {
      sleep(1):
      std::ofstream amp(amplifierGPIO);
      if (amp.is_open())
      {
        amp << "0";
        amp.close();
      }
      sleep(1);
     }

1) Any ideas about why this might be the case? I do not believe it's the mute function on the amplifier itself because outside of the application that uses this ofstream (inside the boot loader) I can play a song and toggle it on and off with the mute function, with no delay needed.


2) Is there another way (other than ofstream) of toggling the GPIO pin 107 from within my application?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Simple Mute Question (I Think)

Is there any way to mute an application from the command line? Thanks for any help. (3 Replies)
Discussion started by: Switchfoot
3 Replies

2. Shell Programming and Scripting

How to redirect std out and std err to same file

Hi I want both standard output and standard error of my command cmd to go to the same file log.txt. please let me know the best commandline to do this. Thanks (2 Replies)
Discussion started by: 0ktalmagik
2 Replies

3. Programming

Sun Studio C++ - Getting error in linking std::ostream &std::ostream::operator<<(std:

Hello all Im using CC: Sun C++ 5.6 2004/07/15 and using the -library=stlport4 when linkning im getting The fallowing error : Undefined first referenced symbol in file std::ostream &std::ostream::operator<<(std::ios_base&(*)(std::ios_base&))... (0 Replies)
Discussion started by: umen
0 Replies

4. Shell Programming and Scripting

redirecting std error

Hi, I use the following command make all > output-`date +%F-%H-%M-%S`.txt 2>&1 to invoke a MAKE process that takes some weeks to complete. The ouput is redirected to a text file. Now I prefix the above command with time to get time needed for completion of the MAKE process time make... (2 Replies)
Discussion started by: gkamendje
2 Replies

5. Shell Programming and Scripting

Help with Getopt::Std

I am working on a script that lists files in a directory with a few file attributes depending on what option the user specifies at the command prompt. The script uses Getopt::Std and takes two switches. The first switch allows the user to specify a directory, the second switch gives a long... (3 Replies)
Discussion started by: Breakology
3 Replies

6. Programming

Porting ofstream attach() in linux gcc

Hi We have a huge codebase in HP-UX and we are porting them in RH-Linux. I am facing the problem of making the following code work in gcc - ofstream ofs; int fd = open(fileName, openState, openMode)); func(fd); ...... ...... const Boolean func(const int fileDescriptor) { ... (2 Replies)
Discussion started by: nsinha
2 Replies

7. Programming

attach is not a member of ofstream

Hi, Code written in C++ got compiled successfully using Sun 4.2 Compiler on Solaris 6. As part of migration, i am using same code and trying to compile using Sun 5.8 C++ compiler(Sun Studio11) on Solaris 10 and could not compile the below line, outStr.attach(1); // here outStr is declared... (1 Reply)
Discussion started by: shafi2all
1 Replies

8. Programming

C++ compilation error when I use predicate friend function in the std::sort()

Hi, Can anyone tell me why the following program is giving compiler error when I use a friend function of a class as the comparison predicate for the third parameter of std::sort() algorithm? How to correct it, keep the 'friend' intact? #include <iostream> #include <vector> #include <list>... (1 Reply)
Discussion started by: royalibrahim
1 Replies

9. OS X (Apple)

Disable / mute microphone from command line

Googling suggested "osascript -e 'set volume 0' " but that doesn't work. I know I'd found this before... some command-line utility that had something to do with audio, mixers, whatever, but I forgot to keep it somewhere I could find it. I did find references to writing an AppleScript app, but... (3 Replies)
Discussion started by: jnojr
3 Replies

10. Red Hat

"rhgb quiet" controlling the display of commands in single user mode ?"rhgb quiet" controlling the d

Why does removing "rhgb quiet" from the kernel boot parameters control whether or not the commands I enter are displayed in single user mode ? For instance, if I do not remove "rhgb quiet", when I am in single user mode, whatever command I type will not be displayed on the screen. The... (0 Replies)
Discussion started by: Hijanoqu
0 Replies
TONEGEN(1)						    Voicetronix Telephony Tools 						TONEGEN(1)

NAME
tonegen - Test the Voicetronix programmable tone generator SYNOPSIS
tonegen [options] DESCRIPTION
The tonegen utility uses the programmable tone generator to send tones to some port. OPTIONS
The following options are available: --card number Explicitly select the card to test. Default is card 0. --port number Explicitly select the port to test. Default is port 0 of the card being tested. --toneid num Play a locale specific predefined tone, where 0 <= num < VPB_TONE_ID_MAX. The locale is decided according to the value of the VPB_COUNTRY environment variable. --tone n freq mag Set a single component for a user defined tone. This option may be used more than once with different values of n to set the compo- nents of a multi-frequency tone. Legal values for the other parameters are 0 < freq <= 4000 (Hz), and -inf < mag < 0.0 (dB). --ontime ms The number of milliseconds that a user defined tone should be on for. --offtime ms The number of milliseconds that a user defined tone should be off for. --dial digits Generates a dial string using the specified dtmf digits. --sync Play tones using the synchronous api functions. The default is to use the async api. --loop Loop cadenced tones continuously. Has no effect if a continuous tone has been specified. --recgain db Set software record gain in dB. Default is 0.0 --rec file Record audio to a file while playing. --contest Do not wait for a tone to complete before starting the next one. This can be useful for stress testing the coherency of the tone generator. --help, -? Show summary of these options. AUTHOR
Ron Lee, Voicetronix <support@voicetronix.com.au> This manual page was written by Ron <ron@debian.org>, for the Debian project (but may be used by others). VPB driver package Feb 18, 2007 TONEGEN(1)
All times are GMT -4. The time now is 03:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy