Feeding a 1V pp 1 KHz square wave into LineIn. All I get is -1. Any ideas?

-----------------------------------------------------------------------------------------

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

AudioInputI2S i2s2;
AudioRecordQueue queue1;
AudioConnection patchCord1(i2s2, 0, queue1, 0);
AudioControlSGTL5000 sgtl5000_1;

const int myInput = AUDIO_INPUT_LINEIN;

int mode = 0; // 1=stopped, 0=recording

int Count = 0;

int Time = 10;
int NRecords = (Time*AUDIO_SAMPLE_RATE_EXACT*4)/256;

int led = 13;

File frec;

void setup() {

pinMode(led, OUTPUT);
Serial.begin(57600);

AudioMemory(60);

sgtl5000_1.enable();
sgtl5000_1.inputSelect(myInput);
sgtl5000_1.volume(0.5);

// Initialize the SD card
SPI.setMOSI(7);
SPI.setSCK(14);
if (!(SD.begin(10))) {
while (1) {
Serial.println("Unable to access the SD card");
delay(500);
}
}

startRecording();
Count = 0;
}

////////////////////////////////////////////////////////////////////////

void startRecording() {
Serial.println("startRecording");
if (SD.exists("RECORD2.RAW")) {.
SD.remove("RECORD2.RAW");
}
frec = SD.open("RECORD2.RAW", FILE_WRITE);
if (frec) {
queue1.begin();
}
}

//////////////////////////////////////////////////////////////////////////////

void flushRecording() {
Serial.println("flushRecording");
queue1.end();
while (queue1.available() > 0) {
queue1.freeBuffer();
}
frec.close();
}

///////////////////////////////////////////////////////////////////////////

void loop() {

byte *b;

if (mode == 1)
return;

while (queue1.available() > 0) {
Count++;
b = (byte*)queue1.readBuffer();
if (Count%100 == 0) {
Serial.print("record ");
Serial.println(Count);
};
frec.write(b, 256);

queue1.freeBuffer();
if (Count >= NRecords) {
flushRecording();
mode = 1;
}
}
}