7 Segment Library for Arduino 1.0

Thanks lloyddean for your reply. Yes, I'm 11, but I don't post that here because I want people to take me seriously. For the code, I got a TON of error messages. It said when I take out all of the shifter.'s, that all of the names with out shifter. are "not declared in this scope". Here is my current .cpp file.

#include "Arduino.h"
#include "Pineapple.h"
#include "Shifter.h"

uint8_t Pineapple::pins(int a, int b, int c, int d, int e, int f, int g, int dp, boolean common) {
    
    _a=a;
    _b=b;
    _c=c;
    _d=d;
    _e=e;
    _f=f;
    _g=g;
    _dp=dp;
    _common=common;
    
    segmentPins[0] = _dp;
    segmentPins[1] = _g;
    segmentPins[2] = _f;
    segmentPins[3] = _e;
    segmentPins[4] = _d;
    segmentPins[5] = _c;
    segmentPins[6] = _b;
    segmentPins[7] = _a;
    
    for(int i=0; i < 8; i++) {
        
        pinMode(segmentPins[i], OUTPUT);
    }
    
    
}

void Pineapple::write(int number) {
    boolean isBitSet;
    
    numeral[0] = B11111100;  // 0
    numeral[1] = B01100000;  // 1
    numeral[2] = B11011010;  // 2
    numeral[3] = B11110010;  // 3
    numeral[4] = B01100110;  // 4
    numeral[5] = B10110110;  // 5
    numeral[6] = B10111110;  // 6
    numeral[7] = B11100000;  // 7
    numeral[8] = B11111110;  // 8
    numeral[9] = B11100110;  // 9
    
    if (_common == HIGH) {
        
        for(int segment=1; segment < 8; segment++) {
            if(number < 0 || number > 9) {
                isBitSet = 0;
            }else{
                isBitSet = bitRead(numeral[number], segment);
            }
            isBitSet = ! isBitSet;
            setPin(segmentPins[segment], isBitSet);
            write();
        }
    }else{
        for(int segment=1; segment < 8; segment++) {
            if(number < 0 || number > 9) {
                isBitSet = 0;
            }else{
                isBitSet = bitRead(numeral[number], segment);
            }
            setPin(segmentPins[segment], isBitSet);
            write();
        }
    }
    if (_number == '.' && _common == HIGH) {
        setPin(_dp, LOW);
        write();
    }
    if (_number == '.' && _common == LOW) {
        setPin(_dp, HIGH);
        write();
    }
    if (_common == HIGH) {
        setPin(_dp, HIGH);
        write();
    }
    if (_common == LOW) {
        setPin(_dp, LOW);
        write();
    }
}

Where is 'setPin'?

setPin is in about the middle

More specific then. Where is 'setPin' defined. I see no implementation for it

How would you define setPin and write() if they are already part of the shifter library?

First of all my apologies revert back to your original "Pineapple.cpp" as posted above. I didn't notice you we're using a third party library a gave wrong advice.

All you'll need to do as add a line to your "Pineapple.cpp" file as below letting the compiler know that 'shifter' has been defined outside of the current compilation unit (file) as follows:

extern Shifter shifter;

uint8_t Pineapple::pins(int a, int b, int c, int d, int e, int f, int g, int dp, boolean common) {