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
UAUDIO(4)						   BSD Kernel Interfaces Manual 						 UAUDIO(4)

NAME
uaudio -- USB audio device driver SYNOPSIS
uaudio* at uhub? audio* at audiobus? DESCRIPTION
The uaudio driver provides support for USB audio class devices. A USB audio device consists of a number of components: input terminals (e.g. USB digital input), output terminals (e.g. speakers), and a number of units in between (e.g. volume control). The following types of units are handled by the uaudio driver and are accessible via the mixer (see audio(4)) interface: mixer A mixer has a number of inputs and one output. Each input has a control that determines its volume in the output. The name of the control is mixN-S, where N is a number that identifies which mixer it is and S which input. selector A selector unit selects one of multiple audio sources such as mic-in and line-in. The name of the control is selN-S1S2S3..., where N is a number that identifies which selector unit it is and the sequence of Sn indicates candidate units for the audio source. feature A feature unit changes the sound in some way, like bass, treble, mute, or volume. The name of the control is determined in a heuristic way. If the unit changes the sound to a speaker output terminal, the names of the controls may be out- puts.speaker.bass, outputs.speaker.treble, outputs.speaker.mute, outputs.speaker, or likewise. processing A processing unit does one of a number of audio processing functions (e.g., channel up-down mixing, Dolby ProLogic, or cho- rus effects). The name of the on-off control is proN.M-enable, where N is a number that identifies which processing unit it is and M which kind. Depending on the type of processing unit there may be other controls as well. extension An extension unit performs some unspecified audio processing The name of the on-off control is extN-enable, where N is a number that identifies which processing unit it is. For more information the USB Audio class specification is indispensable reading. SEE ALSO
audio(4), usb(4) USB Approved Class Specification Documents, http://www.usb.org/developers/devclass_docs/. HISTORY
The uaudio driver appeared in NetBSD 1.5. BUGS
There is no support for multiple-endpoints audio stream, adaptive recording, async playback, and TYPE-II/III formats. There is the possibility that a device has multiple mixer items which have the same name. BSD
September 20, 2011 BSD
All times are GMT -4. The time now is 05:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy